VBATips

ファイルダイアログを表示して、ファイル名を取得する【パーツ化】【ExcelVBA】

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

VBAマクロを実行する際、フォルダ内のファイルに対して何かを処理する事も多いかと思います。
当方へご依頼頂いた際、ユーザー様の要望に合わせて、ファイルダイアログで選択する場合や、
ファイルパスをセル上に直打ちするケースがあります。

今回はファイルダイアログで選択する処理を、パーツ化しました。

ファイルダイアログを表示して、ファイル名を取得するサンプルコード

’■ファイルダイアログからファイル名を取得する
Public Function Call_FileOpen(MyFiles As Variant) As Boolean
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True '複数ファイルを開くかどうか
        .Filters.Clear
        .Filters.Add "Excelファイル", "*.xls*"
        .Filters.Add "CSVファイル", "*.csv"
        .Filters.Add "テキストファイル", "*.txt"
        .Filters.Add "CSVファイル", "*.txt;*.csv"
        .InitialFileName = ThisWorkbook.Path '初期表示フォルダ
        .Title = "ブックを選択してください"

        If Not .Show Then Exit Function
 
        Set MyFiles = .SelectedItems
        Call_FileOpen = True
    End With
End Function

使い方

実際の使い方は以下です。

Public Sub sample()
    Dim MyFiles As Variant
    
    If Call_FileOpen(MyFiles) = False Then Exit Sub
    
End Sub


注意点

  • 取得したデータ(myFiles)は複数選択された場合は配列で戻ってきます。

関連記事

コメント

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