シートが存在するか
仕事で初めてVBAを使ってます。
ある文字「WorksheetName」のシートが存在するかどうか
判定するコードを書きたかったのだけど、
調べて出てくるのは ブックの全体のシートをとって
for文でぐるぐる回すコード。
それでもいいちゃいいのだけど、
ある文字「WorksheetName」を何個か検証したい場合に、
何度もfor文が回るのが、主義に反する(笑)なぁと
ということで、
こんなコードを書いてみました。
Function existsWorkSheet(WorksheetName As String) As Boolean
existsWorkSheet = True
On Error Resume Next ' Ignore errors for now
Dim Worksheet As Worksheet
Set Worksheet = ThisWorkbook.Worksheets(WorksheetName)
On Error GoTo 0 ' Stop ignoring errors
If Worksheet Is Nothing Then
existsWorkSheet = False
End If
End Function
On Error Resume Next
…VBA書いて行ったら慣れるのかな。
for文で書く方が処理速度が早くなるとか、
あるかもしれないけど、ベンチマークとる時間はなかった。
主義ということで。
時間ある時に詳しくみてみます。
返り値、boolにしたけど、
WorkSheetをあとで使うならWorkSheetを返す
Functionにしても良いかな。