プログラムによってブックを保存する

ブックを保存する方法はいくつかあります。 パスを変更しないでブックを保存できます。 以前にブックが保存されていない場合は、パスを指定してブックを保存する必要があります。 明示的なパスがない場合、Microsoft Office Excel は、ファイルが作成されたときに付けられた名前で現在のフォルダーにファイルを保存します。 メモリ内の開いているブックを変更しないで、ブックのコピーを保存することもできます。

適用対象: このトピックの情報は、Excel のドキュメント レベルのプロジェクトおよび VSTO アドインのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

パスを変更しないでブックを保存する

ドキュメント レベルのカスタマイズに関連付けられているブックを保存するには

  1. Save クラスの ThisWorkbook メソッドを呼び出します。

    this.Save();
    

VSTO アドインで作業中のブックを保存するには

  1. 作業中のブックを保存するには Save メソッドを呼び出します。 次のコード例を使用するには、Excel 用 VSTO アドイン プロジェクトの ThisAddIn クラスから実行します。

    this.Application.ActiveWorkbook.Save();
    

新しいパスでブックを保存する

指定したブックを、新しい場所にまたは新しい名前を付けて、そしてオプションでファイル形式、パスワード、アクセス モードなどを指定して保存できます。

Note

新しい書式で保存するにはユーザー操作が必要なため、新しいパスでブックを保存する前に、DisplayAlerts プロパティを False に設定する場合があります。 このプロパティを False に設定すると、Excel はすべて既定値を使用します。

ドキュメント レベルのカスタマイズに関連付けられているブックを保存するには

  1. SaveAs クラスの ThisWorkbook メソッドを呼び出します。 次のコード例を使用するには、ThisWorkbook クラスで実行します。

    this.SaveAs(@"C:\Book1.xml", missing,
        missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange,
        missing, missing, missing, missing, missing);
    

VSTO アドインで作業中のブックを保存するには

  1. 作業中のブックを新しいパスに保存するには SaveAs メソッドを呼び出します。 次のコード例を使用するには、Excel 用 VSTO アドイン プロジェクトの ThisAddIn クラスから実行します。

    this.Application.ActiveWorkbook.SaveAs(@"C:\Test\Book1.xml", 
        Excel.XlSaveAsAccessMode.xlNoChange);
    

ブックのコピーを保存する

メモリ内の開いているブックを変更しないで、ブックのコピーをファイルに保存することができます。 これは、ブックの場所を変更することがなくバックアップ コピーを作成するときに役立ちます。

ドキュメント レベルのカスタマイズに関連付けられているブックを保存するには

  1. SaveCopyAs クラスの ThisWorkbook メソッドを呼び出します。 次のコード例を使用するには、ThisWorkbook クラスで実行します。

    this.SaveCopyAs(@"C:\Book1.xlsx");
    

VSTO アドインで作業中のブックを保存するには

  1. 作業中のブックのコピーを保存するには SaveCopyAs メソッドを呼び出します。 次のコード例を使用するには、Excel 用 VSTO アドイン プロジェクトの ThisAddIn クラスから実行します。

    this.Application.ActiveWorkbook.SaveCopyAs(@"C\Book1.xlsx");
    

保存が成功したことを確認するには

保存が成功したことを確認するには、最後の保存時刻などの DocumentProperties の一部を使用できます。

信頼性の高いプログラミング

ブックを保存またはコピーするメソッドのいずれかを対話的にキャンセルすると、コード内で実行時エラーが発生します。 たとえば、プロシージャが SaveAs メソッドを呼び出した際に Excel のプロンプトを無効にしなかった場合、プロンプトが表示されたときにユーザーが [キャンセル] をクリックすると、Excel で実行時エラーが発生します。