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

 

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

 

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

Excel VBA 1004エラー

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

 

1004エラーの対処方法

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

 

ポイント

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

 

Excel VBA 1004エラー対処サンプルコード
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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。