Excel VBA 質問スレッド №2027 (未解決)
複数ブック、指定条件つき結合
投稿者 : いい 投稿日時 : 2024/10/17(Thu) 18:42:38 OS : Windows 11 EXCEL : Excel 2019
以下のVBAを組みたいのですが、どうすれば良いかわからずご協力いただきたいです
●やりたい事(流れ)
・1つのフォルダに複数のExcelブック有
フォルダ_リスト1.xlsx
_リスト2.xlsx
_リスト3.xlsx
_リスト4.xlsx
・・・・
・リスト内の指定した行数を別ブックに移動させたい
例「10行と設定」
⑴リスト1.xlsx 1~10行→新ブックAにコピー
⑵リスト2.xlsx 1~10行→⑴のコピーした下にコピー
⑶リスト3.xlsx 1~10行→⑵のコピーした下にコピー
⑷リスト4.xlsx 1~10行→⑶のコピーした下にコピー
⑸リスト1.xlsx 11~21行→⑷のコピーした下にコピー
⑹リスト1.xlsx 11~21行→⑸のコピーした下にコピー
…リスト内のデータが無くなったら完了
・最終
1つのExcelブックになる
・補足
リスト内の最終行はブックことに異なる
以下のVBAを組みたいのですが、どうすれば良いかわからずご協力いただきたいです
●やりたい事(流れ)
・1つのフォルダに複数のExcelブック有
フォルダ_リスト1.xlsx
_リスト2.xlsx
_リスト3.xlsx
_リスト4.xlsx
・・・・
・リスト内の指定した行数を別ブックに移動させたい
例「10行と設定」
⑴リスト1.xlsx 1~10行→新ブックAにコピー
⑵リスト2.xlsx 1~10行→⑴のコピーした下にコピー
⑶リスト3.xlsx 1~10行→⑵のコピーした下にコピー
⑷リスト4.xlsx 1~10行→⑶のコピーした下にコピー
⑸リスト1.xlsx 11~21行→⑷のコピーした下にコピー
⑹リスト1.xlsx 11~21行→⑸のコピーした下にコピー
…リスト内のデータが無くなったら完了
・最終
1つのExcelブックになる
・補足
リスト内の最終行はブックことに異なる
スポンサーリンク
[返信 1] Re : 複数ブック、指定条件つき結合
投稿者 : さんこう 投稿日時 : 2024/10/17(Thu) 20:24:07
>以下のVBAを組みたいのですが、どうすれば良いかわからず
まずは、行数を無視して、すべてまとめるようにしてみてはいかがでしょうか。
<vba フォルダ内のブックからコピー>
https://www.google.com/search?q=vba+%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%86%85%E3%81%AE%E3%83%96%E3%83%83%E3%82%AF%E3%81%8B%E3%82%89%E3%82%B3%E3%83%94%E3%83%BC
それができたら、各ファイル10行ずつまとめるように修正しましょう。
あとは、それを繰り返すようにしていくとよろしいかと思います。
>以下のVBAを組みたいのですが、どうすれば良いかわからず
まずは、行数を無視して、すべてまとめるようにしてみてはいかがでしょうか。
<vba フォルダ内のブックからコピー>
https://www.google.com/search?q=vba+%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%86%85%E3%81%AE%E3%83%96%E3%83%83%E3%82%AF%E3%81%8B%E3%82%89%E3%82%B3%E3%83%94%E3%83%BC
それができたら、各ファイル10行ずつまとめるように修正しましょう。
あとは、それを繰り返すようにしていくとよろしいかと思います。
[返信 2] Re : 複数ブック、指定条件つき結合
投稿者 : てらてら 投稿日時 : 2024/10/18(Fri) 05:19:07
こんにちは。
最初のブックの値は、そのまま転記。
次からは、10行づつコピーして該当する位置に差し込んでいきます。
コピーする位置、コピー先の特定が面倒ですが、Debug.Print でもあてて観察してみてください。
最後に、空白行が差し込まれるので削除してます。
シート指定が無いので、"Sheet1"のみを対象としています。
こんにちは。
最初のブックの値は、そのまま転記。
次からは、10行づつコピーして該当する位置に差し込んでいきます。
コピーする位置、コピー先の特定が面倒ですが、Debug.Print でもあてて観察してみてください。
最後に、空白行が差し込まれるので削除してます。
シート指定が無いので、"Sheet1"のみを対象としています。
Sub macro() Dim wb As Workbook Dim fname As String Dim i As Long Dim myWb As Workbook Set myWb = ThisWorkbook '最初のブックを転記 Set wb = Workbooks.Open(ThisWorkbook.Path & "\フォルダ\リスト1.xlsx") wb.Worksheets("Sheet1").Range("A1").CurrentRegion.Copy myWb.Worksheets("Sheet1").Range("A1") wb.Close Dim t As Long, a As Long, pos As Long, s As Long For i = 2 To 4 'ファイルの数だけ繰返す fname = "リスト" & i & ".xlsx" Set wb = Workbooks.Open(ThisWorkbook.Path & "\フォルダ\" & fname) a = i - 1 For t = 0 To 1000 pos = (10 * a) + t * (10 * (a + 1)) s = t * 10 + 1 wb.Worksheets("Sheet1").Rows(s & ":" & s + 9).Copy myWb.Worksheets("Sheet1").Rows(pos + 1).Insert Application.CutCopyMode = False If wb.Worksheets("Sheet1").Cells(s, "A") = "" Then Exit For Next t wb.Close Next i '後始末 With myWb.Worksheets("Sheet1") For i = .Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1 If .Cells(i, "A") = "" Then .Rows(i).Delete End If Next i End With End Sub
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 18:26:06 )