処理中によくあるエラーとしては、「数値のオーバーフロー」、「0で割り算をしょうとした」、「配列の要素が超えた」など沢山あります。
このようなバグをデバッグするのは、極端なデータで実行したり、順番どうりでない順序でテストしたりすることが必要です。
又、Debug.Printなどで結果を表示させ確認することも有用です。
関連するTipsの「VBAのエラー処理」も参照してください。
下では、Findメソッドを実行したが、シートに何も入力されていなくてエラーが発生しています。
デバッグ」ボタンをクリックすると、エラーの行が反転します。
この場合は、シートに何も入力されていない時を考え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
シートに何も入力されていない時、メッセージが表示されます。
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します