初歩的な質問で申し訳ありませんが・・・
自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Workbook_openでマクロが実行されない
Excel(エクセル)
-
VBA[Private Sub]のコードをシート上の図形に登録する方法を教えて
Visual Basic(VBA)
-
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
アクセスVBAのMe!と[ ]
Access(アクセス)
-
6
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
7
ExcelVBAで質問です。Workbook_openイベントが発生し
その他(Microsoft Office)
-
8
private sub にしたらマクロが見えなくな
Excel(エクセル)
-
9
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
10
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
11
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
12
エクセルVBAでアクセスファイルを開く方法
Access(アクセス)
-
13
ExcelVBAで最終行を誤認する問題の回避方法
Visual Basic(VBA)
-
14
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
15
Private Sub内でSubをCallしたい
その他(プログラミング・Web制作)
-
16
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
17
Excel VBA 条件に一致した言葉の下セルに斜線をひきたい
Visual Basic(VBA)
-
18
DoEventsがやはり分からない
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
エクセルで特定の列が0表示の場...
-
Excel VBAからAccessマクロを実...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
エクセル マクロ 指定日の指定...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
組んだマクロをメールで送る
-
ExcelのVBA。public変数の値が...
-
wordを起動した際に特定のペー...
-
エクセルで別のセルにあるふり...
-
EXCELのVBAでRange("A1:C4")を...
-
ダブルクリックで貼り付けた画...
-
ExcelVBA 図形をクリックした...
-
マクロ実行時、ユーザーフォー...
-
エクセルのマクロをセルの値に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
TERA TERMを隠す方法
-
2つのマクロでチェックボックス...
-
マクロ実行時、ユーザーフォー...
-
【マクロ】1つのマクロの中に...
-
ピボットテーブルでの毎回可変...
-
特定文字のある行の前に空白行...
-
エクセルのマクロについて教え...
-
wordを起動した際に特定のペー...
おすすめ情報