OfficeType

VBA~目的のワークシートが存在するか調べよう~Excel

Sub test1()

Dim allsh As Worksheet
Dim search As String

search = "サンプル"

For Each allsh In Worksheets

If allsh.name = search Then
MsgBox "指定のシートは存在します"

Exit Sub

End If

Next

MsgBox "指定のシートは存在しません"

End Sub

目的のワークシートが存在するか調べたい時はFor Each ~ Next文で全てのワークシートを取得し、1つずつ目的のワークシートと一致するか確認します。上のコードはallshというワークシートオブジェクトを格納する変数を宣言しFor Each allsh In Worksheetsですべてのワークシートを取得するまで一つずつ繰り返していきます。searchという変数に存在しているか調べたいワークシートの名前を格納し、繰り返しの構文の中でIf文の条件式にallsh.Name = searchで全てのワークシートの中に調べたいワークシートがあるか判断しています。ワークシートがあればIfとEnd Ifの間に書かれたコードを実行するので"指定のシートは存在します"とメッセージを表示し、Exit Subででコードが終了します。

image-01

image-02

ワークシートが開いていない場合はIf文の条件式にallsh.Name = searchを満たさないのでIfとEnd Ifの間に書かれたコードは実行しないのでExit Subは実行せずに最後に書かれているMsgBox "指定のシートは存在しません"を実行し、シートが開いていないとメッセージを表示します。

image-03

image-04