質問: sub ***( ) と private sub ***( ) の違い 初歩的な質問で申し訳ありませんが・・・ 自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[private sub command1_click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[sub ****( )]としています。 ですがその違いを理解しないまま、自分で作成する時は[private sub]ではなくて[sub]を使っています。 sub ***( ) と private sub ***( ) の違いは何なんでしょうか? どなたか説明頂けませんか? よろしくお願いします。
回答: 「sub」の部分にカーソルを置いて[f1]を押せばヘルプが起動します。 「指定項目」のところに「public」と「private」の説明がありますよ。 省略して「sub hogehoge()」とした場合は「public」とみなされます。 publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。 privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。 もしexcelをお持ちでしたらexcelのvbeで標準モジュールを追加し、「sub test1()」と「private sub test2()」を作成してみてください。 そしてexcelの[ツール]-[マクロ]-[マクロ(alt+f8)]でマクロ実行のダイアログを表示させてみるとわかります。 ここには実行できるプロシージャの一覧が表示されますが、test1は表示されているけれどtest2は表示されません。 test1はpublicで、test2はprivateだからです。