もはやマクロ作成でおなじみの「エラー発生」。
マクロを作成しているとどうしても思ったような動作ができずエラーを連発してしまうことってありますよね。
とくに共用ファイルで作成したマクロの場合、自分が意図していない操作を誰かにさせることもあります。
今回はそんなときの解決策をひとつご紹介します。
エラーの発生対策
エラーが発生したときに、任意の処理を実行させることができる「On Error GoTo」ステートメントをつかいます。
On Error GoTo (任意の値)
(ここにコードを記述する)
Exit Sub
(任意の値): (エラーが発生したときの動作)
具体例をつかってご説明します。
このような一覧表で入力モレの確認をしたいときがあるとします。
入力していない箇所があれば、そこに色マーキングをつけて注意をうながしたいです。
このようなコードを準備しました。
範囲セルにたいして「SpecialCells(xlCellTypeBlanks)」をつかって「空白のセル」を指定しています。
この「空白セル」に色をつければいいですね。
Sub check() Range("C2:C4").SpecialCells(xlCellTypeBlanks).Interior.Color = RGB(255, 0, 0) End Sub
入力モレ(空白セル)があった場合がこちら。期待どおりに色がつきました。
しかし、入力モレ(空白セル)がなかった場合はこのようになります。
エラー画面がでてしまいましたね。
こうなってしまうと期待した動きでなくなってしまいます。
こういった場面で「On Error GoTo」をつかいます。
コードはこちらです。
Sub check2() On Error GoTo チェック Range("C2:C4").SpecialCells(xlCellTypeBlanks).Interior.Color = RGB(255, 0, 0) Exit Sub チェック: MsgBox Err.Description End Sub
こちらが実行結果です。
「実行時エラー」ではなくメッセージ画面がでてきました。
まとめ
よく使うと思われるエラー対策をご紹介しました。
できればエラーが出ないコードを書くことが一番ですが、どうしても仕方がないときもあります。そんなときにはこのような方法でエラーに備えるのはいかがでしょうか。