Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

Excelで実行時エラー1004を修正する方法

ランタイムエラー1004は、MicrosoftExcelユーザーに影響を与えることが知られているMicrosoftVisualBasicに関連するエラーコードです。このエラーは、Excel2003およびExcel2007で最も一般的であることが知られていますが、Microsoftの人気のあるコンピューター用ワークシートアプリケーションのバージョンは、ランタイムエラー1004という脅威から安全ではありません。ほとんどの場合、この問題の影響を受けるユーザーには、次のいずれかが表示されます。実行時エラー1004の2つの異なるバリエーション。全体として、実行時エラー1004の2つのバリエーションは次のようになります。

実行時エラー「1004」:
ワークシートクラスのメソッドのコピーに失敗しました

実行時エラー「1004」:
アプリケーション定義またはオブジェクト定義のエラー

Excelで実行時エラー1004を修正する方法

表示される正確なエラーメッセージもわずかに異なる場合がありますが、エラーコードは同じままです。ただし、発生する問題のバージョンに関係なく、ほとんどの場合、ワークシートをコピーして元のワークシートと同じブックにコピーを配置するように設計されたマクロをExcelで実行しているときに発生します。

そこにある最悪の技術的な問題とは異なり、MicrosoftExcel内のランタイムエラー1004の原因は知られています。実行時エラー1004は、実行中のマクロが、マクロを実行する前に保存して閉じなかった定義済みの名前のブックに元のワークシートをコピーしているときに発生します。このようなマクロの例は、次のコードで確認できます。

Sub CopySheetTest()
    Dim iTemp As Integer
    Dim oBook As Workbook
    Dim iCounter As Integer
    
    ' Create a new blank workbook:
    iTemp = Application.SheetsInNewWorkbook
    Application.SheetsInNewWorkbook = 1
    Set oBook = Application.Workbooks.Add
    Application.SheetsInNewWorkbook = iTemp
    
    ' Add a defined name to the workbook
    ' that RefersTo a range:
    oBook.Names.Add Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1"
            
    ' Save the workbook:
    oBook.SaveAs "c:\test2.xls"
    
    ' Copy the sheet in a loop. Eventually,
    ' you get error 1004: Copy Method of
    ' Worksheet class failed.
    For iCounter = 1 To 275
        oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)        
    Next
End Sub

Microsoft Excelのコンテキストでのランタイムエラー1004の原因がわかっているので、解決策もわかっています。この問題の解決策に加えて、影響を受けるユーザーが利用できるのは、解決策が機能しない場合、または解決策が実行可能なオプションであると思われない場合に使用できる回避策です。

解決策:

この特定の問題の解決策は、実行しているマクロのコードを編集するだけで、ワークシートのコピーを作成している間、ターゲットワークブックを定期的に保存して閉じることができます。これを行うマクロのコードは、次のようになります。

Sub CopySheetTest()
    Dim iTemp As Integer
    Dim oBook As Workbook
    Dim iCounter As Integer
    
    ' Create a new blank workbook:
    iTemp = Application.SheetsInNewWorkbook
    Application.SheetsInNewWorkbook = 1
    Set oBook = Application.Workbooks.Add
    Application.SheetsInNewWorkbook = iTemp
    
    ' Add a defined name to the workbook
    ' that RefersTo a range:
    oBook.Names.Add Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1"
            
    ' Save the workbook:
    oBook.SaveAs "c:\test2.xls"
    
    ' Copy the sheet in a loop. Eventually,
    ' you get error 1004: Copy Method of
    ' Worksheet class failed.
    For iCounter = 1 To 275
        oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)
        'Uncomment this code for the workaround:
        'Save, close, and reopen after every 100 iterations:
        If iCounter Mod 100 = 0 Then
            oBook.Close SaveChanges:=True
            Set oBook = Nothing
            Set oBook = Application.Workbooks.Open("c:\test2.xls")
        End If
    Next
End Sub

注: コピーを保存して閉じる前にワークシートをコピーできる正確な回数は、コピーを作成するワークシートのサイズによって異なるため、ケースごとに異なります。

回避策:

前に述べたように、この特定の問題の回避策も存在します。この問題を回避するには、既存のワークシートのコピーを作成する代わりに、テンプレートから新しいワークシートを挿入するだけです。この問題を回避したい場合は、次のことを行う必要があります。

  1. Excelを起動します 。
  2. 新しいブックを作成し、削除 ワークブックに含まれるすべてのワークシートには、1つを除いて保存されます。 Excelで実行時エラー1004を修正する方法
  3. フォーマット ワークブック。
  4. デフォルトでテンプレートに含めるテキスト、データ、グラフを、ワークブックに含まれている唯一のワークシートに追加します。
  5. Excel 2003以前を使用している場合は、[ファイル]をクリックします>名前を付けて保存 。一方、Excel 2007以降を使用している場合は、[ Microsoft Office]をクリックします。 ボタンをクリックし、[名前を付けて保存]をクリックします 。 Excelで実行時エラー1004を修正する方法
  6. ファイル名 フィールドに、テンプレートを呼び出すために必要なものを入力します。
  7. [名前を付けて保存:]の横にあるプルダウンメニューを開きます フィールドをクリックして、 Excelをクリックします。 テンプレート(.xlt) Excel 2003以前、または Excelを使用している場合 テンプレート(.xltx) Excel2007以降を使用して選択している場合。 Excelで実行時エラー1004を修正する方法
  8. [保存]をクリックします 。 Excelで実行時エラー1004を修正する方法
  9. テンプレートが正常に作成されたら、次のコード行を使用してプログラムでテンプレートを挿入できます。
    Sheets.Add Type:=パス \ ファイル名

注: 上記のコード行で、 path \ filename 作成したシートテンプレートの場所のフルパス(完全なファイル名を含む)に置き換える必要があります。


  1. Excel でエラーが発生した問題を修正

    インドの眼鏡会社 Lenskart の共同創設者であり、Shark Tank India のサメである Peyush Bansal は、番組で、MS Excel なしでは自分の人生は想像を絶するものになるだろうと述べたことがあります。そして、ほとんどの企業や個人が同じような考えを持っていると思います。当初、Excel は 1987 年に Mac で最初にリリースされ、その後 Windows でリリースされ、すぐに世界中でトップの表計算ソフトウェアになりました。ただし、Windows はクラッシュやバグが多いことで知られており、多くのユーザーが Excel でエラーが発生するという問題に直面して

  2. Windows 11 で Microsoft Excel を実行するのに十分なメモリがないというエラーを修正する方法

    Windows 11 で「Microsoft Excel を実行するのに十分なメモリがありません」というエラーが発生しますか?では、これは何を意味し、デバイスで Excel アプリにアクセスできないのはなぜでしょうか?はい、あなたの心は今すぐ質問でいっぱいになるはずです!心配しないで; Microsoft Excel は Office スイートの一部であり、スプレッドシート、データ入力操作、チャート、グラフ作成などを行うための最も人気のあるアプリの 1 つです。これは、データの整理と財務分析の実行に使用できる最も直感的なアプリの 1 つです。 そのため、Windows PC で Ex