複数のブックの内容を取りまとめるマクロを作りたいです。
取りまとめ用ブックにてマクロを実行すると、フォルダの場所を聞いてきて、
指定フォルダ内にあるエクセルを順次処理するというイメージです。
フォルダ内にあるエクセルは、ファイル名には規則性がなくバラバラですが、
シート名や入力されたセル位置は全て統一されています。
シートが複数あるので、
シート1のセルC3、C5
シート2のセルA4、E10
シート3のセルB22、F32
シート4のセルG9
という感じに指定された場所の値を拾ってきたいのです。
取りまとめ用ブックの、
D4、E4、F4、G4、H4、I4、J4に、
シート1のC3、C5、シート2のA4、E10、シート3のB22、F32、シート4のG9と1行に値で貼り付けられ、
次のブックは、
D5、E5・・・と1行下にずれながらフォルダ内のブックを全て処理するイメージです。
実現可能でしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは!
なかなか回答が付かないようなので、一例です。
コード記載ブックのSheet1に書き出すとします。
保存フォルダ内の対象ファイルの拡張子は「xlsx」としています。
Sub Sample1()
Dim myPath As String, fN As String
Dim wB As Workbook
Dim cnt As Long
myPath = "保存場所のパス" & "\"
fN = Dir(myPath & "*.xlsx")
cnt = 3
Do Until fN = ""
If fN <> ThisWorkbook.Name Then
Workbooks.Open myPath & fN
Set wB = ActiveWorkbook
cnt = cnt + 1
With ThisWorkbook.Worksheets("Sheet1")
.Cells(cnt, "D") = wB.Worksheets(1).Range("C3")
.Cells(cnt, "E") = wB.Worksheets(1).Range("C5")
.Cells(cnt, "F") = wB.Worksheets(2).Range("A4")
.Cells(cnt, "G") = wB.Worksheets(2).Range("E10")
.Cells(cnt, "H") = wB.Worksheets(3).Range("B22")
.Cells(cnt, "I") = wB.Worksheets(3).Range("F32")
.Cells(cnt, "J") = wB.Worksheets(4).Range("G9")
End With
wB.Close
fN = Dir()
End If
Loop
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?
※ コード内の「保存場所のパス」の部分は実際のパスにしてください。
もしコード記載のブックと同じフォルダ内に保存してあれば
>myPath = ThisWorkbook.Path & "\"
で構いません。m(_ _)m
ありがとうございます!
思った通りの動作をしてくれました。後は都度、フォルダを選択できるようにしたりすれば良いですね。
シート番号を調べておいてwB.Worksheets(1) と指定すればシート名を変えられたとしても特定できるって事ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/12 16:58
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBA コードを実行すると画面が...
-
エクセルVBAが途中で止まります
-
VBS Bookを閉じるコード
-
【VBA】全シートの計算式を全て...
-
エクセルのマクロを使ってメー...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
ユーザーフォームの切り替えに...
-
VBA 別ブックからコピペしたい...
-
vbaでvbaProjectのパスワード解...
-
VBA 実行時エラー 2147024893
-
【前回の続き続きです、ご教示...
-
【困っています2】VBA 追加処...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロで最終行を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
ワイルドカード「*」を使うとう...
-
【ExcelVBA】VBA実行でダイアロ...
-
ExcelのVBAです。フォルダ内の...
-
フォルダ内の全てのファイルに...
-
VBA コードを実行すると画面が...
-
VBA 別ブックからコピペしたい...
-
VBAで別ブックのシートを指定し...
-
VBS Bookを閉じるコード
-
vbaでvbaProjectのパスワード解...
-
【VBA】全シートの計算式を全て...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】zip圧縮されたCSV...
-
複数のエクセルブックをひとつ...
-
VBSでExcelのオープン確認
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
おすすめ情報