ユーザが選択したファイル名を取得する(2)
ユーザが選択したファイル名を取得する
前回
の続きです。
ダイアログボックスのタイトルを設定する
これはメッチャ簡単。Filedialog.Title
プロパティを設定すれば良い。
リスト1
Private Sub test() Dim fpDialog As FileDialog '……(1)' Set fpDialog = Application.FileDialog(msoFileDialogFilePicker) With fpDialog '……(2)' .Title = "ち~んw" Call .Show End With End Sub
(1)の
Dim fpDialog As FileDialog Set fpDialog = Application.FileDialog(msoFileDialogFilePicker)
でApplication.FileDialog
プロパティに引数msoFileDialogFilePicker
を渡して、「FilePicker」タイプのFileDialog
オブジェクトを取得。そいつを変数fpDialog
に突っ込む。
あとは、(2)の
With fpDialog .Title = "ち~んw" Call .Show End With
で、Title
プロパティを「ち~んw
」にして、Show
メソッドを実行する。
ただそれだけ。
コイツを実行すると、
このように、ファイル選択ダイアログが表示される。
左上のタイトルが「ち~んw」になっていることがわかる。
他の設定は何もしていないので、最初に表示されるフォルダは前回表示したもの、ファイルフィルタは「すべてのファイル(*.*)」になっているということがおわかりだろう。
もちろん、リスト1ではShow
メソッドを実行しただけなので、ファイル選択ダイアログを単に表示しただけで、[開く]ボタンをクリックしようが、[キャンセル]ボタンをクリックしようが、ダイアログが閉じるだけで何も起こらない。
最初に表示するフォルダを設定する
特に何も設定していなければ、上記のように前回表示したフォルダが表示される。
前回表示したフォルダが、リムーバブルディスク上のフォルダなんかでなくなっていたら、Windowsのデフォルトのフォルダが表示される(のだと思う。一度、「Fドライブにディスクを挿入してください」と出て、さらにその前に表示したフォルダが表示されたことがあるのだが、再現できない。)。
ただ、ユーザに変な選択をさせないために、最初に表示するフォルダを指定したい場合がある。
その場合はInitialFileName
プロパティを指定すれば良い。
リスト2
Private Sub test() Dim fpDialog As FileDialog Set fpDialog = Application.FileDialog(msoFileDialogFilePicker) With fpDialog .Title = "ち~んw" .InitialFileName = "D\Music\RATT\1984_OUT OF THE CELLER" '……(3)' Call .Show End With End Sub
(3)の
fpDialog.InitialFileName = "D\Music\RATT\1984_OUT OF THE CELLER"
で、最初に表示するフォルダのパスを指定している。
これを実行すると、
RATT
フォルダの中の1984_OUT OF THE CELLER
フォルダが初期表示された。
もちろん、今回もただShow
メソッドを実行しただけなので、特に何かが起こるわけではない。
複数選択の可否を設定する
あと、ファイルの複数選択の可否は、AllowMultiSelect
プロパティで設定する。変数fpDialog
にFileDialog
オブジェクトがぶち込まれているとして、
fpDialog.AllowMultiSelect = True
とすれば複数選択可になるし、
fpDialog.AllowMultiSelect = False
とすれば複数選択が不可になる。まさに読んで字のごとし。
おわりに
ここまではメチャクチャ簡単。
あとは、ファイルフィルタの設定をすれば、とりあえずかなりユーザフレンドリーになると思う。
それはまた次回!