Vba ランタイム エラー 1004 を修正するにはどうすればよいですか?
Excel でマクロを実行中に VBA ランタイム エラー 1004 が発生します。これは、いくつかの理由で発生する可能性のあるエラーです。以下の例では、ご覧のとおり、コードを実行するとランタイム エラー ‘1004’ が表示されます。簡単に言うと、オブジェクトまたはアプリケーションでアクティビティを実行できないときに発生するとも言えます。
このチュートリアルでは、このランタイム エラー 1004 の他のいくつかの理由を理解します。
エラー 1: VBA ランタイム エラー 1004: この名前はすでに使用されています。別の方法を試してください:
上で共有したように、VBA コードを使用してブックに既に存在する名前のシートを追加しようとすると、VBA はコード 1004 のランタイム エラーを表示します。
ワークシートの名前を変更しようとしても、VBA から同じエラーが発生します。
上記のコードでは、シート「Sheet2」の名前を「Sheet1」に変更しようとしましたが、ご覧のとおり、ワークブックにはすでに「Sheet1」が存在します。 VBA でエラー コード 1004 が表示されました。
この問題に対処するには、ブックにシートが既に存在するかどうかを確認する必要があります。
エラー 2: VBA ランタイム エラー 1004: オブジェクト ‘_Global’ の ‘Range’ メソッドが失敗しました:
ご存知のとおり、Excel では名前付き範囲を作成できますが、VBA コードを使用してその名前付き範囲を参照しようとしてその名前のスペルを間違えると、ランタイム エラー 1004 オブジェクト ‘Range’ メソッド ‘_Global’ が失敗しました が発生することがあります。
次の例では、「myRange」という名前の名前付き範囲がありますが、マクロを作成するときに、入力ミスであるにもかかわらず、スペルを「myRang」と間違えてしまいました。 VBA は、このエラーを識別して正しい名前付き範囲を参照するほど賢明ではありません。
私が言及した名前の名前付き範囲は存在しないため、実行時エラー 1004 が表示されました。
エラー 3: VBA ランタイム エラー 1004: クラス Range メソッドの選択に失敗しました:
VBA コードを使用してアクティブなワークシートにない範囲を選択すると、VBA はランタイム エラー 1004 を表示します。これは、シート計算のためにセルまたはセルの範囲を選択する場合は、その時点でセルがアクティブになっている必要があるためです。 。
現在シート 2 がアクティブな場合、シート 1 のセルを選択することはできません。
次の例でわかるように、最初のシートのセル A1 を参照したときに同じ間違いを犯しましたが、シート 2 はアクティブです。
このエラーに対処する最善の方法は、まずシートをアクティブにしてから、そのシートのセルまたは範囲を選択するコード行を記述することです。また、シートがアクティブかどうかを確認してから、そのシートのセルを選択し、何らかの理由でそのシートがアクティブでない場合は、最初にこのシートを有効にするようにユーザーにメッセージを表示することもできます。
エラー 4: VBA ランタイム エラー 1004 メソッド範囲クラスをアクティブ化できませんでした:
上記の理由と同様に、現在アクティブではない特定のワークシートのセルまたはセル範囲をアクティブにしようとすると、ランタイム エラー 1004 (メソッド範囲クラスのアクティブ化に失敗しました:) が表示されます。
この例では、シート 1 のセル A1 をアクティブにしようとしたときに実行時エラー 1004 が発生し、アクティブなシートはシート 2 でした。
このエラーに再度対処するには、参照しているワークシートがアクティブかどうかを確認する必要があります。または、このシートがワークブックに存在するかどうかを確認することもできます。
エラー 5: VBA ランタイム メソッド エラー 1004 申し訳ありませんが、次のものが見つかりませんでした。
パスを使用して Excel ファイルを開こうとしても、そのブックが存在しない場合は、そのブックが移動、削除、または名前変更された可能性があります。この場合、VBA は再び実行時エラー 1004 を表示します。
これは、デスクトップ パスでファイルを開こうとしたが、そのファイルが存在せず、エラーが表示された次の例で起こったことです。
この状況に対処するには、VBA コードを使用して、参照しているファイルがフォルダー内に存在するかどうかを確認します。
エラー 6: オブジェクト バインダー VBA ランタイム エラー 1004 メソッドを開けませんでした:
このエラーはワークブックにも関連しています。したがって、ブックが既に存在し、現在開かれている名前のブックを開こうとすると、VBA はランタイム エラー 1004 (オブジェクト ブックのオープン メソッドに失敗しました) を表示します。
上の例でも同じことが起こり、すでに開いているブックを開こうとしたところ、VBA によってランタイム エラー (1004) が表示されました。
VBA の実行時間 (エラー 1004) を修正する方法
エラー 1004 は、VBA コードの実行時に発生するランタイム エラーです。また、上で説明したすべてのエラーは、実行時エラー 1004 を回避するために使用できるポイントに従って、コードを作成する際の人的エラーが原因です。
- 段階的にコードを実行して、どの行でエラーが発生しているかを確認します。
- 参照しているワークブックの名前をすべて確認してください。
- VBA コードを使用して、ブックがすでに開いているかどうかを確認することもできます。
- また、ワークシートのセルまたは範囲を参照する前に、activate メソッドを使用してワークシートをアクティブにします。
関連するチュートリアル
- VBAのエラー処理
- VBA オートメーション エラー (エラー 440)
- 無効な VBA プロシージャ呼び出しまたは引数エラー (エラー 5)
- VBA オブジェクトはこのプロパティまたはメソッド エラーをサポートしていません (エラー 438)
- VBA オブジェクト必須エラー (エラー 424)