|
もっと具体的な説明をしないと回答しずらいですが、ポイントになる
ところをアドバイスしますと・・
>同じフォルダ内の複数のファイルを開く方法
全てのファイルを順番に開いていくなら、Dir関数で "" を返すまでループする
という方法があります。これは過去ログにもたくさんあるので、検索してみて
下さい。また、任意の複数選択したファイルを処理する場合は、GetOpenFilename
で引数の MultiSelect に True を渡します。出てきたダイアログで、Ctrlキー
を押しながら選択していって、最後に OKボタン を押します。戻り値はファイルの
フルパスが配列で格納されるので、受ける変数は Variant型 で宣言します。
この処理のコードも過去ログにあるはずです。
>翌月になったら、違う"9月"というフォルダを作り
「本日の月のフォルダー」について、作成と存在チェックをするコードは、
Dim MyFol As String
MyFol = Application.DefaultFilePath & "\" & Month(Date) & "月"
If Dir(MyFol, vbDirectory) = "" Then
MkDir MyFol
Else
MsgBox Month(Date) & "月 のフォルダーは作成済みです", 48
End If
などとなります。他にFSOを使うコードもあります。どちらかと言うと
FSOの方が確実性が高いかも知れませんが、いちおうこのようなコード
でも間違いはないと思います。
>ファイルを指定するのではなく、フォルダを指定して
フォルダーを選ぶダイアログを出すことも出来ますが、上で回答している
ように「フォルダーの存在が確認できたら」ストレートにそのフォルダー
を開けるようにした方が便利なはずです。そのコードは
Dim MyF As Variant
Dim MyFol As String
Dim i As Integer
MyFol = Application.DefaultFilePath & "\" & Month(Date) & "月"
If Dir(MyFol, vbDirectory) = "" Then
MkDir MyFol
Else
ChDir MyFol
MyF = Application _
.GetOpenFilename("Excelブック(*.xls),*.xls", , , , True)
If VarType(MyF) = 11 Then Exit Sub
For i = LBound(MyF) To UBound(MyF)
Debug.Print Dir(MyF(i))
' ↑テスト用にイミディエイトウィンドウへファイル名を出力する
Next i
End If
てな感じになるでしょう。
|
|