- ベストアンサー
.xlsにワイルドカードを使うには?
あい20060925.xls を下記のように記述してはいけないようですが、 ワイルドカードをどのように使用すればよろしいでしょうか? 以上 よろしくお願い致します。 -------------------- Sub tes1() '任意のブックの全シートを1つのブックにまとめる Workbooks("あい*.xls").Activate ActiveWorkbook.Worksheets. _ Copy after:=Workbooks("集計.xls").Sheets(Workbooks("集計.xls").Sheets.Count) End Sub --------------------
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 次の例は、既に開いているブックの内、「あい*.xls」の名前を持つブック だけコピーします。(*はワイルドカード) For Each wb In Workbooks If wb.Name Like "あい*.xls" Then With Workbooks("集計.xls") wb.Worksheets _ .Copy After:=.Sheets(.Sheets.Count) End With End If Next
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
蛇足ですが.... FileSearch なら LookIn プロパティーでルートフォルダの パスが指定できますよ(^^)
- ham_kamo
- ベストアンサー率55% (659/1197)
No.2です。 デスクトップを指すフォルダはWSH(Windows Scripting Hosts)のオブジェクトから取得できます。 そのように指定してみました。 (ついでにちょっとNo.1さんの真似をして書き換えてみました) Sub test1() '任意のブックの全シートを1つのブックにまとめる Dim i As Integer Dim DeskTop As String Dim WSH As Object Dim TotalBook As Workbook Set WSH = CreateObject("WScript.Shell") DeskTop = WSH.SpecialFolders("Desktop") & "\" Set TotalBook = Workbooks("集計.xls") With Application.FileSearch .Filename = DeskTop & "あい*.xls" If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Workbooks.Open Filename:=.FoundFiles(i), ReadOnly:=True Workbooks(Workbooks.Count).Activate With TotalBook ActiveWorkbook.Worksheets.Copy after:=.Sheets(.Sheets.Count) End With Workbooks(Workbooks.Count).Close SaveChanges:=False Next i End If End With End Sub
お礼
ご詳細、誠に有難うございます。 度々と、恐れいります。
- ham_kamo
- ベストアンサー率55% (659/1197)
FileSearchオブジェクトを使えばワイルドカードを使用できます。 以下のような感じでしょうか。 Sub test1() '任意のブックの全シートを1つのブックにまとめる Dim i As Integer With Application.FileSearch .FileName = "あい*.xls" If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Workbooks.Open FileName:=.FoundFiles(i), ReadOnly:=True Workbooks(Workbooks.Count).Activate ActiveWorkbook.Worksheets. _ Copy after:=Workbooks("集計.xls").Sheets(Workbooks("集計.xls").Sheets.Count) Workbooks(Workbooks.Count).Close SaveChanges:=False Next i End If End With End Sub
補足
ご回答どうも有難うございます。 このような応用、誠に有難うございます。奥深いですね! いや~ 私にとっては、非常~に難問でしたが、なんとかできることとなりました。 もしよろしかったらで結構ですが、一つお願い申し上げます。 フォルダがデスクトップにある場合は、どのように記述するのでしょか?
お礼
いや~ 「条件判断」と「比較演算子」なんですね! 更に、ダイエットもできちゃいました。 どうも有難うございました。