• ベストアンサー

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

  • エクセルのVBAのこと

    図形描画四角形を作り、印刷するVBAを登録しました。 四角形をクリックすると印刷されたのち、「注意」のメッセージボックスがでるようにしました。 その「注意」のメッセージボックスを大きく表示したいのですが、どうすればできるのでしょうか? 難しい操作が必要ですか?

  • エクセルVBAでメッセージを表示する

    エクセルVBAでメッセージを表示する時は、 Msgbox "表示する内容" と記述しますが、これだと[OK]をクリックするまで エクセル本体が全く操作できなくなってしまいます。 メッセージボックスを表示させた状態で、エクセルを操作できるようにすることは 出来ますでしょうか?

  • エクセルVBA

    エクセルVBAのコードについて質問です。エクセル初心者です。 Windows10で32bit版のエクセル2010を使っています。 1.エクセルのマクロは32bit版でも64bit版にも対応できるようコードを組んでいるのですが、 32bitで動いているのか64bitで動いているのかどのように確かめたらよいでしょうか? あるマクロの途中に #If VBA7 And win64 Then MsgBox ” 64bit ” #Else またはIf VBA7 And win32 MsgBox ”32bit” #End If を組み込むと、If分の終わりには If分の最後に#EndIfが必要です、と表示されて(EndIfを書いているのに) エラーになります。 2.エクセルマクロをIEと連携させて使っています。 IEを操作させている途中でエクセルのメッセージBoxを最前面表示させるには どうしたらよいでしょうか? IEで特定の操作をしたら、エクセルが最前面に出て、OKボタン付きのメッセージBoxが表示され、OKボタンを押すとIEを操作する という動作をコードに書いています。 コードを書いた直後は、IE上での特定の操作のあとメッセージBoxが適切に最前面表示されますが、 一度保存し閉じてファイルを開き直しマクロを実行すると、メッセージBoxは最前面に出てくれません。 検討したコードは 1. SetForegroundWindow 2.VBA AppActivate. Microsoft Excel. Capture 3.AppActivate Microsoft です。いずれのコードを書いた場合も、保存まではうまくメッセージBoxに回答できるが 保存しファイルを開き直してマクロを実行するとメッセージBoxはIEの後ろに隠れたままであり、エクセルを選択しないと最前面表示されません。 しかし一応最前面表示されることもあることから、マクロを一度実行するごとにエクセル内のデータが変わる可能性も考えられす。

  • デスクトップにあるエクセルのファイルを開くことができない

    よくファイルを開く時に、デスクトップにファイルのアイコンがあれば ダブルクリックして開くのですが、ダブルクリックしてもエクセルの ソフトのみ起動してファイルが開いてきません。エクセルを起動しておいて 「メニュー」の「開く」という操作で行えば、そのファイルは開きます。 エクセルに限って、この状態になっているのですがどうすれば直りますか? ちなみにOSは、Windows XP、Excel2002です。

  • IMEとATOKの共存でExcelが・・・

    お世話になっています。 最近、Office2007と一太郎2007をインストールし、同時にIME2007およびATOK2007もインストールしました。 それからなのですが、Excelで作ったファイルをダブルクリックで開こうとすると、Excelは起動するのですが、ファイル自体が開きません。 (Excelの左下にコマンドと表示になるだけでセルも表示されません) この現象が出るのは、既定の言語で「ATOK2007」を選択している時だけで、「IME2007」を選択している時は正常にファイルが開けます。 ちなみにATOK2007を選択→ファイルが開かない 時に、何か操作(例えばExcelのメニューをクリックなど)すればファイルが開きます。 何かと不便なのでいろいろ調べてみたのですが原因がわかりません。 よろしくおねがいします!

  • エクセルのファイルを開くとき

    エクセルのファイルを開くとき,ファイル名をダブルクリックして開いていました。しかし,最近ファイル名をダブルクリックしてもエクセルは立ち上がるのですが,ファイルの内容が表示されません。そこで,エクセルが立ち上がっている状態で,ファイルを開くという操作をしなければなりません。どうしたら以前どおりファイル名をダブルクリックするだけで内容を表示することができるようになるのでしょうか。

  • Excelのファイルが開けない

    同じような質問が既にいくつかあることを承知して再度質問させていただきます。 会社のネットワーク上にあるExcelファイルをWクリックで開こうとすると、 「(ファイル名)にアクセスできません。読み取り専用または暗号化されています。」と表示され、 このメッセージボックスのOKボタンを押すと、さらに「(ファイル名)にアクセスできません。」とのメッセージ・・・(1)が表示され、ファイルを開くことができません。同じディレクトリの中に、開くことができるファイルとまったく開けないファイルがあります。(開けなくなってしまったファイルの方が多い) ちなみに、おもに次のような方法をいくつか試してみましたがいずれも駄目でした。 ☆Excel2003で「ファイルを開く」ダイアログボックスから  「ファイルを開いて修復」で開く・・・(1)と同じ ☆ローカルPCにコピーして開く  貼り付けをおこなうと、次のエラーメッセージが表示される。  「(ファイル名)をコピーできません。アクセスできません。送り側のファイルが使用中の可能性があります。」 ☆エクセルを空で起動し、ワークシート上にファイルをドラッグ  (1)と同じメッセージ ☆ワードから開く  「文書を開くことができません。アクセス権がありません。」とのメッセージ。 やはり、ファイル自体が壊れてしまっているのでしょうか? どなたかよろしくお願いします。

  • VBAを実行しないと開けないエクセルファイル

    タイトルのようなエクセルファイルを作りたいです。 閲覧者がVBAの実行を認めない限り、閲覧不可にしたいのです。もし認めない場合はメッセージボックス等で「開くことができません」と表示され、エクセルが閉じるようにしたいです。 どのようなVBAのプログラムを組めば実行できますか?

  • エクセル2000でダブルクリックで開かない

    エクセル2000でエクスプローラからファイルをダブルクリックで開こうとすると、”既に同じ名前のファイルが開いています。一方のファイルを閉じるかファイルの名前の変更をしてください”というメッセージがでます。 ワードでも同じようなメッセージがでます。 他のエクセル97からはそのファイルは問題なくみれます。また、2000でもエクセルを起動してからファイルを開くと問題なくひらきます。 ツールーオプションー全般ー他のアプリケーションを無視するのチェックボックスはオフになっています。 是非助けてください。

  • エクセル VBA

    エクセル VBA セルA1に ”□はい □いいえ”とあり それをダブルクリックすると ?フォームが表示されチェックしますか?と聞きOKなら ■ はい となり   次に続けて ?フォームが表示されチェックしますか?と聞きOKなら ■いいえ となるような マクロの記述は出来るのでしょうか? すいません! 教えてください。

専門家に質問してみよう