- ベストアンサー
エクセルでマクロボタンを押す前に、実行するかどうか再確認させたいのですが・・・。
いつもこちらで大変お世話になっています。 エクセルでマクロを組み、ボタンを作成しました。 ボタンをクリックすると、組んだマクロが開始されるのですが その前に一度、「実行しますか?はい(実行)・いいえ(キャンセル)」といったような確認をさせたいのです。 このようなことは可能でしょうか? 可能ならば方法を教えてください。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >エクセルでマクロを組み、ボタンを作成しました。 元のコードがどうなっているのか分りませんので、実際は、どうしてよいのか具体的には、こちらでは分りません。 いくぶん、重複してしまいますが、それ以前のステップから書かないといけないようですが、よく読んで、試してみたください。 最初に、私の#2で書いたコードをそのまま貼り付けても、エラーが出ます。 それは、コマンドボタン(CommandButton)には、二種類あるからです。 1つは、コントロールツールのボタンと、もう1つは、フォームのボタンです。 それは、どちらなのかおわかりなりますか? 中身自体は、 '--------------------------------- If MsgBox("実行しますか?", vbQuestion + vbOKCancel) = vbCancel Then MsgBox "終了します。" Exit Sub End If '実行継続 '--------------------------------- このようにはなるのですが、外側が違ってきます。 コントロールツールの場合は、コントロールツールから、右クリックして、コードの表示とすると、 Private Sub CommandButton1_Click() End Sub と中身の空のプロシージャが出てきますから、そこに中身の点線で囲まれた上記のコードを入れてあげます。 フォームのツールの場合は、 例えば、 Sub ボタン1_Click() If MsgBox("実行しますか?", vbQuestion + vbOKCancel) = vbCancel Then MsgBox "終了します。" Exit Sub End If '実行継続 End Sub のようにして、右クリック-マクロの登録で、この名前「ボタン1_Click」を探して、登録します。 次に、「実行継続」の部分に、どんなものを入れるか、これは教えてもらってはいませんので、ご自分で入れられるなら、それを入れてください。もし、出来ないようなら、ここで公開してください。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 同じような内容を書いて恐縮しますが、こうしたらどうでしょうね。 ただし、これは、コントロールツールバーの中のボタンに対して、[右クリック]-[コードの表示]でVisual Basic Editor 画面を出してから、書き付けるものです。 Private Sub CommandButton1_Click() If MsgBox("実行しますか?", vbQuestion + vbOKCancel) = vbCancel Then MsgBox "終了します。" Exit Sub End If '実行継続 End Sub フォームツールバーのコマンドボタンのほうが作りやすいけれども、コントロールツール側のボタンは、編集ボタン(青い三角定規のツールアイコン)を押さないと、勝手に変更することが出来ません。
お礼
ありがとうございます。 さっそく書きつけてみたのですが、よくわかりません・・・。 「コンパイルエラー」と出たり、「End Sub」を記入してください、と出ます。 まったく意味がわかりません・・・。 どうしたら良いでしょうか?? すみませんが、引き続き教えてください。
- asahina02
- ベストアンサー率47% (95/202)
マクロを編集するとVBAの画面が出てきますよね? ここで先頭に If (vbYes <> MsgBox("実行していい?", vbYesNo)) Then Exit Sub End If と入れてあげればご希望の仕様を満足できる思い増す。
お礼
ありがとうございます。 教えてくださったように入力すると 「コンパイルエラー」と出てしまうのですが・・・。 エクセル初心者の私にはムリな望みだったのでしょうか???・・・・・・。
お礼
できました!! ご親切に丁寧に教えてくださって、感謝です。 ありがとうございました。