プチIT化 PR

【xlDialogSaveAs】Arg引数でフォルダとファイル名の初期値を指定する

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは、わたあめです。今日はExcel VBAで名前を付けて保存する時にフォルダとファイル名を指定して保存する方法についてです。名前を付けて保存を行うダイアログの表示は、Application.Dialogsを利用していきます。

悩める人
悩める人
Args引数を使ってファイルパスを指定するにはどうしたらいいの?

という所に迷いましたので、サンプルマクロを紹介しています。それでは、いってみましょう!

Application.Dialogsとは?

Application.Dialogsはダイアログボックスを表示するプロパティです。使い方としては、以下です。

Application.Dialogs(引数).Show

引数によってどんなダイアログを利用するかを決定します。今回は、名前を付けて保存する引数「xlDialogSaveAs」を利用します。Application.Dialogs(xlDialogSaveAs).Showでダイアログを表示したときに、デフォルトで表示するファイルパスとファイル名をArg引数で指定するVBAマクロを紹介していきます。

名前を付けて保存するサンプルマクロ

今回のサンプルマクロは、名前を付けて保存する際のフォルダ名とファイル名の初期値を指定して、Sheet1シートを別ファイルに名前を付けて保存するマクロです。

Sub saveFile()

' 定義
Dim folderPath, fileName As String

' 値設定
folderPath = "C:\test\"
fileName = "テスト名"

' 名前を付けて保存ダイアログ
Sheets("Sheet1").Copy
Application.Dialogs(xlDialogSaveAs).Show Arg1:=folderPath & fileName, Arg2:=12
ActiveWorkbook.Close

End Sub

「folderPath」変数にフォルダパスも、「fileName」変数にファイル名を指定します。Showのあとに引数を書きます。Arg1引数はファイル名でフォルダパス+ファイル名を、Arg2にファイルの種類でファイル形式に対応する値を指定しています。

Arg2の引数について

Arg2の引数は、ファイルの種類を指定します。私がよく使う引数の数値を以下表にまとめておきます。

3txt(テキストファイル)
6csv(csvファイル)
12xlsx(Excelファイル2007~)
18xls(Excelファイル97-2003)

他の形式については、以下Microsoftのページにファイル形式(XlFileFormat)について、詳しく記載されています。

さいごに

いかがだったでしょうか!マクロ作りの参考に少しでもなれば幸いです。別途、Arg引数についてはじっくりまとめていきたいと思います。それでは、また!