方法: プログラムによってブックを保存する
ブックを保存するには、いくつかの方法があります。パスを変更せずに、ブックを保存できます。これまでブックが一度も保存されていない場合は、パスを指定してブックを保存します。パスを明示的に指定しないと、ファイルは作成時に指定された名前で現在のフォルダーに保存されます。メモリ内で開いているブックを変更せずに、ブックのコピーを保存することもできます。
対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
パスを変更しないブックの保存
ドキュメント レベルのカスタマイズに関連付けられたブックを保存するには
ThisWorkbook クラスの Save メソッドを呼び出します。
Me.Save()
this.Save();
アプリケーション レベルのアドインでアクティブなブックを保存するには
Save メソッドを呼び出して、アクティブなブックを保存します。次のコード例を使用する場合は、Excel のアプリケーション レベルのプロジェクトの ThisAddIn クラスから実行します。
Me.Application.ActiveWorkbook.Save()
this.Application.ActiveWorkbook.Save();
新しいパスを指定したブックの保存
指定したブックを別の場所または別の名前で保存でき、オプションでファイル形式、パスワード、アクセス モードなども指定できます。
[!メモ]
形式を指定して保存すると対話処理が発生することがあるため、新しいパスでブックを保存する前に DisplayAlerts プロパティを False に設定することをお勧めします。このプロパティを False に設定すると、Excel ではすべて既定値が使用されます。
ドキュメント レベルのカスタマイズに関連付けられたブックを保存するには
ThisWorkbook クラスの SaveAs メソッドを呼び出します。次のコード例を使用するには、ThisWorkbook クラスで実行します。
Me.SaveAs("C:\Book1.xml")
this.SaveAs(@"C:\Book1.xml", missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
アプリケーション レベルのアドインでアクティブなブックを保存するには
SaveAs メソッドを呼び出して、新しいパスでアクティブなブックを保存します。次のコード例を使用する場合は、Excel のアプリケーション レベルのプロジェクトの ThisAddIn クラスから実行します。
Me.Application.ActiveWorkbook.SaveAs("C:\Test\Book1.xml")
this.Application.ActiveWorkbook.SaveAs(@"C:\Test\Book1.xml", Excel.XlSaveAsAccessMode.xlNoChange);
ブックのコピーの保存
メモリ内で開いているブックを変更せずに、ブックのコピーをファイルに保存できます。これは、ブックの場所を変えずにバックアップ コピーを作成するときに便利です。
ドキュメント レベルのカスタマイズに関連付けられたブックを保存するには
ThisWorkbook クラスの SaveCopyAs メソッドを呼び出します。次のコード例を使用するには、ThisWorkbook クラスで実行します。
Me.SaveCopyAs("C:\Book1.xlsx")
this.SaveCopyAs(@"C:\Book1.xlsx");
アプリケーション レベルのアドインでアクティブなブックを保存するには
アクティブなブックのコピーを保存するため、SaveCopyAs メソッドを呼び出します。次のコード例を使用する場合は、Excel のアプリケーション レベルのプロジェクトの ThisAddIn クラスから実行します。
Me.Application.ActiveWorkbook.SaveCopyAs("C\Book1.xlsx")
this.Application.ActiveWorkbook.SaveCopyAs(@"C\Book1.xlsx");
信頼性の高いプログラミング
ブックを保存またはコピーするメソッドを対話的にキャンセルすると、コード内で実行時エラーが発生します。たとえば、SaveAs メソッドを呼び出すプロシージャで Excel から確認メッセージが表示されるようにしている場合、ユーザーが [キャンセル] をクリックすると、Excel で実行時エラーが発生します。