Excel VBA 1004エラーの原因ごとの対処方法とエラーハンドリング

 

Excel VBAの1004エラーは、様々な原因で発生します。今回は、Excel VBAで実行されるマクロやコードにおいて、対象となるオブジェクトが存在しない、または正しく参照されていない場合の対処方法や、注意点やエラーハンドリング実装のサンプルコードを紹介します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA 1004エラー

1004エラーは、特定のセルや範囲、シート、ブックなどのオブジェクトにアクセスするExcel VBAコードを実行する際、それらのオブジェクトが存在しない場合や正しく参照されていない場面で発生します。

 

1004エラーの対処方法

エラーが発生する原因となる可能性がある箇所でエラーチェックして、存在しないオブジェクトにアクセスする前に確認で、エラーを回避します。

 

Excel VBA 1004エラー注意点

1004エラーは実行時エラーであり、発生するとプログラムが停止します。エラーが発生する箇所を特定し、それに対するエラーハンドリングを実装することが重要です。

 

Excel VBA 1004エラー対処サンプルコード

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

Option Explicit

Sub SampleCode()
    Dim ws As Worksheet
    
    ' シートが存在するか確認
    On Error Resume Next
    Set ws = Worksheets("Sheet1")
    On Error GoTo 0
    
    ' シートが存在する場合の処理
    If Not ws Is Nothing Then
        ' シートが存在する場合のコードを記述
        ws.Range("A1").Value = "Hello, World!"
    Else
        ' 存在しない場合のエラー処理
        MsgBox "Sheet1が見つかりません。"
    End If
End Sub

サンプルコードは、Sheet1のワークシートが存在するかどうかを確認しています。存在すればA1セルにメッセージを書き込み、存在しなければエラーメッセージを表示します。これで、存在しないオブジェクトにアクセスしての1004エラーを回避しています。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問