ファイルダイアログを表示して、ファイルパスを取得する
VBAマクロを実行する際、フォルダ内のファイルに対して何かを処理する事も多いかと思います。
当方へご依頼頂いた際、ユーザー様の要望に合わせて、ファイルダイアログで選択する場合や、
ファイルパスをセル上に直打ちするケースがあります。
今回はファイルダイアログで選択する処理を、パーツ化しました。
ファイルダイアログを表示して、ファイルパスを取得するサンプルコード
’■ファイルダイアログからファイル名を取得する
Public Function Call_FileOpen(MyFiles As Variant) As Boolean
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True '複数ファイルを開く=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
使い方
実際の使い方は以下です。
Dim MyFiles As Variant Public Sub sample() If Call_FileOpen(MyFiles) = False Then Exit Sub Debug.Print MyFiles(1) 'C:\vba\sample.xlsx End Sub
コメント