• ベストアンサー

ExcelVBAでのオートシェイプ選択について

if オートシェイプ選択中 then   処理 end if このような事を考えているのですが、 オートシェイプを選択中という書き方がわかりません。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

とりあえず簡易には if vartype(selection) = 9 then でも良いかな?と思います。 具体的に何を選択する可能性があるのかによって,たとえばtypename(selection)を使ってみるのも良いカモですね。 ヘルプの説明を確認するのは当然として,実際にいろいろ触ってそれぞれの関数の返値を確認して,研究してみて下さい。

hanamizutarou
質問者

お礼

keithinさん、毎回ありがとうございます。 無事できました。 MSのヘルプは長すぎる上に、わかり辛過ぎてちょっと難しいですね……。

その他の回答 (1)

  • k415
  • ベストアンサー率25% (2/8)
回答No.1

ループさせてトリミングなどをやるためにこんなマクロを書いたことがあります。 Dim n For n = 1 To 3 ActiveSheet.Shapes(n).Select Application.Run "V_Z" Next n Next これは、以前使用したマクロですが.Shapes(n).Selectでn番目の図を選択となります。 オートシェイプなどを作成した順だったか下から順だったかで番号がついていて選ぶことができますよ。

hanamizutarou
質問者

お礼

ありがとうございます。 if文での条件に使いたかったので、 if ActiveSheet.Shapes(n).Select then など記述できないために質問しました。 ややこしい質問文で申し訳ないです。

関連するQ&A