先ほど以下の記事を投稿したばかりであるが、ひとつ勘違いが判明したので訂正記事。
thom.hateblo.jp
Now()はDateTimeクラスのプロパティと書いたが、そもそもDateTimeはクラスではなくてただのモジュールだったようだ。
「オブジェクトブラウザ」は、その名のとおりオブジェクトを閲覧するものだと勘違いしていた。
以下のようにDateTime型として宣言しようとすると、コンパイルエラーとなる。
Dim x As VBA.DateTime
もう一度オブジェクトブラウザを確認すると、確かに左ペーンのヘッダはクラスと記載されているが、中身はModuleである。
従って、少なくともFunctionはクラスのメソッドではなく、ただの関数と考えてよさそうだ。
そして、VBAライブラリの設計全般として、引数を取らず戻り値を返すものは、Functionではなく、プロパティとして実装されているようだ。
ちなみに、標準モジュールにも以下のようにプロパティを実装できる。
Sub テスト() MsgBox 作業フォルダ End Sub Property Get 作業フォルダ() As String 作業フォルダ = "C:\" End Property
引数無しのFunctionが作成できるように、引数付きのPropertyというのも作成することが出来るが、VBAライブラリでは設計上きちっと役割を分けているということだろう。
ひとつ勉強になった。