
データ分割して別ブックに保存 Excel2013 マクロ講座 75c回
何万件もあるような大きなデータを分割して複数ブックに保存して活用したいという時があります。
それを手動で行うのはなかなか大変ですし、時間もかかるしミスも発生したりします。
今回は、マクロを使って大きなデータを指定行数ごとにコピーしブックに保存するマクロを作成しましょう。
(サンプルファイルは、こちらから マクロ75c回サンプルデータ)

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
変数wbをAs Workbookと宣言して、Set シート = Sheets.Addをファイル名 = "データ" & 開始行 - 1 & "~" & 開始行 + コピー行 - 2 & "まで.xlsx"

' 同一フォルダに保存して閉じる Wb.SaveAs Filename:=ファイル名 Wb.Close
' 保存するフォルダを指定して閉じる Wb.SaveAs Filename:="C:\exceldata\" & ファイル名 Wb.Close
Sub データを分割して新規ブックにコピー()
Dim 元シート As Worksheet, Wb As Workbook, ファイル名 As String
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
Application.ScreenUpdating = False
For i = 1 To 回数
Set Wb = Workbooks.Add ' 新規ブック作成
ファイル名 = "データ" & 開始行 - 1 & "~" & 開始行 + コピー行 - 2 & "まで.xlsx"
元シート.Rows(1).Copy Wb.Worksheets("Sheet1").Range("A1")
元シート.Rows(開始行 & ":" & 開始行 + コピー行 - 1).Copy Wb.Worksheets("Sheet1").Range("A2")
Columns("A:F").AutoFit
Wb.SaveAs Filename:=ファイル名 ' 同一フォルダに保存して閉じる
Wb.Close
Set Wb = Nothing
開始行 = 開始行 + コピー行
Next i
End Sub
元のデータのあるシートを開いてマクロを実行すると、

