Excel VBA:処理中によるよくあるエラー|エラーによる中断と修正方法

VBAの実行中に発生するエラーについてと、その修正方法を掲載します。



Homeに戻る > Excel 基本Tipsへ

処理中によくあるエラーとしては、「数値のオーバーフロー」、「0で割り算をしょうとした」、「配列の要素が超えた」など沢山あります。

このようなバグをデバッグするのは、極端なデータで実行したり、順番どうりでない順序でテストしたりすることが必要です。

又、Debug.Printなどで結果を表示させ確認することも有用です。

関連するTipsの「VBAのエラー処理」も参照してください。



エラーによる中断

エラーが発生したVBEの画面

下では、Findメソッドを実行したが、シートに何も入力されていなくてエラーが発生しています。

エラーが発生

デバッグ」ボタンをクリックすると、エラーの行が反転します。

デバッグ

この場合は、シートに何も入力されていない時を考えVBAを修正します。

修正するには、メニューの「実行」-「リセット」で動作を停止してください。




VBAの修正

下のように On Error 文を使いエラー処理を追加します。


'最終セル位置を取得する
Public Sub GetLastCell()
    Dim s1 As String

    'エラーが発生すると ErrExit へジャンプ
    On Error GoTo ErrExit
    ActiveSheet.Cells.Find(What:="*", LookAt:=xlWhole, _
      SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
    s1 = "セル位置:" & ActiveCell.Address & _
      " 行:" & ActiveCell.Row & " 列:" & ActiveCell.Column
    MsgBox "最終位置は " & s1
    'プロシージャから抜けます。
    Exit Sub
ErrExit:
    MsgBox "なにも入力されていませんでした。"
End Sub


Excel実行結果

シートに何も入力されていない時、メッセージが表示されます。

メッセージ



Homeに戻る > Excel 基本Tipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved