LoginSignup
0
0

VBA シートが存在するか

Posted at

シートが存在するか

仕事で初めて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にしても良いかな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0