シート「目次」で対象が「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」の場合に処理します。
他の記号等でも可能です。丸記号の場合、見た目が同じでも実は違う記号の場合があるので、シンプルな数字等の方が無難です。