|
いつもお世話になっております。またまた質問ですがよろしくお願いします。
複数の人が作成する日々の報告書を管理者が集計する為のプログラムを作っています。
処理は1日単位でファイル名は特定のフォルダに必ず日付を現す「07-03-11*.xls」と言う名前で保存されていると言うのがルールです。
過去ログなどから、複数のファイルを開く事までは出来そうなのですが、
●特定のフォルダを指定するにはどうしたらよいか?
●「07-03-11*.xls」と言うファイルのみをダイアログに表示させる事は出来ないか?
と言うのが質問の主旨です。
以下は、ここまで作成したプログラムです。何卒ご教示のほどを!
Sub 集計()
'各自が作成した日報の記録ファイルを指定した日付を元に開いて決められた処理をする。
Dim MyDate As String
Dim FileNam As String
Dim FName As Variant
Dim x As Variant
MyDate = InputBox("処理する日付をYYMMDDの形式で入力してください。")
If MyDate = "" Then Exit Sub
If Len(MyDate) <> 6 Then
MsgBox ("入力形式が間違っています。YYMMDDの形式で入力し直してください。")
Exit Sub
End If
MyDate = Left(MyDate, 2) & "/" & Mid(MyDate, 3, 2) & "/" & Right(MyDate, 2)
If IsDate(MyDate) = False Then
MsgBox ("入力は日付のデータです。YYMMDDの形式で入力し直してください。")
Exit Sub
End If
MyDate = Left(MyDate, 2) & "-" & Mid(MyDate, 4, 2) & "-" & Right(MyDate, 2)
FileNam = MyDate & "*.xls"
'SendKeys "07-03-11*.xls"
FName = Application.GetOpenFilename(FileFilter:="xls ファイル (*.xls), *.xls", MultiSelect:=True)
'MsgBox (VarType(FName)) 'VarType(FName)の戻り値確認用のデバグ道具
'GoTo 正常処理
If VarType(FName) = 8204 Then GoTo 正常処理 'ファイルが選択されている時の関数 VarType(FName)の戻り値は「8204」となるので…
If FName = False Then
MsgBox ("ファイルが選択されなかったので、何もしません。")
Exit Sub
End If
正常処理:
For Each x In FName
MsgBox (x)
Workbooks.Open Filename:=x
'ここに一連の処理プログラムを挿入する。
Next
End Sub
|
|