📘 Excel逆引き事典

【VBA】非表示シートをバックグラウンドで取得する方法

毎日大量のデータを扱う実務では、非表示のシートから必要な情報を素早く取り出すことが求められます。この記事では、VBAを使ってバックグラウンドで非表示のシートからデータを取得し、業務効率化を図る方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub GetHiddenSheetData()
    Dim ws As Worksheet, targetWs As Worksheet
    Dim lastRow As Long, i As Long
    
    ' バックグラウンド処理のために画面更新を停止
    Application.ScreenUpdating = False
    
    Set ws = ThisWorkbook.Sheets("HiddenSheet")
    If Not ws Is Nothing Then
        If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
            ' 非表示のシートからデータ取得
            lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            For i = 1 To lastRow
                Debug.Print ws.Cells(i, 1).Value & vbTab & ws.Cells(i, 2).Value ' デバッグ用に出力
            Next i
        End If
    Else
        MsgBox "指定のシートが見つかりません。", vbExclamation
    End If
    
    ' 画面更新を再開
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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