vba ファイルダイアログボックスを開く

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 2, 2022

VBAでは、開くファイルを選択するために Application.GetOpenFilenameメソッドを使用します。このチュートリアルでは、ファイルダイアログを開く方法とパラメータを設定する方法を学びます。

ファイルを開いたり閉じたりする方法を学びたい場合は、こちらのリンクをクリックしてください:VBA ファイルを開く/閉じる

VBAでファイルダイアログを開く

VBAでファイルを開く場合、まずファイルを選択するためのファイルダイアログを開く必要があります。以下はそのコードです。

Dim strFile As String

strFile = Application.GetOpenFilename(FileFilter:="Excel files (*.xlsx), *.xlsx", Title:="Excelファイルを選択してください", MultiSelect:=True)

ご覧の通り、このメソッドにはいくつかのパラメータがあります。FileFilterは、必要なファイルタイプ(この場合は.xlsxファイル)をフィルタリングすることができます。 Titleパラメータで、ダイアログボックスのタイトルを設定します。複数のファイルを開くことを許可したい場合は、MultipleSelectをTrueに設定します。このパラメータを設定しない場合、選択できるファイルは1つだけです。

vba open file dialog ファイル 開く ダイアログ

画像1.ファイルを開くダイアログ

画像1にあるように、「Excelファイルを選択してください」というタイトルでダイアログボックスが表示されます。Excelファイルだけがフィルタリングされ、複数のファイルを選択することができます。

フォルダを指定してファイルダイアログボックスを開く

特定のフォルダーを指定してダイアログボックスを開きたい場合は、メソッド.FileDialogにパラメータmsoFileDialogFilePicker を使用する必要があります。この例では、ダイアログボックスをC:\VBA Folder というフォルダーに開くようにします。以下はそのコードです。

Dim fd As Office.FileDialog
Dim strFile As String

Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd

    .Filters.Clear
    .Filters.Add "Excelファイル", "*.xlsx", 1
    .Title = "Excelファイルを選択してください"
    .AllowMultiSelect = False

    .InitialFileName = "C:\VBA Folder"

    If .Show = True Then

        strFile = .SelectedItems(1)

    End If

End With

まず、Office.FileDialog型の変数fdと、ファイル取り込み用の文字列変数を宣言します。

Dim fd As Office.FileDialog
Dim strFile As String

この後、fdを Application.FileDialog(msoFileDialogFilePicker)に設定する必要があります。

Set fd = Application.FileDialog(msoFileDialogFilePicker)

これで、With fd End With の中で、複数のパラメータを設定できるようになりました。

.Filters.Clear

.Filters.Add "Excelファイル", "*.xlsx", 1

.Title = "Excelファイルを選択してください"

.AllowMultiSelect = False

ここでは、ファイルフィルタをクリアして(.Filters.Clear)、.xlsxに設定しています(.Filters.Add “Excelファイル”, “*.xlsx”, 1)

また、ダイアログボックスのタイトルを設定します。(.Title = “Excelファイルを選択してください”)

ユーザーが1つのファイルしか選択できないように制限することもできます。

.AllowMultiSelect = False

ダイアログボックスを特定のフォルダで開くには、次のようなコードを記述します。

.InitialFileName = "C:\VBA Folder"

最後に、以前に設定したすべてのパラメータでダイアログボックスを開きます。

If .Show = True Then

    strFile = .SelectedItems(1)

End If

このコードを実行すると、ファイルを開くためのダイアログボックスがC:\VBA Folder に表示されます。

vba open file dialog in specific folder フォルダ ダイアログ

画像2.特定のフォルダにあるファイルを開くダイアログ

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples