ExcelのVBAを用いて、フォルダ内にある複数ファイルの指定した列を、結合用のシートに右に結合したい。
VBA初心者です。
複数のExcelファイルからのコピペを自動化するExcelマクロ・RPA UiPathの比較
上記のサイトを参考に、以下のようなことをしたいと考えております。
・フォルダ内に1 (1), 1 (2), ...... , 1 (26)というエクセルファイル(xlsx)がある。
・それぞれB列からD列をコピーし、結合用のマクロファイルのmergeシートに右に右に貼り付け結合したい。
隣に並べていきたい。
例
1 (1).xlsx Sheet5
A | B | C | D | E |
---|---|---|---|---|
30 | 12 | 44 | 85 | 62 |
14 | 65 | 23 | 69 | 40 |
1 (2).xlsx Sheet5
A | B | C | D | E |
---|---|---|---|---|
17 | 11 | 42 | 45 | 2 |
8 | 23 | 98 | 34 | 45 |
結合用のマクロファイルのmergeシート
A | B | C | D | E | F |
---|---|---|---|---|---|
12 | 44 | 85 | 11 | 42 | 45 |
65 | 23 | 69 | 23 | 98 | 34 |
上記のサイトではファイルの数が変わっても大丈夫ですが
下に下に結合されてしまいます。
どのように変更すればよいかご教授お願い致します。
エクセルのバージョンは最新版でも大丈夫ですが、
可能であればExcel2007用のものを教えて頂きたいです。
やってみたこと
Workbooks(MergeWorkbook).Worksheets(i).Range("B:D").Copy
Cells(1, i + 3).PasteSpecial
Application.CutCopyMode = False
追記
・一つのエクセルファイルにつき、コピー対象のシートは一つです。
コピー対象でないシートはあると思いますが、コピー対象のシート名は共通です。(Sheet5など)
・データは、結合するデータの元となるファイル(1 (1).xlsxなど)のファイル名でソートした順番で並べたいと考えております。
1 (1).xlsxのSheet5のB列からD列 → 1 (2).xlsxのSheet5のB列からD列→ ……
・『「フォルダ内にある複数ファイル」を読み込む処理』については、上記のサイトの
Sub folder()
Sub shuukei()
こちらの処理を参考にしております。
MergeWorkbook_data = Workbooks(MergeWorkbook).Worksheets(i).Range("a" & Rows.Count).End(xlUp).Row
ThisWorkbook_data = ThisWorkbook.Worksheets("merge").Range("a" & Rows.Count).End(xlUp).Row
Workbooks(MergeWorkbook).Worksheets(i).Rows("2:" & MergeWorkbook_data).Copy ThisWorkbook.Worksheets("merge").Range("a" & ThisWorkbook_data + 1)
下でなく横につなげるためにはこのあたりを変更しなければならないと思っていますが、
うまくいっていない状態です。

回答1件
あなたの回答
tips
プレビュー