プチIT化 PR

【Excel VBA】xlDialogSaveAsのArg引数の使い方

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

こんにちは、今日は「Application.Dialogs(xlDialogSaveAs)」の名前を付けて保存するダイアログのArg引数についての記事です。

悩める人
悩める人
Arg引数、Arg1とかArg2って、何を指定してるの?

と思ったので、調べてまとめてみました。それでは、いってみましょう!

Application.Dialogsとは

Application.Dialogs(xlDialogSaveAs).Show

Application.Dialogs(xlDialogSaveAs)は名前を付けてファイルを保存するダイアログボックスを表示するプロパティです。xlDialogSaveAsの場合、Arg引数は以下の6つが指定できます。

Arg1document_text:ファイルパス
Arg2type_num:ファイルの種類
Arg3prot_pwd:読み取りパスワード
Arg4backup:バックアップ
Arg5write_res_pwd:書き込みパスワード
Arg6read_only_rec:読み取り専用を推奨

xlDialogSaveAsではArg1~6の引数を指定できます。今回はxlDialogSaveAsのArg引数に特化して解説していきます。xlDialogSaveAs以外の場合も、Arg引数の使い方は以下にまとまっています。ご参考までに。

xlDialogSaveAsのArgs引数の解説

それでは各引数を詳しくまとめていきたいと思います。

Arg1:document_text(ファイル名)

名前を付けて保存を行う際に、ダイアログに初期値として表示するファイル名を指定します。

上記画像では、名前を付けて保存するダイアログのファイル名の初期値で「テスト名」を指定しています。Excelマクロでは以下のように記載します。

Application.Dialogs(xlDialogSaveAs).Show Arg1:="テスト名"

Arg2:type_num(ファイルの種類)

名前を付けて保存を行う際に、ダイアログに初期値として指定するファイルの種類を指定します。

上記画像では「Excelブック(*.xlsx)」というファイル形式が初期値で表示されるように設定しています。番号での指定を行います。

Application.Dialogs(xlDialogSaveAs).Show Arg2:=12

xlsx形式なら12、csv形式なら6というように値が決まっています。他の指定できる値とファイル形式の対応については、以下にページにまとまっています。

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

この値を設定しない場合は、良きに計らったファイルの種類が表示されているような気がします。(というのも、どういう基準で初期のファイルの種類が決まるかは把握してない。)(ExcelVBAならxlsといった具合でした。)

Arg3:prot_pwd(読み取りパスワード)

名前を付けて保存ダイアログの「ツール」をクリックし「全般オプション」を選びます。その画面の読み取りパスワードの指定ができます。

以下は、'password'というパスワードをファイルを開くときに入力しないと見ることが出来ないようにしているマクロです。

Application.Dialogs(xlDialogSaveAs).Show Arg3:="password"

パスワードが設定されると、以下のように「****.xlsx」は保護されています。と開くときにパスワードの入力が求められます。

Arg4:backup(バックアップファイルを作成する)

名前を付けて保存ダイアログの「ツール」をクリックし「全般オプション」を選びます。すると「バックアップファイルを作成する」というチェックボックスがあります。ここにチェックを入れておくかどうかの設定値です。

何も指定しない場合は、チェックはいりませんが、チェックを入れる場合は以下のようにマクロを記載します。

Application.Dialogs(xlDialogSaveAs).Show Arg4:=1

「Arg4:=0」はチェック入れない、「Arg4:=1」はチェック入れるということになります。

Arg5:write_res_pwd(書き込みパスワード)

ファイルの書き込みを行う際(開く・読むだけならパスワードは不要)にパスワード設定したいときに設定します。名前を付けて保存ダイアログの「ツール」をクリックし「全般オプション」、[書き込みパスワード]の欄の設定です。

書き込みパスワードを設定したい場合、以下のようにマクロを記載します。

Application.Dialogs(xlDialogSaveAs).Show Arg5:="password"

このマクロでは、書き込みパスワードに"password"と設定しています。このパスワードを設定すると、ファイルを開くときに「次のユーザによって保護されています」と出て、パスワードの入力が求められます。

ちなみに、閲覧だけの際は「読み取り専用」ボタンをクリックすることで、書き込み(上書き保存)はできないけれど、閲覧はできるということも可能です。

Arg6:read_only_rec(読み取り専用を推奨)

最後の引数になります。ファイルの読み取り専用を推奨するかどうかの設定です。名前を付けて保存ダイアログの「ツール」をクリックし「全般オプション」、[読み取り専用を推奨する]のチェックボックス欄の設定となります。

読み取り専用を推奨する場合は、以下のようにマクロを記載します。

Application.Dialogs(xlDialogSaveAs).Show Arg6:=1

「Arg6:=0」はチェック入れない、「Arg6:=1」はチェック入れるということになります。

読み取り専用を推奨するという設定にすると、ファイルを開くときに以下のような「変更がなければ読み取り専用で開きませんか?」というメッセージ確認が行われます。

Args引数の書き方について

Args引数はxlDialogSaveAsの場合6つ設定できますが、一つでも複数でも指定することが出来ます。一つの場合は以下の通り。

Application.Dialogs(xlDialogSaveAs).Show Arg6:=1

複数引数を指定する場合は、以下の通りカンマ「,」で区切って指定します。

Application.Dialogs(xlDialogSaveAs).Show Arg1:="テスト名", Arg2:=12, Arg3:="password", Arg4:=1, Arg5:="password", Arg6:=1

さいごに

いかがだったでしょうか。xlDialogSaveAsのArg引数について、画面付きでまとめてみました。少しでも参考になれば幸いです。それでは、また!