
データを分割してコピーする Excel2013 マクロ講座 75b回
前回は、データを分割して複数シートにコピーしました。でも、後からそれぞれのシートにも見出し行があったほうがいい、などという上司がいますよね。
もし手動で、分割しているとしたら、「早く言ってよぉ。」って思っちゃいます。
そんな時のためにデータを指定行数で分割すしたのですが、もう一つのマクロも用意しましょう。
必ず1行目に見出し行をつけるという設定のマクロです。
(サンプルファイルは、こちらから マクロ75b回サンプルデータ)

Sub データを分割する最初の行はタイトル行()
Dim シート As Worksheet, 元 As Worksheet '元は元データのあるシート
Dim 総行数 As Long, 回数 As Long, i As Long, 開始行 As Long
Const コピー行 = 100
Set 元 = ActiveSheet '変数の元をActiveSheetにセットする
総行数 = 元.UsedRange.Rows.Count - 1
回数 = Int(総行数 / コピー行) + IIf(総行数 Mod コピー行 > 0, 1, 0)
開始行 = 2
For i = 1 To 回数
Set シート = Sheets.Add
シート.Name = "データ" & 開始行 - 1 & "~" & 開始行 + コピー行 - 2 & "まで"
元.Rows(1).Copy シート.Range("A1")
元.Rows(開始行 & ":" & 開始行 + コピー行 - 1).Copy シート.Range("A2")
Columns("A:F").AutoFit
開始行 = 開始行 + コピー行
Next i
End Sub
マクロを実行すると、下図のようになります。1行目はタイトル行で、分割されたデータが2行目以降に貼り付けられています。
