この記事ではエクセルのVBA(マクロ)で保存先の指定(名前を付けて保存:ダイアログ:絶対パス:デスクトップ:存在チェックし無ければ保存など)について解説していきます。
早速詳細を確認していきます。
VBAマクロで名前を付けて保存時に絶対パスで指定する方法【Dir関数、ChDrive、MkDir】
それではまず、VBAマクロで名前を付けて保存時に絶対パスで指定する方法について解説していきます。
C以下のhozonディレクト内に現行のアクティブブックファイルを保存するとします。
この方法ではDir関数で保存先フォルダの存在チェックを行い、フォルダがなければMkDirで作成します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub aaaaa絶対パスでの保存aaaaa()
'【説明】保存先フォルダを絶対パスで指定して保存する
'【注意】保存先フォルダがない場合はフォルダを作成します
Dim aaaaa保存先のフルパスaaaaa As String
'C:\hozon フォルダに保存
aaaaa保存先のフルパスaaaaa = "C:\hozon\" & ActiveWorkbook.Name
'Dir 関数は、ファイルやフォルダの存在をチェックする関数です
'Dir(パス名,属性)で使用します
If Dir("C:\hozon", vbDirectory) = "" Then
'ドライブをCドライブに変更
ChDrive "C:"
'hozonフォルダを作成
MkDir "C:\hozon"
End If
'ファイル名を指定して保存
ActiveWorkbook.SaveAs Filename:=aaaaa保存先のフルパスaaaaa
MsgBox "保存が完了しました!"
End Sub
コードのAlt+F8を押し、マクロ選択画面でaaaaa絶対パスでの保存aaaaa関数を実行します。
このコードでは以下のような手順で処理しています。
1. 保存先のフルパスを aaaaa保存先のフルパスaaaaa 変数に格納
2. Dir関数で”C:\hozon”フォルダの存在チェックを行う
3. フォルダが存在しない場合は、ChDriveで”C:”ドライブに変更し、MkDirで”C:\hozon”フォルダを作成
4. ActiveWorkbook.SaveAsメソッドでファイル名を指定して保存
VBAマクロで名前を付けて保存時にダイヤログで指定する方法【Application.GetSaveAsFilename】
続いては、VBAマクロで名前を付けて保存時にダイヤログで指定する方法について解説していきます。
この方法ではApplication.GetSaveAsFilenameで保存先を選択するダイアログボックスを表示し、ユーザーに選択させることができます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub aaaaaダイアログでの保存aaaaa()
'【説明】保存先をダイアログボックスで指定して保存する
'GetSaveAsFilename関数はブックを保存するためのダイアログボックスを表示する関数です
'ファイル名を取得するにはFileFilter:=を使用
Dim aaaaa選択したブックのファイル名aaaaa As Variant
aaaaa選択したブックのファイル名aaaaa = Application.GetSaveAsFilename(FileFilter:="Excelブック,*.xlsx")
'ファイル名の取得に成功した場合
If aaaaa選択したブックのファイル名aaaaa <> False Then
'選択したファイル名で保存
ActiveWorkbook.SaveAs Filename:=aaaaa選択したブックのファイル名aaaaa
MsgBox "保存が完了しました!"
Else
'キャンセルボタンが押された場合
MsgBox "保存をキャンセルしました"
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面でaaaaaダイアログでの保存aaaaa関数を実行します。
このコードでは以下のような手順で処理しています。
1. Application.GetSaveAsFilename関数でファイル保存のダイアログを表示し、ファイル名をaaaaa選択したブックのファイル名aaaaa変数に格納
2. ファイル名の取得に成功した場合は、ActiveWorkbook.SaveAsメソッドで選択したファイル名で保存
3. キャンセルボタンが押された場合は、保存をキャンセルしたメッセージを表示
まとめ VBAで保存先の指定(パス:デスクトップ:存在チェックし無ければ保存:デスクトップなど)
この記事では、VBAマクロで保存先の指定(名前を付けて保存:ダイアログ:絶対パス:デスクトップ:存在チェックし無ければ保存など)について確認しました。
マクロの扱いになれ、さらに快適に過ごしていきましょう!