
VBA「エラー 1004」とは|原因と正しい対処法をわかりやすく解説

【監修】株式会社ジオコード クラウド事業 責任者
庭田 友裕
Excelで作業してたら「エラー1004」が出て止まった、、そんな状況に悩んでいませんか?
- 「アプリケーション定義またはオブジェクト定義のエラー」と表示される
- セルやシートの指定でエラーになる
- 正常に動いていたコードが突然動かなくなった
エラー1004は、指定ミスやファイルの状態、参照対象の不一致など、さまざまな要因で発生します。
この記事では、Excel VBAで「エラー1004」が起こる代表的な原因と、その解決策を初心者にもわかりやすく解説しています。
対応が難しいと感じたら、当サイト紹介の専門業者に無料相談してみるのも一つの選択肢です。
この記事の目次はこちら
VBA「エラー1004」の主な原因
実行時エラー1004は、Excel VBAでセルやシート、ファイルなどを操作しようとしたときに、その対象が存在しない、または操作できない状態で発生します。コードの書き方の不備だけでなく、ファイルやシートの状態も影響するため、総合的な確認が必要です。
存在しないシートやセルの参照
指定したシート名が間違っていたり、削除済みのシートを参照しようとした場合、エラー1004が発生します。セル範囲でも、名前定義ミスや参照外の指定に注意が必要です。
セル範囲の指定ミス
「Range(“A1:B”)」など、終点が不明確な書き方はエラーの原因になります。また、結合セルを含む範囲指定でも、意図通りに動作しないことがあります。
変数の初期化漏れや範囲外の指定
変数に値を代入せずに使おうとしたり、「Cells(0,1)」など無効な行番号を指定すると、実行時エラーが出ます。数値の範囲にも注意しましょう。
ファイルパスやファイル名の間違い
ファイルを開く処理などで、存在しないパスを指定していると、エラー1004が発生します。絶対パスと相対パスの使い分けにも注意が必要です。
シートやファイルの保護
保護されたシートやブックに書き込もうとすると、操作が拒否されてエラーになります。パスワード付きの保護が解除されているかを確認しましょう。
Excelブックの破損や不整合
見た目は普通のExcelファイルでも、内部で破損や不整合が起きていると、マクロが動かない、関数が正しく計算されないといった不具合が発生します。特に保存中のフリーズや突然の強制終了などが原因となり、ファイル構造に異常をきたすことがあります。
バージョンの違いや互換性の問題が重なると、ファイルが開けなくなったり、エラー表示が繰り返されたりするケースもあります。このような状態では、修復機能でも対応できないことがあり、無理に開こうとすると破損が進行する恐れも。大切なデータが含まれている場合は、早めに専門の復旧業者に相談することをおすすめします。
【データ消失】自己判断の落とし穴とは

