重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBAのパブリックサブとプライベートサブの違いを教えてください。
意味と使い方・具体例をよろしくお願いいたします。

A 回答 (2件)

Private は、そのモジュール内のたのプロシージャーから呼び出して実行できますが、他のモジュールからの呼び出しはできません。


Public は他のモジュールからも呼び出して使用できます。

http://orakumiko.hp.infoseek.co.jp/vbamanu/chapt …
http://www.mahoutsukaino.com/ac/ac2002/vba/vba02 …
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
http://ameblo.jp/tech-note/entry-10050615070.html
    • good
    • 0

こんにちは。



前の質問も今回の質問もそのままになっているようですが、こういうことは、掲示板ではお聞きにならずに、きちんと書籍によって調べたほうがよいです。

クラスの使用法にしても、掲示板でいくら示されても、理解できないか、なんとなくだけで無駄になってしまいます。#1さんのリンク先を読んでみましたが、リンク先の書いている人自体が完全に理解していないのか、それとも、思い違いしているか、どちらかだと思います。Access でも、Excel でも、これは変わりません。

変数とSub プロシージャとは、そのステートメント(キーワード)の意味が違います。

Sub プロシージャに、Public をつけるのは、

#1さんのリンク先の

「必要に応じて呼び出して使う。呼び出す、なんて言うとなんかプロっぽい感じがして気分がよかったりする。」
これが正解だと思います。これを、言い方を替えれば、「明示的(Explicit)につける」といいます。

Sub プロシージャには、基本的には、Public をつけたところで、最初から決まっています。仮に、Public Sub を置いたところで、複数のプロジェクト間でグローバル化しません。また、ローカルモジュールに、Public Sub を置いたところで、他から呼び出せるわけではありません。

Private は、他から呼び出せない、つまり、Alt + F8 などで、誤作動を防ぐため、またサブルーチン用に使うのです。他は、ローカルモジュールのイベント用に用います。

>意味と使い方・具体例をよろしくお願いいたします。

それ以上は、要はないと思います。例えば、車も、普通乗用車ではなく、レーシングのテクニックを教えてください、というようなもので、どうしても、知りたいようでしたら、ここら辺りの情報は、きちんとした専門書を手に入れて、そこで学んでください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!