VBA 図形グループ化後オブジェクト名取得

このQ&Aのポイント
  • VBAを使用して、複数のオートシェープを選択し、グループ化した後に、グループ化された図形のオブジェクト名を取得したいです。
  • グループ化処理後にオブジェクト名を取得するためのコードがエラーとなってしまい、困っています。
  • 他にもグループ化された図形が存在する中で、対象となるグループ化された図形のオブジェクト名を取得する方法を知りたいです。
回答を見る
  • ベストアンサー

VBA 図形グループ化後オブジェクト名取得

2種類以上のオートシェープ選択し、グループ化した後に、そのグループ化した図形のオブジェクト名を取得したいです。私の取得の流れです。 (1)すでにグループ化前の図形は複数選択されている。 (2)グループ化後には、グループ図として選択されたままになっているはず。 (3)下記でオブジェクト名が取得できるはず。   Selection.ShapeRange.Name ですが、グループ化処理後に、自動的に選択が図形からはずされてしまい、エラーとなってしまいます。 エクセルシート上に他にもグループ化された図形が複数あるため、今対象にしているグループ化した直後の図形のオブジェクト名をどう取得すればよいかがわからないでいます。知りたいのはあくまで、今グループ化したそのオブジェクト名になります。

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

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

sub macro1()  selection.group.select  msgbox selection.name end sub のようで良いでしょう。 グループ化すると選択が解除される事を見越して sub macro2()  dim o  on error resume next  set o = selection.group  msgbox o.name end sub のようにしても構いません。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

図形をグループ化した時点ではグループ1とかグループ2とかの番号が順番で付きますが、名前ボックスでお望みの名前を入力してEnterすれば別の名前に変更できますね。 マクロの記録で試験したところでは、そのような操作は例えば次のように記録されています。 Selection.ShapeRange.Group.Select Selection.ShapeRange.Name = "ketugou" Selection.Name = "ketugou" 名前ボックスでの修正を行わなければ Selection.ShapeRange.Group.Select のままでグループ1とかの名前の取得はされていませんね。

関連するQ&A

  • Word グループ化したオブジェクトの選択

    テキストボックス複数個とオートシェイプをグループ化しています。 この図のアンカーを固定したくて、「オブジェクト」を選択しようとマウスで右クリックすると、テキストボックスだけが選択されたり、オートシェイプだけが選択されたりと、なかなか思い通りになりません。 どうすればいいでしょう? 2002を使っています。 描画キャンバスは使っていません。

  • VBAのGroup化について

    お世話になります。以下のマクロがうまく動きません。 ------------------------------------------------- Dim objShp1 As Shape For Each objShp1 In ActiveSheet.Shapes If objShp1.Name = "Picture 3" Then ActiveSheet.Shapes.Range(Array("A", "B", "Picture 3")).Select Selection.ShapeRange.Group.Select Selection.ShapeRange.ThreeD.RotationX = -180 Selection.ShapeRange.IncrementLeft 0 Selection.ShapeRange.IncrementTop 0 Else ActiveSheet.Shapes.Range(Array("A", "B")).Select Selection.ShapeRange.Group.Select <---------(1) Selection.ShapeRange.ThreeD.RotationX = -180 Selection.ShapeRange.IncrementLeft 0 Selection.ShapeRange.IncrementTop 0 End If Next ------------------------------------------------- このマクロは全体の一部分になりますが、(1)のところでエラーになります。 どこが間違っているのか、さっぱりわかりません。 すみませんが、お助けいただければ幸いです。

  • Word2010でオブジェクトをグループ化する

     Word2010で複数の図形をグループ化する方法を教えてください。 ホーム~オブジェクトの選択~カーソルをドラックしてオブジェクトの周囲に選択範囲の四角形が出来ないので次のグループ化に進めません。 複数の図形をシフトを押しながら一つ一つ選択をすればグループ化することはできるのですが・・・ それでは、複数有る細かい図形はうまく選択するのが難しいので オブジェクトの周囲に範囲選択の四角形を作る良い方法がありましたら教えてください。

  • エクセル2007のマクロ

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

  • Excelのマクロを使用してオートシェイプ図形の色を変えたいのです。

    Excelのマクロを使用してオートシェイプ図形の色を変えたいのです。 オートシェイプ図形を50個ならべて、マウスでクリックしてものは色が変わるようにしたいと思います。 マクロ記録をすると以下のようになりました。 Sub Macro1() ActiveSheet.Shapes("AutoShape 1").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 45 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid End Sub このプログラムを50個書くわけにはいかないのですが、プログラムで処理するのに問題点が2つ出てきました。 ・オートシェイプ図形の名前が"AutoShape 1"となっていますが、これを変更したいのですが、書式設定にはありませんでした。変更するにはどうすればよいのでしょう? ・クリックしたオートシェイプ図形がどれであるかを返す関数がないと、どの図形がクリックされたかわからないのですが、これを返す関数はあるのでしょうか? よろしくお願いします。

  • 図形と図はグループ化は出来ないのですか?

    2007です。ワードです。 図形(四角)と図(写真)を並べ、ホームタブ―編集GRのオブジェクトを選択―両方を囲み―グループ化をしたいと思っていますができません。図形と図はグループ化は出来ないのですか? 図同士は出来ますか?(もしかして、図はオブジェクトとは云わないのですか?)

  • 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にて、グループ化したものを・・・。

    Wordにて、チラシを作成中です!! オートシェイプの図の上にテキストボックスにて文字を貼り付けたり、図を挿入(イラスト)をしました。 それら全てを図形の調整にて選択しグループ化をしました。それによってグループ化されたものを回転させたいのですが?どのようにしたら良いのでしょうか? オートシェイプの時にあった緑色のポイントが、グループ化をしたら消えてしまいました。 尚、図形の調整の回転・反転も選択出来なくなっています。

  • word2007でのオブジェクトの複数選択

    Word2007での複数のオブジェクトの選択方法がよく分かりません。 今までWord2003では、例えばオートシェイプ・クリップアート・ワードアート・テキストボックス・図(写真とかイラスト)を同時に選択したい時には、クリップアートやワードアートも前面に出してからシフトキーを押しながら各々をクリックしていくと上手く選択できました。また、図形描画ツールバーの中の「オブジェクトの選択」を使うと、全ての図を大きくドラッグで囲むだけで一気に選択できていました。 2007で同じことをしようとすると、テキストボックス・オートシェイプ・ワードアート(全て前面にしておく)同士 または クリップアートと図同士 なら複数選択できるのですが、混在させた状態の複数選択は出来ません。「オブジェクトの選択」を使って囲むと、テキストボックス・オートシェイプ・ワードアート(全て前面にしておく)だけが選択されます。クリップアートや図(写真やイラスト)は選択できません。 2007で、オートシェイプ・クリップアート・ワードアート・テキストボックス・図(写真とかイラスト)を混在させて複数選択するには、どうすればいいのか教えてください。2003ではよく使っていたので、困っています。

  • エクセル マクロ 選択中の複数の図形名を表示するには?

    エクセル マクロ 選択中の複数の図形名を表示するには? お世話になります。 図形を選択(単一・複数の時あり)している状態で ボタンを押すと図形の名前がメッセージボックスに表示される といった事をしたいのですが、 最近マクロを始めたばかりでどういうコードを書けばいいのかわかりません 一応↓の様に 単一選択している図形の名前を出すまでは何とか自力で出来ましたが、 Sub 図形名の表示_Click() MsgBox (Selection.ShapeRange.Name) End Sub 複数選択した場合の出す方法がわかりません。 どのようにコードを書けばいいのかご教授ください。

専門家に質問してみよう