パブリック関数は、"通常の" *.bas モジュールに存在する場合、Excel の数式バーにのみ表示されます。クラスに属するパブリック関数は、数式バーには表示されません。これを静的クラスをシミュレートできるという事実と一緒に追加すると、関数を効果的に非表示にすることができます。
クラス モジュールを作成してエクスポートするとAttribute VB_PredeclaredId = False
、ヘッダーに表示されます。これを true に設定すると、クラスのデフォルトのグローバル インスタンスが作成されます。このインスタンスは、より現代的な言語の静的クラスのように使用できます。
たとえば、という名前の新しいクラス モジュールを作成し、Math
この関数を追加します。
Public Function Add(a As Integer, b As Integer) As Long
Add = a + b
End Function
ファイルをエクスポートして削除し、メモ帳で開きます。事前宣言された Id を true に変更します。
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "Math"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
ファイルを保存してプロジェクトにインポートします。
現在、通常のモジュールでは、修飾された呼び出しで関数を呼び出すことができます。他のクラス メソッドと同様です。これで、作業するクラスのデフォルトのインスタンスができました。New
orをいじる必要はありませんSet
。ただ機能します。
Sub Test()
Debug.Print Math.Add(1,2)
End Test