
Excel VBAでは、特定のシートを操作するために
シートを名前で取得することがよくあります。
この記事では、シンプルかつ実用的な方法を解説します。
基本:シート名で取得する
Sub GetSheet()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
MsgBox ws.Name
End Sub
👉 「Sheet1」を取得できます
直接操作する方法
変数を使わずに書くこともできます。
Worksheets("Sheet1").Range("A1").Value = "テスト"
Sheetsとの違い
Sheets("Sheet1")
👉 すべてのシート対象(グラフ含む)
Worksheets("Sheet1")
👉 通常のシートのみ(推奨)
よくあるエラー
Worksheets("存在しない")
👉 エラー
Subscript out of range
安全に取得する方法(実務)
Function GetSheetIfExists(sheetName As String) As Worksheet
Dim ws As Worksheet
On Error Resume Next
Set ws = Worksheets(sheetName)
On Error GoTo 0
Set GetSheetIfExists = ws
End Function
使い方
Dim ws As Worksheet
Set ws = GetSheetIfExists("Sheet1")
If Not ws Is Nothing Then
MsgBox "存在します"
End If
まとめ
シートを名前で取得する基本はこれです。
Set ws = Worksheets("Sheet1")