【VBA】非表示シートを配列を使って高速に抽出する方法
手作業で非表示のワークシートを一つずつ探すのは時間がかかります。この記事では、配列を使用して非表示のワークシートを高速に抽出し、業務効率を大幅に向上させる方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub ExtractHiddenSheets()
Dim ws As Worksheet, arr() As Variant, i As Long, j As Long, k As Long
ReDim arr(1 To ThisWorkbook.Sheets.Count)
k = 1
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
arr(k) = ws.Name
k = k + 1
End If
Next ws
ReDim Preserve arr(1 To k - 1)
Application.ScreenUpdating = False
For i = LBound(arr) To UBound(arr)
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = arr(i)
Next i
Application.ScreenUpdating = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。