- ベストアンサー
エクセル:シートの分割
お世話になります。 エクセルで、あるシートに任意の行数のファイルがあります。 1~6行目はタイトル行扱いで、7行目からがデータ部分になります。 この7行目からはじまるデータ部分を25行分ずつシート単位で分割したいのです。 1つ目のシートが分割前の本データとすると、2つ目のシートには1~6行目と7~31行目、2つ目のシートは1~6行目と32~56行目… というように。 必ず各シートの先頭は1~6行目部分になります。 1つ目のシートが分割前のシートで、2つ目以降に25行分ごとに分割されたシートがどんどん追加されていくイメージです。A列には必ずデータが入っているので、A列にデータが入っている最終行までが処理の対象になります。 追加するシート名は、分割1、分割2…というようにしたいです。 このような処理を自動化するマクロができれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールに以下のマクロをコピーして貼り付けて実行してみてください。途中で出てくる"Sheet1"の部分は、オリジナルのシート名に修正してください。 Sub シート分割() Dim WS1 As Worksheet Dim WS2 As Worksheet Dim i As Integer Dim Bunkatsu As Integer Set WS1 = Worksheets("Sheet1") 'コピー元のデータシート Set WS2 = WS1 Bunkatsu = 1 Application.ScreenUpdating = False For i = 7 To WS1.Cells(Rows.Count, 1).End(xlUp).Row Step 25 Set WS2 = Worksheets.Add(After:=WS2) WS2.Name = "分割" & Bunkatsu WS1.Rows("1:6").Copy WS2.Cells(1, 1) WS1.Rows(i & ":" & i + 24).Copy WS2.Cells(7, 1) Bunkatsu = Bunkatsu + 1 Next Application.ScreenUpdating = True End Sub
お礼
完璧にできました。ありがとうございます。