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