新しく質問する

Sub ***( ) と Private Sub ***( ) の違い

役に立った:13件
  • 質問者:noname#4100
  • 投稿日時:2003/04/14 21:47
  • 困り度:暇なときに回答をください
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:13件)
  • 参考になった:0件

No.3ベストアンサー10pt

  • 回答者:BlueRay
  • 回答日時:2003/04/15 12:46

予断ですが、趣味でやられてるのか仕事なのかはわかりませんが、
ただ単にSubと記述するのではなくて、明確にPublicとPrivateを
記述するように心がけた方がいいですよ。

VBの関数名等は、英語の単語そのものが多いですのでその単語を
和訳して、解釈するのも間違いではないですよ。
ただ、全てがそうとはいえないですけどね。

Private → 個人
Public → 共有

通報する

この回答へのお礼

お礼が遅くなりまして申し訳ありません。
私もここで伺ってから、きちんと書くようにしました(^^)
ありがとうございました。

  • 参考になった:0件
  • 回答者:noname#4564
  • 回答日時:2003/04/14 22:08

 
ついでですので、Friendスコープもいっしょに憶えておきましょう。

通報する

この回答へのお礼

Friendというのは初めて聞きました・・・
クラスモジュールのメソッドを外部から使える・・・とこの回答を拝見してからWebで見ました。
クラスモジュールはまだ使った(作った?)ことがありません。
確か他のプロジェクトからも使えるのですよね・・・
そういうのをいつか効率よく作れるようになりたいです(^^)
ありがとうございました。

  • 参考になった:0件

No.1ベストアンサー20pt

「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だからです。

通報する

この回答へのお礼

Privateを省略したSubはPublicとして扱われるのですね!(全然知りませんでした・・・)
ありがとうございました!

(申し訳ありません、もっと自分でヘルプを見てみることを覚えます・・・)

  
このQ&Aは役に立ちましたか?(役に立った:13件)

このページのトップへ

Facebook公式ページ

公式Twitter