【VBA】ワークブックに名前を付けて保存する

エクセルVBAでよく使うコードの備忘録。ワークブック全体を指定した名前のファイルとして保存するコード。オプションでパスワードを付けることもできます。

スポンサーリンク

SaveAsメソッド

ワークブックに名前を付けて保存するにはSaveAsメソッドを利用します。引数として必須なものは、保存先ファイルのパスです。下記では、現在のワークブック(ThisWorkbook)を保存するようにしています。

なお、コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

サンプルコード

Dim wb as Workbook
Set wb = ThisWorkbook

Call wb.SaveAs("[保存先のパス]")

保存先ファイルを指定する以外にも、パスワードを付けたり、保存フォーマット(.xlsや.xlsmなど)をしていすることができます。

引数説明
Filenameファイルのフルパス(文字列)
FileFormat保存ファイルの種類(定数)
詳細はこちら
Passwordパスワード(文字列)
WriteResPassword書き込みパスワード(文字列)
ReadOnlyRecommended読み取り専用を勧めるかどうか(Boolean)
CreateBackupバックアップの有無(Boolean)
AccessModeアクセルモードの指定
xlexclusive: 排他モード
xlnochange: デフォルト(制限なし)
xlshared: 共有モード
ConflictResolutionブック保存時の競合解決方法
詳細はこちら
AddToMru最近使用したファイル一覧に追加する(Boolean)
その他Microsoftのこちらのページを参照

サンプルコード

実際に使う際のコードをいくつかメモ。

ファイル名を指定して保存(ベーシック)

Dim wb as Workbook
Set wb = ThisWorkbook

Dim bookPath as String
bookPath = "[保存先のパス]"

Call wb.SaveAs(bookPath)

ファイル形式を指定して保存

Dim wb as Workbook
Set wb = ThisWorkbook

Dim bookPath as String
bookPath = "[保存先のパス]"

'--- .csv ---'
Call wb.SaveAs(Filename:=bookPath, FileFormat:=xlCSV)

'--- .xls(Excel 97-2003 ブック) ---'
Call wb.SaveAs(Filename:=bookPath, FileFormat:=xlExcel8)

パスワードを付けて保存

Dim wb as Workbook
Set wb = ThisWorkbook

Dim bookPath as String
bookPath = "[保存先のパス]"

Dim pw as String
pw = "[パスワード(15字以内)]"

Call wb.SaveAs(Filename:=bookPath, Password:=pw)