• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELマクロ シートのありなし)

EXCELマクロのシートの存在を返す関数の作成方法

このQ&Aのポイント
  • EXCELのマクロでシートの存在を返す関数を作りたい。
  • 現在の実装ではブックをアクティブにする必要があり、スマートな手法を知りたい。
  • 要件はA.xlsというファイルにsheet4という名前のシートが存在するかを調べること。

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

  • ベストアンサー
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

シートの有無を調べるだけならActivateする必要はありません。 '判定 Set wb = Workbooks(Bookname) For Each ws In wb.Worksheets ' ← wbのワークシートでFor eachを回す  If ws.Name = sheetname Then flag = True Next ws '元に戻る ← 不要

Apuma
質問者

お礼

どうもありがとうございます。 まさに、求めていたのはこの回答なのですが >wb.Worksheets これを試してダメだったので質問したつもりが どこか別のミスがあったみたいです。 アホですね。私。 助かりました。どうもありがとうございます。

Apuma
質問者

補足

遅くなりました。申し訳ありません。 試させて頂き、本日中に入力致します。

その他の回答 (1)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは、お邪魔します。 "スマート"、と、私が思うやり方です。 ' Re8213316 Function isExistingSheetName9(BookName As String, SheetName As String) As Boolean   On Error Resume Next   isExistingSheetName9 = Workbooks(BookName).Sheets(SheetName).Cells.Row End Function

Apuma
質問者

お礼

なるほど、エラーを使う訳ですか。 スマートですね。 コードも短いし、すばらしいです。 ありがとうございます。

Apuma
質問者

補足

遅くなりました。申し訳ありません。 試させて頂き、本日中に入力致します。

関連するQ&A