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