• ベストアンサー

VBAでワークシートとグラフシートの判別

VBAでワークシートがactiveになっている時だけ実行プログラムを書きたいのですが ワークシートとグラフシートの判別する分岐をif文で作成するには どのように書けば良いですか? 検索してみても見つかりませんでした。 どなたかよろしくお願いいたします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

これをグラフシートと、ワークシートで実行してみると Sub test() Debug.Print ActiveSheet.Type, Debug.Print TypeName(ActiveSheet), Debug.Print TypeOf ActiveSheet Is Chart End Sub 'Graphsheet '4, Chart, True 'Worksheet '-4167, Worksheet, False Typeが戻す値が、グラフシートの時、下記の記述や、手持ちのポケットリファレンスの記述と違っているのですが、理由はわかりません。addメソッドの場合とは異なるのでしょうか? http://www.moug.net/tech/exvba/0040048.html いずれにせよこれらで判別できると思います。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です。 グラフシートの時、Activesheet.typeはグラフの種類にも影響される様です。棒グラフにすると3を戻したりします。 TypeName(Activesheet)をお使い下さい。