📘 Excel逆引き事典

【VBA】全てのシートをエラー処理付きで配列に格納する方法

日々の業務で大量のシートを扱う際、一つ一つ手作業で処理するのは効率が悪いだけでなく、ミスも増えます。この記事では、Excel VBAを使って全てのシートを安全かつ効率的に配列に格納する方法を紹介します。これにより、業務の自動化と高速化を実現できます。

サンプルコード

VBA
Option Explicit
Sub SheetsToArray()
    Dim ws As Worksheet, arr() As Variant
    Dim i As Integer, numSheets As Integer
    
    ' エラー処理開始
    On Error GoTo ErrorHandler
    Application.ScreenUpdating = False
    
    ' 配列の初期化とシート数取得
    ReDim arr(1 To ThisWorkbook.Sheets.Count)
    numSheets = ThisWorkbook.Sheets.Count
    i = 1
    
    ' 全てのシートを配列に格納
    For Each ws In ThisWorkbook.Sheets
        arr(i) = ws.Name
        i = i + 1
    Next ws
    
    ' 完了メッセージ表示
    MsgBox "全てのシートが配列に格納されました。", vbInformation
    Application.ScreenUpdating = True
    Exit Sub
ErrorHandler:
    MsgBox Err.Description, vbExclamation
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。それでも解決しない場合は、コード内のエラーハンドリング部分で具体的なメッセージが表示されるので、その内容に従って対処してください。