• ベストアンサー

Excel VBA 指定シートの有無確認

指定した名前のシートがあるかないか判断させてますが、 以下のやりかたでは、 グラフ作成したシートを認識してくれません。 そのようにすれば良いでしょうか? Dim ws As Worksheet, flag As Boolean For Each ws In Worksheets If ws.Name = "シート" Then flag = True  Next ws If flag = True Then  msgbox "あります  Else  Sheets.Add  ActiveSheet.Name = "シート" End If

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

WorkSheets ではなく Sheets コレクションを使います。 あと、ループじゃなくて、直にやったほうが速いのでは? Dim Dummy On Error Resume Next Set Dummy = Sheets("シート") '★該当シートを変数に代入 If Err.Number = vbNormal Then flag = True On Error GoTo 0 If flag Then == 以下、略 "シート"というシートがあれば、Set命令は正常終了します。 Errオブジェクトを調べて、Numberプロパティが0なら正常、非0なら異常です。 サンプルでは0の代わりに予約シンボルのvbNormalを使いました。

magm
質問者

お礼

WorkSheetsがだめだったんですね。 うまくできました。 早々のご教授ありがとうございました。

関連するQ&A