|
善く試して無いけどこんなので善いかも?
Option Explicit
Public Sub Sample()
Dim vntFileNames As Variant
Dim strProm As String
vntFileNames = "*SYS*"
If GetReadFile(vntFileNames, ThisWorkbook.Path, False) Then
strProm = vntFileNames & "が選択されました"
Else
strProm = "キャンセルされました"
End If
MsgBox strProm, vbExclamation
End Sub
Public Function GetReadFile(vntFileNames As Variant, _
Optional strFilePath As String, _
Optional blnMultiSel As Boolean _
= False) As Boolean
Dim strFilter As String
'フィルタ文字列を作成
strFilter = "File (*.xml), *.xml," _
& "Excel Book (*.xls),*.xls," _
& "全て (*.*),*.*"
'読み込むファイルの有るフォルダを指定
If strFilePath <> "" Then
'ファイルを開くダイアログ表示ホルダに移動
ChDrive Left(strFilePath, 1)
ChDir strFilePath
End If
'もし、ディフォルトのファイル名が有る場合
If vntFileNames <> "" Then
SendKeys vntFileNames & "{TAB}", False
End If
'「ファイルを開く」ダイアログを表示
vntFileNames _
= Application.GetOpenFilename(strFilter, 1, , , blnMultiSel)
If VarType(vntFileNames) = vbBoolean Then
Exit Function
End If
GetReadFile = True
End Function
|
|