ファイルのパスを取得するには、
①標準モジュールに以下のコードを書いたものを作成する。
'---------------------------------------------------------------------
'ファイル選択ダイアログ
'---------------------------------------------------------------------
Public Function GetFileName() As String
Dim intret As Integer
With Application.FileDialog(msoFileDialogOpen)
'ダイアログのタイトルを設定
.Title = "ファイル選択ダイアログ"
'ファイルの種類(拡張子)を指定
.Filters.Clear
.Filters.Add "テキストファイル", "*.csv, *.tsv"
.Filters.Add "EXCELファイル", "*.xls, .xlsx"
'ファイルの種類の初期値を設定
.FilterIndex = 1
'複数ファイル選択を許可しない
.AllowMultiSelect = False
'初期パスを設定
.InitialFileName = CurrentProject.Path
'ダイアログを表示
intret = .Show
If intret <> 0 Then
'ファイルが選択されたときフルパスを返り値に設定
GetFileName = Trim(.SelectedItems.Item(1))
Else
'ファイルが選択されなければ長さゼロの文字列を返す
GetFileName = ""
End If
End With
End Function
②そうすると、他のモジュールのプロシージャで「GetFileName()」が使えるようになるので、以下のような感じでGetFileNameをボタンのクリック時イベントに書く
Private Sub btnFileName_Click()
'ファイル選択ダイアログを表示
strfilename = GetFileName()
'選択結果を評価
If Len(strfilename) > 0 Then
Me.テキスト1 = strfilename
End If
End Sub