[[20230824124259]] 『エクセルファイルを5000行ごとに別ファイルに分割』(サカタ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルファイルを5000行ごとに別ファイルに分割したい』(サカタ)

エクセルファイルを上から4行残して5000行ごとに別ファイルに分割したい
分割したファイルには上から4行は記載された状態にしたいです。

よろしくお願いいたします。

< 使用 Excel:unknown、使用 OS:unknown >


がんばって分割する。それしかない。ガンバレ!

(応援してる) 2023/08/24(木) 12:56:22


 エクセル シート 1000行ごと 分割 保存

 でネット検索したら結構事例がヒットしました。

 参考HPです。

 データ分割して別ブックに保存 〜Excel 2013 マクロ講座
https://kokodane.com/2013_macro_75c.htm

 ちょっと手間をかけたらVLOOKUPなどの関数を
 使って別シートでデータを参照してデータを切り出して別ブック
 として保存、という方法もあります。
(MK) 2023/08/24(木) 15:39:23

 こんな感じかな?

 Sub データを分割して新規ブックにコピー()
     Const コピー行 = 5000
     Dim Wb As Workbook, 元シート As Worksheet, ファイル名 As String
     Dim lastRow As Long, lastCol As Long, i As Long, k As Long
     Dim top4Rows As Range, r As Range

     Set 元シート = ActiveSheet

     With 元シート.UsedRange
         lastRow = .SpecialCells(xlCellTypeLastCell).Row
         lastCol = .SpecialCells(xlCellTypeLastCell).Column
         Set top4Rows = .Resize(4)
     End With

     Application.ScreenUpdating = False

     k = 0

     For i = 5 To lastRow Step コピー行
         Set Wb = Workbooks.Add  ' 新規ブック作成
         Set r = Union(top4Rows, 元シート.Cells(i, "A").Resize(コピー行, lastCol))

         k = k + 1
         ファイル名 = "top5000-" & Format(k, "000")

         r.Copy Wb.Worksheets(1).Range("A1")

         Wb.Worksheets(1).Columns("A:F").AutoFit
         Wb.SaveAs Filename:=ファイル名  ' マクロファイルと同一フォルダに保存して閉じる
         Wb.Close           '
     Next i

     Application.ScreenUpdating = True
 End Sub

(半平太) 2023/08/24(木) 17:31:43


答えが出ちゃってますけど参考に提示しておきます。
マクロの質問なのかそうじゃないのかわかりませんが、マクロだとしたらどこで詰まってますか?

仰ることだけだと↓のような感じでもよさそうに思います。

    Sub テキトー()
        Dim i As Long
        With ActiveSheet
            For i = 5 To .Cells(.Rows.Count, "A").End(xlUp).Row Step 5000
                Union(.Rows("1:4"), .Rows(i).Resize(5000)).[セル範囲をコピーする命令]
                Workbooks.Add.Worksheets(1).Range("A1").[値貼り付けする命令]
                Workbooks(Workbooks.Count).Worksheets(1).Range("A1").[書式貼り付けする命令]
                Workbooks(Workbooks.Count).[ブックを(i - 4) \ 5000 & "番目" という名前で保存する命令]
                Workbooks(Workbooks.Count).[ブックを閉じる命令]
            Next i
        End With
    End Sub

 ※[]の部分は【マクロの記録】で調べることができます。

(もこな2) 2023/08/24(木) 18:55:53


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.