マクロで動かした後は元に戻せません。
保存しないぐらいしか対応方法がないので、実行前の確認は結構重要です。
今回はそんな実行確認用ダイアログの出し方。
↓のVBA文はそのままコピーして使えますし、作ったマクロのSubのひとつ下の行に差し込むのも良いでしょう、その場合はSubとEnd Subはコピーせず中身だけコピーするようにしましょう。
ちなみに操作記録をしてマクロを作成した時はコメント行として3行か4行あると思うのでその下に中身を貼り付けて動作を確認してみましょう。
Sub execonfirmYN()
Dim ALT As VbMsgBoxResult
ALT = MsgBox("実行しますか?", vbYesNo + vbExclamation, "Exe confirm")
If ALT = vbYes Then
MsgBox "実行しました。"
End If
If ALT = vbNo Then
MsgBox "中止しました。"
End Sub
Sub execonfirmY()
Dim ALT As VbMsgBoxResult
ALT = MsgBox("実行しますか?", vbYesNo + vbExclamation, "Exe confirm")
If ALT = vbYes Then
MsgBox "実行しました。"
End If
End Sub
Sub execonfirm()
Dim ALT As VbMsgBoxResult
ALT = MsgBox("実行しますか?", vbYesNo + vbExclamation, "Exe confirm")
End Sub
・
・・
・・・
Dimの後のALTはその後の動きを管理する為の変数です。
メッセージボックス関数の中のタイトル"Exe confirm"の部分に実行する内容を入れておくとより親切ですね、ついでに使えそうなボタン引数も残しておきます。
vbOKOnly 'OKボタンのみを表示。
vbOKCancel 'OKとキャンセルボタンを表示。
vbYesNoCancel 'はい、いいえ、キャンセルを表示。
vbYesNo 'はい、いいえを表示。
vbQuestion 'ハテナアイコンを表示。
vbExclamation 'ビックリマークを表示。
vbDefaultButton1 '数字で既定ボタンの設定。
他にもありますので興味がある方は調べてみてください。
引数を複数追加する場合は
, vbYesNo + vbQuestion ,
のように引数の間に+を付けましょう。
MsgBox (メインメッセージ,ボタン(省略可),タイトルバー(省略可),ヘルプテキスト(省略可),ヘルプテキストの補助(省略可))
という形になっており、
MsgBox("メッセージ")
というように使う事が出来ます。
その他は省略可能ですが、ヘルプテキストを入れる場合はセットでヘルプテキストの補助(context)が省略できなくなるので注意。
画面移動の多いマクロを組む場合によく使う
Application.ScreenUpdating = False と True
で画面表示を止める場合でも気にせず使って大丈夫です、スクリーンアップデーティングの中でも外でもダイアログは表示してくれます。
マクロも上手に使って快適なExcelライフを!
ではでは。