• ベストアンサー

Excel VBAについて

ファイルをダブルクリックし起動した時に自動的にメッセージボックスを表示させたいのですがどのようにすればよいのでしょうか? 同時にメッセージボックスの“はい”“いいえ”に答えない限り次の操作に進めないようにしたいんです! お願いします!どうか助けて下さい!

質問者が選んだベストアンサー

  • ベストアンサー
  • diashun
  • ベストアンサー率38% (94/244)
回答No.2

diashunです。 ダブルクリックするファイルの「ThisWorkbook」のVBE(コードエディタ)を開き、さらに、上段左側の「(General)」と表示されているコンボボックスの右側の▼ボタンをクリックし、「Workbook」を選びます。 次に右コンボボックスで「Open」をクリックすると、以下のプロシージャ(プログラムの進行手順)が自動設定されます。 ****************************** Private Sub Workbook_Open() End Sub ****************************** これがプロシージャ本体です。 Private Sub Workbook_Open() dim Ans As String Ans = MsgBox("答えて", vbYesNo) If Ans = vbYes then '「Yes」ボタンがクリックされたときの処理を記述する。 Else '「No」ボタンがクリックされたときの処理を記述する。 EndIf End Sub 「Private Sub Workbook_Open()」はWorkbookが開かれる時に自動的に実行されるプロシージャです。 ここに必要なコードを記述すると、Workbookが開かれる時に自動的に実行されます。 いかがでしょうか?

ruru206661
質問者

お礼

ありがとうございました!ご説明の通りにやったら出来ました。本当にありがとうございました。 もう1点お聞きしたいのですが、「NO」をクリックした時の処理の部分ですが、「NO」を選択した場合は、ファイルを閉じるようにしたいと思うのですが、下記の文章のどの部分に、どのように記入すればよいのでしょうか?教えて下さい! >If Ans = vbYes then '「Yes」ボタンがクリックされたときの処理を記述する。 Else '「No」ボタンがクリックされたときの処理を記述する。

その他の回答 (2)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

sub Auto_Open() ~~ end Sub や sub Job1() ~~ End sub の処理ブロックが一つのプロシージャになります。 この場合は、「標準モジュール」に記述します。 自動記録マクロや、通常のマクロを記述するモジュールです。 Private Sub Workbook_Open() dim Ans Ans = MsgBox("答えて", vbYesNo) If Ans = vbYes then 処理 Else 処理 EndIf End Sub は、「ThisWorkbook」に記述すると、Auto_Open同様に自動実行します。 どちらを使っても実行可能ですが、こちらのプロシージャがAuto_Openよりも優先されて実行されると思います。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

自動起動は、下記URL http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html メッセージボックスは、 dim Ans Ans = MsgBox("答えて", vbYesNo) If Ans = vbYes then 処理 Else 処理 EndIf

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html
ruru206661
質問者

補足

早速のご回答ありがとうございます!今回の事以外でも色々乗っていて本当に助かりました!・・・っが、見事に説明の部分を読み改したのですが、ど素人の私には分かりづらく、メッセージボックスにも上記の通り入力しました! しかし自動実行の説明の部分に≪標準モジュール内の起動させるプロシージャ名を「Auto_Open」≫と書いてあるのですが、プロシージャ名ってどこの事なんですか? 質問するのも恥ずかしいのですが今日始めたばかりで何も分からない状態です。教えて下さい!

関連するQ&A

専門家に質問してみよう