ブックを保存するメソッド
ブックを保存するWorkbook【ワークブック】オブジェクトのメソッド一覧
メソッド | 内容 |
---|---|
Save【セーブ】 | 上書き保存します。 |
SaveAs【セーブアズ】 | ブックに名前を付けて保存します。 |
SaveCopyAs【セーブコピーアズ】 | ブックのコピーを保存します。 |
Save【セーブ】メソッド
ブックを上書き保存するには、Workbook【ワークブック】オブジェクトのSave【セーブ】メソッドを使用します。
Save【セーブ】メソッドの書式と設定値の説明
オブジェクト.Save
- オブジェクト(必須)
Workbook【ワークブック】オブジェクトを指定します。
一度も保存していない新規ブックに対してSave【セーブ】メソッドを使用するとカレントフォルダーに「Book1.xlsx」のような仮のブック名で保存されるため、新規ブックの場合はSaveAs【サーブアズ】メソッドを使用して、保存場所とブック名を指定して保存します。
アクティブブックを上書き保存するコード例
Sub 上書き保存() ActiveWorkbook.Save End sub
SaveAs【セーブアズ】メソッド
ブックに名前を付けて保存するには、Workbook【ワークブック】オブジェクトのSaveAs【セーブアズ】メソッドを使用します。
SaveAsメソッドの書式と設定値(引数)の説明
[]内の引数は省略可能です。
オブジェクト.SaveAs[(FilName,FileFormat,Password,WriteResPassword,
ReadOnlyRecommended,CreateBackup,AccessMode,conflictResolution,
AddToMru,TextCodepage,TextVisualLayout,Local)]
- オブジェクト(必須)
名前を付けて保存するWorkbook【ワークブック】オブジェクトを指定します。 - FileName【ファイルネーム)】(省略可)
ファイル名を指定します。保存場所(パス)も指定することができます。パスを省略した場合はカレントフォルダー保存されます。 - FileFormat【ファイルフォーマット】(省略可)
保存時のファイル形式をXlFileFormat列挙型の定数指定します。省略した場合は、一度保存済みのファイルの場合は前回保存したファイル形式が既定値になり、新規ブックの場合は、Excelブック(xlsx)が既定のファイル形式になります。主なXlFileFormat列挙型 定数 内容 xlOpenXMLWorkbook Excelブック xlExcel8 xlExcel8Excel97-2003ブック xlopenXMLWorkbookMacroEnabled Excelマクロ有効ブック xlText テキストファイルタブ区切り xlCSV CSV形式(カンマ区切り)のファイル - Password【パスワード】(省略可)
読み取りパスワードを指定します。 - WriteResPassword【ライトリズパスワード】(省略可)
書き込みパスワードを指定します。 - ReadOnlyRecommended【リードオンリーリコメンディド】(省略可)
読み取り専用を推奨するメッセージを表示する場合はTrueを指定します。 - CreateBackup【クリエートバックアップ】
バックアップ ファイルを作成するには、True を指定します。 - AccessMode【アクセスモード】(省略可)
ファイルへのアクセス方法をXlSaveAsAccessMode列挙型の定数または値で指定します。XlSaveAsAccessMode列挙型 定数 値 説明 xlExclusive 3 排他モード xlNoChange 1 既定 (アクセス モードを変更しません) xlShared 2 共有モード - ConflictResolution【コンフリクトリゾリッション】(省略可)
ブックを共有している場合の変更内容の更新方法をXlSaveConflictResolution列挙型の定数または値で指定します。XlSaveConflictResolution列挙型 定数 値 説明 xlLocalSessionChanges 2 ローカル ユーザーの変更を必ず受理します。 xlOtherSessionChanges 3 ローカル ユーザーの変更を必ず拒否します。 xlUserResolution 1 ダイアログ ボックスを表示して、ユーザーが重複を解決するように要求します。 - AddToMru【アドトゥエムアールユ】(省略可)
最近使用したファイルの一覧にブックを追加するには、True を指定。既定値は False です。 - Local【ローカル】(省略可)
Trueを指定した場合は、Excelの言語設定に合わせた形式で保存し、省略した場合はVBAの言語設定に合わせた形式で保存します。
※ブックの保存場所に同じ名前のブックが保存されている場合は、上書きを確認ずるダイアログボックスが表示されますが、このときに「いいえ」か「キャンセル」ボタンをクリックするとエラーになります。Application【アプリケーション】オブジェクトのDisplayAlerts【ディスプレイアラーツ】プロパティを使用して、ダイアログボックスを非表示にするか、保存前に同名のファイルの存在を確認してエラーを回避する方法が必要です。
新規ブックをカレントフォルダーに現在の日付をファイル名にして保存するコード例
Sub 新規ブック保存() Workbooks.Add ActiveWorkbook.SaveAs Format(Date,"yyyymmdd") End Sub
同名ブックの存在を確認してから保存するコードと解説
Sub 同名確認保存() Dim ファイル名 As String ファイル名 = "aaa.xlsx" If Dir(ファイル名) <> "" Then MsgBox "同名のブックが保存されています。" Else Workbooks.Add ActiveWorkbook.SaveAs ファイル名 End If End Sub
新規ブックのファイル名を格納する変数「ファイル名」を文字列型(String)で宣言します。
3行目【ファイル名 = “aaa.xlsx”】
変数「ファイル名」に新規ブックのファイル名を代入します。パスを指定していないのでカレントフォルダーがパスになります。
4行目【 If Dir(ファイル名) <> “” Then】
If【イフ】ステートメントを使用して条件分岐をします。ファイルの存在を確認するDir【デレクトリ】関数を使用してDir関数の戻り値が長さ0文字の文字列「””」と等しくないとき「<>」を定義します。つまり、Dir【デレクトリ】関数の引数に指定したファイル名が存在したとき
5行目【 MsgBox “同名のブックが保存されています。”】
MsgBox【メッセージボックス】関数を使用してメッセージを表示します。
6行目【Else】
Else【エルズ】ステートメントを使用して以下に上記の定義が成立しなかったとき、つまり変数「ファイル名」に格納されている名前と同じブックがカレントフォルダーに存在しない場合
7行目【 Workbooks.Add】
Workbooks【ワークブックス】コレクションのAdd【アド】メソッドでワークブックを追加します。
8行目【 ActiveWorkbook.SaveAs ファイル名】
追加したブックがアクティブになっているので、SaveAs【セーブアズ】メソッドで変数「ファイル名」に格納されているファイル名で新規ブックをカレントフォルダーに保存します。
SaveCopyAs【セーブコピーアズ】メソッド
ブックのコピーを保存するには、Workbook【ワークブック】オブジェクトのSaveCopyAs【セーブコピーアズ】メソッドを使用します。
SaveCopyAs【セーブコピーアズ】メソッドの書式と設定値(引数)の説明
オブジェクト.SaveCopyAs[(Filename)]
- オブジェクト(省略可)
Workbook【ワークブック】オブジェクトを指定します。 - Filename【ファイルネーム】(省略可)
ファイルの名前を指定します。パスを含めて指定できます。
このブックと同じパスにコピーをファイル名に保存日時を設定して保存するコード例
Sub ブックコピー作成() Dim パス As String Dim ファイル名 As String パス = ThisWorkbook.Path ファイル名 = Format(Now(), "yyyymmdd") & "_" & Format(Now(), "hhmmss") & "_" & ThisWorkbook.Name ThisWorkbook.SaveCopyAs Filename:=パス & "¥" & ファイル名 End Sub
以上で、ブックの保存方法についての解説を終了します。
ありがとうございました。