- ベストアンサー
エクセルマクロ:指定シートは外した全てまとめる
エクセルのブック内にある全てのシートを一つのシートにまとめたいのですが、 2点ほど困っている部分があり、助けて頂けますと幸いです。 (1)シートをまとめる際に除きたいシートがある。 シート名『検索』『目次』など。 (2)まとめたい部分がA1セルからではなくて、B5セルから最終行と最終列の部分をまとめたい。 B5から見出しが始まって、その下部分そ全てまとめたい。 まとめたシートは見出しの部分を入れ込んで、 全て見れる様にしたいです。 色々調べたのですが、どうしても上記に対応しているマクロが無かったため、 ご質問をさせて頂きました。 ご回答を頂けますと大変助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! まとめて表示するSheetはSheet見出しの一番左側のSheetとし、 Sheet見出しの2番目以降にまとめたいSheetがあるとします。 >まとめたシートは見出しの部分を入れ込んで、 >全て見れる様にしたいです。 すなわち各Sheetの5行目の項目?もすべて表示したい!と解釈しました。 標準モジュールです。 Sub Sample1() Dim k As Long, lastRow As Long, lastCol As Long, str As String, wS As Worksheet Set wS = Worksheets("Sheet1") str = "検索、目次" wS.Cells.Clear For k = 2 To Worksheets.Count With Worksheets(k) If InStr(str, .Name) = 0 Then lastRow = .Cells(Rows.Count, "B").End(xlUp).Row lastCol = .Cells(5, Columns.Count).End(xlToLeft).Column Range(.Cells(5, "B"), .Cells(lastRow, lastCol)).Copy wS.Cells(Rows.Count, "A").End(xlUp).Offset(1) End If End With Next k wS.Rows(1).Delete End Sub こんな感じではどうでしょうか?m(_ _)mm(_ _)m
お礼
早々のご回答ありがとうございます。 出来ました。 除く方法がわかったのと、途中のコピー方法をお教え頂きありがとうございます。 >すなわち各Sheetの5行目の項目?もすべて表示したい!と解釈しました。 ⇒ご説明不足で申し訳ございません。 5行目が全ての共通の見出しがございまして、それ以外はその下をコピー&ペーストしたいという意味でございました。 頂きましたマクロを元にチャレンジしたいと思います。