|
こんなので上手く行くかな?
尚、「2004.08.25A.EXL」て「2004.08.25A.xls」の間違い?
以下を標準モジュールに記述して下さい
Option Explicit
Public Sub Sample1()
' ファイルを単独で選択する場合
Dim strPath As String
Dim vntFileName As Variant
'パスを指定
' strPath = "C:\DATA"
strPath = ThisWorkbook.Path
'表示させるFile名を指定
' vntFileName = Format(Date, "yyyy.mm.") & "25A"
vntFileName = Format(Date, "yyyy.mm.") & "??A"
If Not GetReadFile(vntFileName, strPath, False) Then
Exit Sub
End If
'*.xlsを開く
Workbooks.Open vntFileName
End Sub
Public Sub Sample2()
' ファイルを複数選択する場合
Dim i As Long
Dim strPath As String
Dim vntFileName As Variant
'パスを指定
' strPath = "C:\DATA"
strPath = ThisWorkbook.Path
'表示させるFile名を指定
' vntFileName = Format(Date, "yyyy.mm.") & "25A"
vntFileName = Format(Date, "yyyy.mm.") & "??A"
If Not GetReadFile(vntFileName, strPath, True) Then
Exit Sub
End If
'*.xlsを開く
With Workbooks
For i = 1 To UBound(vntFileName)
.Open vntFileName(i)
Next i
End With
End Sub
Public Function GetReadFile(vntFileNames As Variant, _
Optional strFilePath As String, _
Optional blnMultiSel As Boolean _
= False) As Boolean
Dim strFilter As String
'フィルタ文字列を作成
strFilter = "Excel File (*.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
|
|