現象

このマクロで Visual Basic for ApplicationsをMicrosoft Excel、次のようなエラー メッセージが表示される場合があります。

実行時エラー '1004':オブジェクト '_Worksheet' のメソッド 'SaveAs' が失敗しました

原因

この動作は、次の両方の条件が満たされている場合に発生する可能性があります。

  • ワークシートを保存Visual Basic for Applicationsマクロを使用しています。-and-

  • ファイル形式は、定数 xlWorkbookNormal として指定します。

たとえば、次のコードを実行すると、このエラーが発生します。

Sub A()   Dim myNewSheet As Worksheet   Set myNewSheet = ActiveSheet   FileNameBin = "c:\ABC"   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormalEnd Sub

回避策 

Microsoft は、明示または黙示を問わず、明示または黙示を問わず、特定の目的に対する商品性やフィットネスに関する黙示の保証を含むがこれらに限定されない、説明のみを目的としてプログラミングの例を提供しています。 この記事では、説明されているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールに慣れたユーザーを想定しています。 Microsoft サポート担当者は、特定の手順の機能を説明するのに役立ちますが、これらの例を変更して、追加の機能を提供したり、特定のニーズに合わせて手順を構築したりは行う必要があります。 プログラミングの経験が限られている場合は、Microsoft 認定パートナーまたは Microsoft アドバイザリ サービスにお問い合わせください。 詳細については、次の Microsoft Web サイトを参照してください。 Microsoft 認定パートナー - https://partner.microsoft.com/global/30000104 Microsoft アドバイザリ サービス - http://support.microsoft.com/gp/advisoryservice 利用可能なサポート オプションと Microsoft への連絡方法の詳細については、次の Microsoft Web サイトを参照してください。http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMSこの動作を回避するには、ファイル形式の仕様を定数 xlWorkbookNormal から 1 に変更します。 コード例は、次のコードに変更された場合、通常は次の関数を使用します。

Sub A()   Dim myNewSheet As Worksheet   Set myNewSheet = ActiveSheet   FileNameBin = "c:\ABC"   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1End Sub

注意 ワークシートを保存している場合でも、ファイル形式が xlWorkbookNormal または 1 に設定されている場合、選択したブック内のすべてのワークシートが保存されます。

状態

マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。