• ベストアンサー

EXECLマクロでshapeがグルーフ゜化されてるかどうかを調べる方法は?

全shape中のテキストを処理したいので一旦図形のグループ化を解除したいのですが、ヘルプに出ている方法で全部をselectしungroupしようとするとエラーになってしまいます。 そこで、一つづつungroupしようと思います。グループ化されてないものにungroupしようとするとエラーとなるので、グループ化されているかどうかをチェックしたいのですが、方法が見つかりません。どなたかご存知でしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

sp が現在調べているShape オブジェクトだとして If sp.Type = msoGroup Then で調べられると思います。

akiraa
質問者

お礼

有難う御座います。 お蔭様でうまくゆきました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#123709
noname#123709
回答No.1

グループ化のチェックではないですけど・・・。 他に一切問題がないとして、下記のようにすると大丈夫です。 Sub test() On Error Resume Next ActiveSheet.Shapes.SelectAll Selection.ShapeRange.Ungroup.Select End Sub

akiraa
質問者

お礼

有難う御座います。selectallというものを始めて知りました。 この方法だと何回ungroupを行えば細部のグループ化されてる部分まで解除されるか判らないので、簡単ではありますが、正確ではありませんね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBA 行のグループ化を外すマクロ

    いつもお世話になります。 6行目から55行目までと、7以降の行から55行目までの2重にグループ化している行があり、現状は Rows("6:55").Rows.Ungroup Rows("6:55").Rows.Ungroup でグループ化を解除しているのですが、3重以上や、1重しかグループ化していないことも想定しておく必要があるのです。 このコードだと、2重以上のグループ化をしていない時にエラーが起こってしまうし、3重以上だと解除しきれないのですが、何重にグループ化していても、もしくはグループ化していなくてもエラーを起こさず解除できる方法はありますでしょうか?

  • Excelでグループ化したオートシェイプにテキストを編集するコード

    Excelの四角のオートシェイプで、例えば、「四角1」「四角2」「四角3」という名前のオートシェイプが3つあったとしてテキスト編集で同じ文字列を入れたいとき、 For a = 1 To 3 ActiveSheet.Shapes("四角" & a).Select Selection.Characters.Text = "文字列" Next a とすればできるのですが、「四角1~3」をグループ化し、名前を「四角」としたとき、 ActiveSheet.Shapes("四角").Select Selection.Characters.Text = "文字列" とするとエラーが出てしまいます。グループ化されたオートシェイプのテキスト編集は、一度グループを解除し、それぞれテキスト編集しなければならないのでしょうか? 回答よろしくお願いします。

  • エクセルVBA 行列のグループ化判定方法

    エクセル(2003)VBAにて シートの行、列のグループ化をされているものはグループを解除したいのですが、 グループ化されていないものに解除命令をだすと 当然エラーが出ます。 Selection.Rows.Ungroup Selection.Columns.Ungroup グループ化されているかを判別する手段はありますか?

  • オートシェイプに関するマクロ

    エクセルのオートシェイプの書式設定のサイズの倍率(縦横比を固定)を、120%にするマクロって可能でしょうか? 沢山の図形の大きさを調節する作業があるのですが、その都度オートシェイプの書式設定を開いて値を入力すると大変な手間になってしまいます。 図形をセレクトしてマクロを実行するだけで、大きさを変化させるようにしたいのですが。 ご存知の方がいましたら、よろしくお願いします。

  • 図形をグループ化すると「図」になってしまう

    Excelで図形を使うとき、三角や資格の図形の中にテキストが入力できますが、いくつかの図形をグループ化したとき「図の形式」メニューが自動ででてきてしまいます。 つまり、図形が図になってしまうのです。 そのためか、テキスト入力どころか、グループ化の解除自体ができなくなります。 なぜ図になってしまうのか、解除の方法、テキスト入力の方法など、正しい方法を教えてください

  • エクセル2007のマクロ

    どなたか教えて下さい。 エクセル2007で、図形とオートシェイプを同時に選択するマクロを教えて下さい。 今まで、エクセル2003では Selection.ShapeRange.Group.Select で、一発で選択できていましたが、エクセル2007に変わって動かなくなりました。 オートシェイプだけは、グループ化は出来たのですが、図形とのグループ化する方法が分かりません。 目的は、エクセルの図形の挿入で読込んだ図形の上に、エクセルのカメラで読込んだリンク図形(複数)を一緒にグループ化を行い、ペイント等でビットマップファイルを作成したいのです。 グループ化できた後は、手動でペイントに貼り付け、保存するつもりです。 よろしくお願いします。

  • エクセル2013図形のグループ化解除

    エクセル2013で図形をグループ化して保存したものをグループ化解除して修正したいのですが、グループ化のボタンがクリックできない状況です。 グループ化したものは図形とテキストです。 解除方法があれば教えてください。

  • VBAでオートシェイプのグループ化についての質問です。

    VBAでオートシェイプのグループ化についての質問です。 オートシェイプ線(Line)で台形を作成し全てを選択し、グループ化したいと考えています。 また、連続して台形を作成していきたいと考えています。 ?4本線を引く ?グループ化(Aグループ) ?4本線を引く ?グループ化(Aグループ)  ⇒ 連続して作成・・・ Dim st() As Variant Dim ob As Shape Dim MyLine As Shape '線の作成 Set MyLine = ActiveSheet.Shapes.AddLine(startX, startY, widthX, heightY) '線の選択 For Each ob In ActiveSheet.Shapes   ReDim Preserve st(j)   st(j) = ob.name   j = j + 1 Next ob 'グループ化 Worksheets("test").Shapes.Range(st).Select Selection.ShapeRange.Group.Select と上記コードで一つのグループは作成出来たのですが、次に作成すると Worksheets("test").Shapes.Range(st).Select Selection.ShapeRange.Group.Select でエラーになります。 恐らく前のグループ化内の線も選択してしまうのではないかと思っていますが、対処の仕方が解りません。 線の作成方法から選択方法等いろいろ意見が聞きたいと思っています。 アドバイスよろしくお願いいたします。 m(__)m

  • Word オートシェイプの変更について

    word2000です。 オートシェイプで図形(フローチャートですが)を作成し、その図形にテキストを追加したものがあります。 このテキストの内容をそのままに、図形の種類だけを変えたい(例えば処理の図形を判断の図形に変更という意味です)のですが、 ・テキストをコピー ・元の図形を削除 ・新しい図形を作成 ・テキスト追加 ・最初にコピーしたテキストを貼り付け と順にやっていくしかないでしょうか。もっと、簡単な方法があるんじゃないかと 思い質問したのですが。よろしくお願いします。

  • Word グループ解除ができない

    Word2002 SP-2 を使用しております。 挿入した画像の上にオートシェイプを貼り付け、グループ化し、その後さらに数個の図形を加え、再グループ化・・・を繰り返していたところ、 「グループの解除」ができなくなってしまいました。 選択しようとしてもグレーアウトしているのです。 解決方法がありますでしょうか?