excelファイルを検索してセル内容を転記する方法
VBA初心者です。
Aというディレクトリがあり、その中に1,2,3,4というフォルダがあります。
1には「apple1.csv」、「orange1.csv」、「banana1.csv」
2には「apple2.csv」、「orange2.csv」、「banana1.csv」
・・・
4には「apple4.csv」、「orange4.csv」、「banana4.csv」
が入っています。
この1から4のフォルダのapple1,apple2,apple3,apple4のファイルをとりだし、それぞれのA1~A10セルを新たなファイルに自動転記する(apple1はA1~A10,apple2はB10~B10・・・)といった具合のマクロを組みたいと思っています。
あるフォルダの中のexcelファイルであれば、以下のソースコードを用いてコピーしたいファイルを選択してセルを転記しているのですが、今回のように、ディレクトリがいくつもあり、その各ディレクトリ中のファイル名の共通項を検索してそのセルを転記する方法が全く分かりません。
どなたかわかる方アドバイスをお願いします。
Sub ブック保存()
Dim j As Integer
Dim ファイル一覧 As Variant
ファイル名一覧 = Application.GetOpenFilename("apple,*.xlsm", MultiSelect:=True)
If VarType(ファイル名一覧) = vbBoolean Then Exit Sub
Application.EnableEvents = False
For i = 1 To UBound(ファイル名一覧)
Set ブック = Workbooks.Open(ファイル名一覧(i))
With ThisWorkbook.Worksheets(1)
For j = 1 To 10
.Cells(j, i) = ブック.Worksheets(1).Cells(j, 1).Value
Next
End With
ブック.Close
Next
Application.EnableEvents = True
End Sub
補足
回答ありがとうございます。 さっそくやってみたら、うまく行きました。 さらに、不要になったセルを「クリアする」のでは なくて、「そのセルの属する行全体を消す」ように したいと思いました。また、最後には結果のセル ひとつだけが選択された状態にしたいと思います。 以下の様なコードを書いてみたのですが、うまく いきません。正しい書き方を教えていただけないでしょうか。 よろしくお願いします。 Sub comb() Dim r As Range, s As String For Each r In Selection s = s & r.Text & vbLf Next r For Each r In Selection r.EntireRow.Delete Next r Selection.Cells(1, 1).Value = Left(s, Len(s) - 1) <結果セルのみを選択状態にする> End Sub