【VBA】GetOpenFilenameの使い方を解説
今回はGetOpenFilenameメソッドを使う方法を紹介します。
このメソッドは上の画像のようにファイルダイアログを表示して、ユーザーにファイルを選択させるものになります。
そして選択されたファイルのフルパスを返します。
GetOpenFilenameの使い方
Sub SelectFile()
'''GetOpenFilenameメソッドでファイルを選択する
Dim filePath As Variant
filePath = Application.GetOpenFilename()
If filePath <> False Then
MsgBox "あなたが選んだファイルのパスは" & filePath & "です"
Else
MsgBox "ファイルが選ばれませんでした"
End If
End Sub
サンプルコードを実行するとファイルダイアログが表示されてファイルの選択を求められます。
そして選択すると選んだファイルのフルパスが表示されます。
ファイルを選択しなかった場合は「ファイルが選ばれませんでした」のメッセージが表示されます。
GetOpenFilenameの返り値
この関数はファイル選択した場合はフルパスを返すのですが、キャンセルした場合にはFalseを返します。
そのため、返り値を受け取る変数はVariant型を使用しましょう。
キャンセルされた場合はFalseとなるのでサンプルコードのようにIf文を書いておいて、キャンセルされた場合はExit Subなどで処理を終了させることをおすすめします。
デフォルトで開くフォルダの変え方
GetOpenFilenameで最初に表示されるフォルダは、カレントディレクトリです。
そのため、デフォルトで表示されるフォルダを変えるには、先にカレントディレクトリを変更する必要があります。
ChDir "フォルダのパス"
GetOpenFilenameを実行すると前に、ChDir関数でカレントディレクトリを変更しましょう。
カレントディレクトリを変更した後に、GetOpenFilenameを実行すればデフォルトで開くフォルダを指定することができます。
※ただし、カレントディレクトリは自分のPC内しか指定できないので、ファイルサーバーのフォルダをカレントディレクトリとすることはできません。
複数ファイルを選択したい場合
GetOpenFilenameを使うとユーザーに複数ファイルを選択させることもできます。
その場合は返り値の扱い方が変わるため詳しくはこちらの関連記事をご覧ください。