【Excel VBA】シートの存在チェック①

【Excel VBA】シートの存在チェック①

記事
IT・テクノロジー
Excel VBAにおいて、ブックの中に処理したいシートが存在するか否か、事前に確認することは非常に重要になります。シートの存在チェックには、for文を使用することが多いですが、ここでは代表的な2つの記述方法を紹介します。

① For Eachを使用する方法
Function ExistSheet(ByVal key As String) As Boolean
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
        If ws.Name = key Then
            ExistSheet = True
            Exit Function
        End If
    Next ws
    ExistSheet = False
End Function

② Sheets.Countを使用する方法
Function ExistSheet(ByVal key As String) As Boolean
    Dim i As Long
    For i = 1 To ThisWorkbook.Sheets.Count Step 1
        If ThisWorkbook.Sheets(i).Name = key Then
            ExistSheet = True
            Exit Function
        End If
    Next i
    ExistSheet = False
End Function

いずれの方法でも、キーワード(key)と一致するシート名があればTrue、無ければFalseを返します。
これらの関数は、関数自体の行数も少なく、エラーも起こらないため、鉄板であることに間違いはありませんが、実務をこなしていく中で「もう少し便利にならないかな」と感じることがあります。
次回以降、実務上の具体的な課題を取り上げ、この関数をより便利になるよう改良していきたいと思います。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す