Excel VBA テクニック集
シートごとのファイルに分割





Excel VBA テクニック集
シートごとのファイルに分割する方法です。

Excelファイルの容量が大きくなったとき、かつシート枚数が多い場合、「どのシートが異常か」の原因調査へ使えます。

使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。
    Dim InFile_Frm As String
    Dim InBook_Frm As String
    Dim OutFile_Frm As String
    Dim OutBook_Frm As String
    Dim I As Integer
    Dim J As Integer
    
    InFile_Frm = (Excel_App.ActiveWorkbookのファイル名)
    InFile_Frm = Left(InFile_Frm, Len(InFile_Frm) - 4)
    InBook_Frm = Excel_App.ActiveWorkbook.Name

    For I = 1 To Excel_App.Workbooks(InBook_Frm).Worksheets.Count
        'まっさらのWorkBookを作る
        Excel_App.Workbooks.Add
        DoEvents

        'WorkBookの名前を変数に入れる。「Sheet1」とか「Sheet2」のような値が入る。
        OutBook_Frm = Excel_App.ActiveWorkbook.Name

        'WorkBook間のコピー
        Excel_App.Workbooks(InBook_Frm).Worksheets(I).Copy _
                Before:=Excel_App.Workbooks(OutBook_Frm).Worksheets(1)
        DoEvents

        'シートがコピーされたWorkBookを登録
        OutFile_Frm = InFile_Frm & "_" & Excel_App.Workbooks(InBook_Frm).ActiveSheet.Name & ".xlsx"
        Excel_App.Workbooks(OutBook_Frm).SaveAs FileName:=OutFile_Frm
        DoEvents

        '登録したファイル「X:\・・\・・\(コピー元ブック)_Sheet3.xlsx」から、ブック名「(コピー元ブック)_Sheet3.xlsx」を作成
        OutBook_Frm = ""
        For J = Len(OutFile_Frm) To 1 Step -1
            If Mid(OutFile_Frm, I, 1) = "\" Then
                Exit For
                End IF
            OutBook_Frm = Right(OutFile_Frm, Len(OutFile_Frm) - I + 1)
            Next J

        'ブック「(コピー元ブック)_Sheet3.xlsx」をClose
        Excel_App.Workbooks(OutBook_Frm).Close
        DoEvents
        Next I

「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|