![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
初歩的な質問で申し訳ありませんが・・・
自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[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
ExcelVBAで質問です。Workbook_openイベントが発生し
その他(Microsoft Office)
-
5
アクセスVBAのMe!と[ ]
Access(アクセス)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
ExcelVBAで最終行を誤認する問題の回避方法
Visual Basic(VBA)
-
11
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
12
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
15
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
16
Private Sub内でSubをCallしたい
その他(プログラミング・Web制作)
-
17
VBA セルをダブルクリック→違うセルに値をコピー
Excel(エクセル)
-
18
Excel VBA 条件に一致した言葉の下セルに斜線をひきたい
Visual Basic(VBA)
-
19
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
20
別シートのマクロを実行する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
エクセルのマクロについて教え...
-
エクセルで別のセルにあるふり...
-
Word VBA 表中の空白行を削除す...
-
サクラエディタ・マクロ → VSCo...
-
■EXCELの表で一行おきに行削除...
-
Excelマクロで印刷設定
-
特定のPCだけ動作しないVBAマク...
-
テニス(ダブルス)乱数表 Exc...
-
マクロのクリア設定がシートの...
-
レポートで空データ時に印刷しない
-
OnTimeを使ったのですが「エラ...
-
VBAで離れたセルの値を一括で代...
-
エクセルでリンク元の名前って...
-
Windows2000でのマクロの起動
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロ実行時、ユーザーフォー...
-
特定文字のある行の前に空白行...
-
エクセルVBA
-
マクロの記録を使用したマクロ...
-
wordを起動した際に特定のペー...
-
ダブルクリックで貼り付けた画...
おすすめ情報