EXCEL VBA - Workbook を保存する

Workbook を上書き保存する

Workbook を上書き保存するには、Workbook オブジェクトに対して Save メソッドを使用します。

Workbooks("Book1.xlsx").Save
Workbook を上書き保存する

Workbook を名前を付けて保存する

Workbook を名前を付けて保存するには、Workbook オブジェクトに対して SaveAs メソッドを使います。

Workbooks("Book1.xlsx").SaveAs Filename:="C:\Book2.xlsx"
Workbook を名前を付けて保存する

保存するときのファイル名とパスは Filename 引数で指定します。パスを指定しない場合は、カレントディレクトリに保存されます。

保存するファイル名と同じ名前のブックが開かれている場合、エラーとなります。また、同じファイルが既に存在している場合は、上書き保存するかどうかの確認ダイアログが表示されます。確認ダイアログで「いいえ」、または「キャンセル」を選択するとエラーとなります。

Workbook を読み取りパスワードを付けて保存

名前を付けて保存する際、読み取りパスワードを設定するには SaveAs メソッドの引数に Password を設定します。設定するパスワードは、15 文字以内の文字列を指定します。

Workbooks("Book1.xlsx").SaveAs Filename:="Book2.xlsx", Password:="password"
Workbook を読み取りパスワードを付けて保存

読み取りパスワードを解除する場合は、Password 引数に空文字を設定します。

Workbooks("Book1.xlsx").SaveAs Filename:="Book2.xlsx", Password:=""
Workbook を読み取りパスワードを付けて保存

Workbook を書き込みパスワードを付けて保存

名前を付けて保存する際、書き込みパスワードを設定するには SaveAs メソッドの引数に WriteResPassword を設定します。設定するパスワードは、15 文字以内の文字列を指定します。

Workbooks("Book1.xlsx").SaveAs Filename:="Book2.xlsx", WriteResPassword:="password"
Workbook を読み取りパスワードを付けて保存

書き込みパスワードを解除する場合は、WriteResPassword 引数に空文字を設定します。

Workbooks("Book1.xlsx").SaveAs Filename:="Book2.xlsx", WriteResPassword:=""
Workbook を読み取りパスワードを付けて保存

保存するフォーマットの指定

ファイルを保存する際、保存するフォーマットを指定することができます。保存するフォーマットを設定するには SaveAs メソッドの引数に FileFormat を設定します。

Workbooks("Book1.xlsx").SaveAs Filename:="Book1.csv", FileFormat:="xlCSV"
保存するフォーマットの指定

設定可能なフォーマットと拡張子は、以下のように定義されています。以下は、代表的な定数です。すべての定数については、リンク先を参照してください。

保存するフォーマットの定数一覧
定数フォーマット拡張子
xlCSVCSV*.csv
xlAddInMicrosoft Excel アドイン*.xla
xlExcel8Excel 97-2003 ブック*.xls
xlExcel12Excel バイナリブック*.xlsb
xlTemplateExcel テンプレート形式*.xlt
xlWorkbookDefaultブックの既定*.xlsx
xlWorkbookNormalブックの標準*.xls

最後に保存されてから変更されているかを確認する

ブックが最後に保存されてから何か変更が行われているかどうかを確認するには Workbook オブジェクトの Saved プロパティで確認することができます。Saved プロパティが True の場合、ブックが最後に保存されてから何も変更されていません。False の場合、保存されていない変更分が存在します。

Debug.Print (ActiveWorkbook.Saved)
保存するフォーマットの指定

Saved プロパティは値を設定することも可能です。

ActiveWorkbook.Saved = True
保存するフォーマットの指定

保存されていない変更分が存在する場合、変更を保存するかどうかの確認ダイアログが表示されます。その場合、Saved プロパティに True を設定すると、最後に保存してから何も変更がなかったかのように扱われ、確認ダイアログが表示されずにブックは閉じることができます。

ただし、Saved プロパティに True を設定しても実際は保存がされているわけではない点に注意してください。

関連記事