パソコンやデバイスに不具合が起きたとき、「とりあえず操作してみよう」と感じる人は多いと思います。しかし、その操作がかえって状態を悪化させ、復旧できたはずのデータまで失われてしまうことがあります。
たとえば、内部でファイル構造やシステムに異常がある場合、繰り返しの操作によって上書きや障害の進行が起き、本来なら取り戻せたデータが復旧困難になるケースも実際に少なくありません。
以下のような不安や迷いがあるときは、いったん手を止めて、専門的な視点から状況を確認してもらうという判断も有効です。
- 絶対に失いたくないデータがある
- 写真や業務データなど、重要なファイルが含まれている
- パソコンやストレージ機器の操作に不安がある
編集部では、これまで多くのデータ復旧サービスを調査してきましたが、
中でもデジタルデータリカバリーは、以下のような点からおすすめできます。
- 2011年1月以降、累計46万件以上の相談対応実績
- 実際に扱ってきた障害事例は15,000件以上
- 24時間365日初期診断・見積もりはすべて無料
失いたくないデータがある方は、とりあえず相談だけしてみてはいかがでしょうか。
VBA「エラー1004」の対処法
エラーが発生した際は、慌てずにコードとExcelの状態を一つずつ確認しましょう。以下に、よくある原因ごとの対処法を具体的な手順でご紹介します。
- シートやセルの存在を確認する
- セル範囲の指定方法を見直す
- 変数を初期化してから使用する
- ファイルパスやファイル名を再確認する
- 保護状態を解除する
- エラーハンドリングを取り入れる
- ファイルを修復または再作成する
シートやセルの存在を確認する
対象のシートが存在しない場合、参照自体が無効になります。スペルミスや削除に注意し、コード内でも事前確認を行うのが安全です。
存在確認の手順
- シート名のスペルを手動で確認
- VBA内でIf WorksheetExists(“Sheet1”) Thenのようなチェック処理を導入
- 必要であればエラー処理を追加
セル範囲の指定方法を見直す
終点を省略したり、不正な範囲を記述すると正しく動作しません。範囲は明確に指定し、結合セルは避けるか個別に処理を分けて記述することが推奨されます。
範囲指定の修正例
- Range(“A1:B10”)のように始点と終点を明記
- 結合セルがある場合はUnMergeや個別操作を検討
- Cells(i, j)を使う場合はiとjの範囲をチェック
変数を初期化してから使用する
変数が未定義のままセルやブックを参照しようとすると、想定外のエラーが発生します。事前に代入する習慣をつけることが再発防止につながります。
初期化の基本手順
- Dim ws As Worksheetのように宣言
- Set ws = ThisWorkbook.Sheets(“Sheet1”)で初期化
- 初期化後に使用するようにする
ファイルパスやファイル名を再確認する
存在しないファイルを開こうとするとエラーになります。パスやファイル名が正しいかどうか、手動でも確認しておきましょう。
ファイルパス確認の手順
- 実際のファイルをエクスプローラーで開く
- パスをコピーし、VBAコードに貼り付けて正確に記述
- ネットワークパスやUSB接続のタイムラグにも注意
保護状態を解除する
保護されたブックやシートは、マクロでの変更が制限されているため、事前に保護解除のコードを挿入する必要があります。
保護解除の手順
- Sheet1.Unprotect Password:=”パスワード”を実行
- 操作後にProtectで再度保護も可能
- 保護状態はSheet1.ProtectContentsで判定可能
エラーハンドリングを取り入れる
事前にエラー発生を想定した処理を組み込むことで、処理が止まるのを防ぎます。エラー発生後の処理を明記することで、原因の特定にも役立ちます。
エラーハンドリングの例
- On Error GoTo ErrorHandlerをコード上部に記述
- 任意のラベル(例:ErrorHandler:)で処理を記述
- ログ記録やメッセージボックス表示で原因を明示
専門業者に相談する
VBAエラー1004が繰り返し発生する、修正しても直らない、またはファイル自体が破損して開けないといった深刻なケースでは、ファイル修復や復旧の専門業者に相談するのも選択肢です。特に業務データや長年蓄積されたシートが関係している場合は、安全な方法で修復を進める必要があります。当サイトで紹介している専門業者では、初期診断と見積もりは無料。トラブルの原因特定から安全な復旧まで対応可能です。
おすすめのデータ復旧業者
データ復旧業者を選ぶ際、最も重要なのは「復旧技術」、つまり復旧率の高さです。全国には100社以上の業者が存在しますが、その技術力には大きな差があります。
そこで編集部が厳選した、特におすすめのデータ復旧サービスが デジタルデータリカバリー です。技術力で選ぶなら、迷わずこちらを検討してください。
データ復旧業界の老舗! 14年連続国内売上No.1を誇る「デジタルデータリカバリー」
データ復旧専門業者14年連続国内売上No.1
相談実績は46万件超、他社で復旧不可だった機器の相談件数が7,300件を突破!
復旧率の最高値は驚異の91.5%! 確かな技術力で幅広い機器や障害に対応
24時間365日相談・診断・無料見積もりOK
データ復旧率 | データ復旧率最高値91.5%(※1) |
対応製品、メディア | NAS/サーバー等のRAID機器ハードディスクパソコンSSDレコーダーUSBメモリSDカード・MSDカード・SFカードビデオカメラスマートフォンなど 記憶メディア全般 |
完全成果報酬型 | 成果報酬制 |
受付時間 | 24時間365日受付可能 |
スピード対応 | 〇(依頼の約8割を48時間以内に完了) |
無料見積もり | 〇 |
無料診断 | 〇 |
店舗持ち込み | 〇 |
セキュリティ | 〇(ISO27001・Pマーク取得) |
初期診断 | 最短5分 |
復旧 | 最短15分・依頼の約8割を48時間以内に完了 |
データ復旧専門業者14年連続国内売り上げNo.1! これまでの相談実績は46万件超
デジタルデータソリューション株式会社は、1999年に創業以来、データ復旧業界の第一線を走る老舗企業です。HDDやUSBメモリなどのデータ復旧を行うデータリカバリー事業では、累計46万件超のインシデント対応をした実績を誇ります(※)。
※対象期間:2011年1月1日以降
これまでTOYOTAやNTTデータなどの大手企業をはじめ官公庁や大学、病院など、さまざまな業界・規模の企業がサービスを利用しています。
セキュリティ対策や秘密保持契約(NDA)の締結などの対応がしっかりしている点も、利用の決め手となっているようです。一発勝負であるといわれるデータ復旧において、実績を重視したい方におすすめです。
復旧率の最高値は驚異の91.5%! 国内最大級のデータ復旧ラボと確かな技術力で幅広い機器や障害に対応
デジタルデータソリューション株式会社では、「難易度の高いサーバー復旧を得意とするRAID・サーバー緊急対応チーム」や「物理的な破損による障害を復旧する物理復旧チーム」など、症状や強みごとに専門チームを組成しています。
また、国内最大級のデータ復旧ラボには、国内外から取りそろえた復旧の設備が300以上あり、年代ごとに異なる互換性にも対応することが可能です。豊富な知識や確かな技術力、設備環境によって成功率を高めており、復旧率の最高値はなんと91.5%を誇ります(※)。
※一部復旧を含む復旧件数割合91.5%(内、完全復旧57.8%。復旧件数割合=データ復旧件数/データ復旧ご依頼件数。2023年10月実績)
他社で復旧不可だった機器の相談件数が7,300件を突破! 24時間365日相談・診断・無料見積もりOK
初期診断はデータ復旧の鍵を握る重要な要素ですが、デジタルデータソリューション株式会社では、機器の異音や最先端のプログラム解析機、電圧測定器などを使って最短5分で故障個所を特定することが可能です。
これまでの症例を1件ずつ電子カルテ化するなど、診断や復旧作業の精度を高める取り組みを積極的に行っているので、他社や製造メーカーで復旧できなかったケースでも復旧が可能な場合があります。
24時間365日、相談や初期診断、見積もり対応をしているので「機器が壊れてしまった」「データが消えた」といった急を要する事態にも柔軟に対応できます。法人であれば、全国出張診断が無料で依頼できます。お問い合わせフォームからご相談ください。
こんな方におすすめ
- 確実にデータを復旧したい方
- なるべく早くデータを復旧してもらいたい方
- セキュリティ対策がしっかりしている業者に相談したい方
おすすめデータ復旧業者 | デジタルデータリカバリー |
URL | https://www.ino-inc.com/ |
データ復旧専門業者14年連続国内売上No.1
相談実績は46万件超、他社で復旧不可だった機器の相談件数が7,300件を突破!
復旧率の最高値は驚異の91.5%! 確かな技術力で幅広い機器や障害に対応
24時間365日相談・診断・無料見積もりOK
まとめ
VBA「実行時エラー1004」は、自己判断で対応するとデータを失うリスクが高まる可能性があります。特にセル範囲やシートの指定、保護状態の確認漏れなど、基本的なポイントが見落とされやすい原因となります。原因をひとつずつ切り分けて対処することで、多くのケースは自力で解決可能です。
自力対応が不安な方や、ファイルが破損して開けない・修復が難しいと感じた場合は、まず専門業者に相談しましょう。当サイトで紹介している専門業者は、24時間365日対応。初期診断・見積もりは無料で、「原因を知りたいだけ」という軽い相談でも可能です。早めの対応が、業務データを守る鍵となります。