Excel

指定したシートを別ブックに保存する

2021-03-13

シート「目次」で対象が「1」の場合、それぞれ別のブックに保存する方法です。

指定したシートを別ブックに保存する

参考:すべてのシートを指定した場所に別ブックに保存する

サンプルVBA(マクロ)

  • ブックの保存先:F:¥sample

エラー処理等何もしていない例です。

Sub sample()
    Dim i As Long
    Dim wsName As String 
    Dim wbName As String 

    Worksheets("目次").Activate
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(i, 2) = 1 Then
            wsName = Cells(i, 1)
            wbName = "F:\sample" & "\" & wsName
            
            Sheets(wsName).Copy
                With ActiveWorkbook
                    .SaveAs Filename:=wbName
                    .Close
                End With
          End If
    Next i    
End Sub

すべてのシートを指定した場所に別ブックに保存するを一部変更したコードです。

処理中に画面更新を停止する「Application.ScreenUpdating」を追記たほうが処理が早いです。追記については、上記リンク先を参照してください。

簡単な説明

  • 6行目:他のシートを選んでいる場合もあるので、シート「目次」をアクティブにします。
  • 7行目~18行目:A列の2行目~A列の最終行まで処理します。

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

処理

Next i

  • 8行目: If Cells(i, 2) = 1 Then → B列(対象)が「1」の場合に処理します。
    他の記号等でも可能です。丸記号の場合、見た目が同じでも実は違う記号の場合があるので、シンプルな数字等の方が無難です。

-Excel
-

© 2021 オフィスのQ&A