エクセル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)