コマンドボタンから呼び出すメソッドはPrivete指定で良い
Priveteメソッドでもコマンドボタンから呼び出すことができる
常識ですか?
私は存じ上げませんでしたので、今まで何でもかんでもPublic
指定にしていた。
そのせいで、「マクロの登録」ウインドウなんかを開くと、
こんなひどい有様にw
Privete指定のメソッドを作成する
実験用なので、なげやりなメソッドにする。
リスト1 標準モジュール
Private Sub showMessage() Call MsgBox("ち~んw") End Sub
何のことはない、単に「ち~んw
」というメッセージを表示するだけのメソッド。
コマンドボタンに登録する
このメソッドをワークシート上のコマンドボタンに登録する。
ボタンを右クリックして[マクロの登録]を選択する。
Privete
指定ゆえ、当然この欄には出てこない。
仕方がないので、手打ち。
一応モジュール名から入力しているけれど、プロジェクト内で名前の重なりがなければメソッド名だけでもオッケー。
実行テスト
このとおり、ちゃんと呼び出せている。
おわりに
標準モジュールのアクセス修飾子には「Public
」/「Privete
」という両極端の二つしかないため、なかなか扱いづらいのだけれど、少なくともコマンドボタン等から呼び出すものについてはPublic
にせずに済むことがわかった。これでまた一つ、オレオレコーディング規約に新たな項目が加わった。