初歩的な質問で申し訳ありませんが・・・
自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。
Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
「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として扱われるのですね!(全然知りませんでした・・・)
ありがとうございました!
(申し訳ありません、もっと自分でヘルプを見てみることを覚えます・・・)
No.3
- 回答日時:
予断ですが、趣味でやられてるのか仕事なのかはわかりませんが、
ただ単にSubと記述するのではなくて、明確にPublicとPrivateを
記述するように心がけた方がいいですよ。
VBの関数名等は、英語の単語そのものが多いですのでその単語を
和訳して、解釈するのも間違いではないですよ。
ただ、全てがそうとはいえないですけどね。
Private → 個人
Public → 共有
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
Workbook_openでマクロが実行されない
Excel(エクセル)
-
VBA[Private Sub]のコードをシート上の図形に登録する方法を教えて
Visual Basic(VBA)
-
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
-
4
ExcelVBAで質問です。Workbook_openイベントが発生し
その他(Microsoft Office)
-
5
Private Sub内でSubをCallしたい
その他(プログラミング・Web制作)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
アクセスVBAのMe!と[ ]
Access(アクセス)
-
12
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
15
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
16
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
17
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
18
別シートのマクロを実行する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
特定のPCだけ動作しないVBAマク...
-
VBAのIF分で時間指定の条件式の...
-
エクセルに張り付けた写真のフ...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
【ExcelVBA】罫線を引くための...
-
エクセルVBA
-
Excel_マクロ_現在開いているシ...
-
”KINGSOFT WPSのVBエディタ画面...
-
エクセルでA1セルに時刻をリア...
-
【EXCEL VBA】オートシェイプを...
-
teratermマクロをVBAで実行
-
VBAにて別ワークブック上の実行...
-
Excel マクロ VBA プロシー...
-
ExcelVBAでPDFを閉じるソース
-
MSアクセスのマクロ・モジュー...
-
エクセルのマクロをセルの値に...
-
テニス(ダブルス)乱数表 Exc...
-
右クリックによるイベントマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
Excel マクロでShearePoint先の...
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
マクロ実行時、ユーザーフォー...
-
wordを起動した際に特定のペー...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロで空白セルを詰めて別シ...
-
【EXCEL VBA】オートシェイプを...
-
エクセルのマクロをセルの値に...
おすすめ情報