Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excel VBA】シートを名前で取得する方法(初心者向け)

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")