- ベストアンサー
マクロを使って複数のシートを統合する方法
- マクロを使って複数のシートの内容を一つのシートにまとめる方法を教えてください。
- 対象となる各シートの内容は列はC列まで、行はせいぜい10行程度です。
- シートの内容はA1には必ず何か入っており、A2からはデータが連続しています。マクロで統合することは可能でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず以下のマクロでいかがでしょう ThisWorkbookに記載してください。 Sub test() Dim End_Row, Last_Row Dim mSpace As Integer, i As Integer, j As Integer Dim New_Sheet_Name As String Last_Row = 1 mSpace = 2 New_Sheet_Name = "New Sheet" If Worksheets(Worksheets.Count).Name = New_Sheet_Name Then Exit Sub End If Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = New_Sheet_Name For i = 4 To Worksheets.Count - 1 End_Row = 1 For j = 1 To 3 If End_Row < Worksheets(i).Cells(Rows.Count, j).End(xlUp).Row Then End_Row = Worksheets(i).Cells(Rows.Count, j).End(xlUp).Row End If Next j Worksheets(i).Range("A1:C" & End_Row).Copy If i Mod 2 = 0 Then Worksheets(Worksheets.Count).Range("A" & Last_Row).PasteSpecial Else Worksheets(Worksheets.Count).Range("F" & Last_Row).PasteSpecial Last_Row = Last_Row + End_Row + mSpace End If Next i End Sub
その他の回答 (3)
- kmetu
- ベストアンサー率41% (562/1346)
頭の中で大体の流れはできたのですが、もう少し教えてください 左から順にシート1からシート10まであるとしてシート3までは手をつけず 手をつけるシート4からシート10までのデータはどこに書き込めばいいでしょうか シート11を作成してそこに書き込む? また、シートはブックに存在するシートのすべてを対象にすると考えればいいですか それともユーザーに対象にするシート数を入力してもらうようにしますか > C列までデータはいつもそろっていて、いつも同じようになっています これはどのシートもC列までデータが入っていると考えればいいですか 「いつも同じよう」という意味がちょっと分かりかねます。
お礼
ご回答ありがとうございます。お返事いつも遅くなり申し訳ございません。 >シート11を作成してそこに書き込む? そうしたいと思っています。 >これはどのシートもC列までデータが入っていると考えればいいですか そうです。 いつも同じよう、というのは表現がおかしかったです。 わかりづらくて申し訳ございません。
- kmetu
- ベストアンサー率41% (562/1346)
また シート4 シート5 シート6 シート7 シート8 シート9 シート10 シート11 と言うように並んでいくのでしょうか。 それと横方向がB列までのデータとC列までのデータが 混在した場合縦筋を食い違えるのか縦筋をそろえるのかどちらでしょうか
お礼
ご回答ありがとうございます。最初のご回答は例Bの方が適しています。 次のご回答については仰るように並んでいきます。 よこ方向についてですが、 C列までデータはいつもそろっていて、いつも同じようになっています。
- kmetu
- ベストアンサー率41% (562/1346)
たとえばシート4がC列の4行までデータがありシート5は3行までデータがある シート6は2行シート7は3行だった場合以下のどちらの配置になりますか 例A 444 555 444 555 444 555 444 777 666 777 666 777 例B 444 555 444 555 444 555 444 666 777 666 777 777
お礼
kmetuさん、お礼遅れて申し訳ございません! なんとスゴイ!! まったくこの通りのことがしたかったのです。 本当にありがとうございました!!!