📘 Excel逆引き事典

【VBA】非表示シートを部分一致で別ブックとして保存する方法

手作業で大量のデータを移動するのは労力がかかるだけでなく、ミスも起こりやすいです。この記事では、部分一致する非表示シートを自動的に別のExcelファイルに保存するVBAマクロを作成します。

サンプルコード

VBA
Option Explicit
Sub SavePartialMatchHiddenSheets()
    Dim wb As Workbook, ws As Worksheet, newWb As Workbook
    Dim sheetNamePart As String, lastRow As Long, i As Long
    
    ' 部分一致する文字列を指定
    sheetNamePart = "部分一致"
    
    Set wb = ThisWorkbook
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    For Each ws In wb.Sheets
        If ws.Visible = xlSheetHidden Then
            ' 部分一致するシート名を検索
            If InStr(ws.Name, sheetNamePart) > 0 Then
                ' 新規ブックを作成し、非表示シートをコピー
                Set newWb = Workbooks.Add
                ws.Copy Before:=newWb.Sheets(1)
                
                ' 新しいブックを保存または名前を付けて保存する処理を追加
                ' 例: newWb.SaveAs "C:\path\to\save\" & ws.Name & ".xlsx"
            End If
        End If
    Next ws
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。