ExcelVBAをいきなり実行してしまうとデータの破損になりかねないため、ぼくは必ず起動制御をかけています。
今回はよく使う”実行前にメッセージボックスを表示させ、「はい」「OK」を押したら実行させる”処理、”「いいえ」「No」「キャンセル」”を押したら中断させる処理を紹介します。
起動制御
以下のようにごく簡単なVBAのコードで起動制御をかけます。
1 2 3 4 5 6 7 8 9 |
Sub 起動制御() If MsgBox("データ加工処理しますか?", vbOKCancel) = vbOK Then 'ここに処理を追加します End If End Sub |
上記のVBAコードだと ”OK”を押した場合のみ処理を行ないます。
ちょっと味気ないですね。
中断処理
今度は中断処理も含めた起動制御のVBAコードです。
1 2 3 4 5 6 7 8 9 10 |
Sub 起動制御と中断処理() If MsgBox("データ加工処理しますか?", vbOKCancel + vbInformation) = vbCancel Then MsgBox "作業を中止します", vbOKOnly + vbExclamation Exit Sub End If End Sub |
起動制御にもvbInformationで装飾し、パッと見で確認メッセージである旨分かりやすくします。
「キャンセル」を押した場合はユーザに警告として表示するためvbExclamationで強調表示します。
ちなみに、vbOKCancel + vbInformation) = vbCancel とするのは、「キャンセルだった場合は即時に処理を終わらせるため」です。
vbOKでメイン処理を100ステップほど書いてしまうと”どこまでが最初のIF文かわからない”ことになってしまいます。
以下で見比べると一目瞭然ですね。