VBA ダイアログを表示してファイル名を取得する方法

*本サイトはアフィリエイト広告を利用しています。

このページではVBAの「GetOpenFilenameメソッド」でダイアログボックスを表示し、ファイル名を取得する方法を解説しています。

VBAでデータ処理を行うにはユーザーからファイルを指定してもらう必要があります、その際に「GetOpenFilenameメソッド」でダイアログボックスを表示して選択する方法にしておくと便利です。

見た目も良く、ユーザーにも喜ばれます。

気に入ったら一度試してください。

スポンサーリンク
スポンサーリンク

ダイアログ表示について

ダイアログボックスとは、何かの入力やメッセージを表示用に、一時的に開かれる小さな画面のことです。

以下のような画面です。

スポンサーリンク

コーディングサンプル

    Dim wTxt As String
    
    wTxt = Application.GetOpenFilename("CSVファイル(*.csv),*.csv")
 

構文 Application.GetOpenFilename(FileFilterFilterIndexTitleButtonTextMultiSelect)

FileFilterファイルの候補を指定する文字列 (ファイル フィルター文字列) を指定します。
FilterIndexFileFilter で指定したファイル フィルター文字列の中で、1 から何番目の値を既定値とするかを指定します。 この引数を省略するか、ファイル フィルター文字列の数より大きい数値を指定すると、最初のファイル フィルター文字列が既定値となります。
Titleダイアログ ボックスのタイトルを指定します。 この引数を省略すると “ファイルを開く” になります。
ButtonTextMacintosh でのみ指定できます。
MultiSelectTrue を指定すると、複数のファイルを選択できます。 False を指定すると、1 つのファイルしか選択できません。 既定値は False です。

フィルターの指定方法

表示したいファイルの種類を指定するには「FileFilter」オプションを指定します。

キャンセルの処理

ダイアログを開いて「開く」が選択されたときはファイル名、キャンセルの場合は”False”の文字列が返されます。

Sub sample()

    Dim wTxt As String
    
    wTxt = Application.GetOpenFilename("CSVファイル(*.csv),*.csv")

    If wTxt = "False" Then
        MsgBox "キャンセル"
    Else
        MsgBox wTxt
    End If

End Sub

変数をVariant属性にして、以下のように判断することも可能です。

Sub sample()

    Dim wTxt As Variant
    
    wTxt = Application.GetOpenFilename("CSVファイル(*.csv),*.csv")

    If VarType(wTxt) = vbBoolean Then
        MsgBox "キャンセル"
    Else
        MsgBox wTxt
    End If

End Sub

VBAは難しい?

ところで、VBAは難しいでしょうか?

VBAは一般的には簡単な言語だと言えますが、プログラミングの経験がない人には難しいかもしれないですね。

書籍などの独学でなかなか覚えられないのであれば、スクールで基礎から学ぶのも手段です。

タイトルとURLをコピーしました