【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を返します。
これらの関数は、関数自体の行数も少なく、エラーも起こらないため、鉄板であることに間違いはありませんが、実務をこなしていく中で「もう少し便利にならないかな」と感じることがあります。
次回以降、実務上の具体的な課題を取り上げ、この関数をより便利になるよう改良していきたいと思います。