VBAには Property Get / Let / Set がある。使ったことのある方はいらっしゃるだろうか?

こんな使い方があるので紹介する。

例えば
Public Const CL_START_ROW As Long = 6     'データ開始行

などと、固定値をConst値として持つことは簡単である。


しかし、
Public Const CL_COLOR_RED As Long = RGB( 255, 0, 0 )      '赤色

などというのはエラーになる。しかし、各所でわざわざRGB関数を記述するのも分かりにくい。

こんな場合

Public Function CL_COLOR_RED() As Long
   CL_COLOR_RED = RGB( 255, 0, 0 )     '赤色
End Function

という定義もできるが、本来関数的に作るモノではない。

そういう場合
Public Property Get CL_COLOR_RED() As Long
   CL_COLOR_RED = RGB( 255, 0, 0 )     '赤色
End Property

という定義にしておくと違和感は小さくなる。


Property は基本的に Get と Set / Let と対(Property名は同一)で使うか、Getを単独で使うことが想定されている。今回は後者の一例である。
今回の例は本来的な使い方ではないのかもしれないが、こういう事もできる。