• ベストアンサー

EXCEL VBA

EXCELの指定した範囲(例えばrange("A1:C5"))にある オートシェイプ 図 テキストボックス を選択しグループ化するためには どのようにコードを記述すればいいでしょうか

noname#165268
noname#165268

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

一応下記で A1:C5 に左上が入っているものをグループ化します。 Sub Test1() Dim sh As Shape  ActiveCell.Activate  For Each sh In ActiveSheet.Shapes   If Not Application.Intersect(sh.TopLeftCell, ActiveSheet.Range("A1:C5")) Is Nothing Then     sh.Select False   End If  Next sh  If TypeName(Selection) = "DrawingObjects" Then Selection.ShapeRange.Group End Sub

noname#165268
質問者

お礼

ありがとうございました。 If Not Application.Intersect(sh.TopLeftCell, ActiveSheet.Range("A1:C5")) Is Nothing Then     sh.Select False の意味がよく分からなかったのですが、やりたいことはできました。 ありがとうございました。

関連するQ&A

  • excel VBA オートシェイプのテキスト段落

    おはようございます。 【オートシェイプ内のテキスト行間を指定するプロパティ】 オートシェイプ内のテキスト行間を指定するプロパティはありますでしょうか? excel 2007で オートシェイプにテキストをいれた場合、 右クリックすると「段落」という項目がでてきて、 オートシェイプ内のテキストの行間を指定できたのですが、 オートシェイプ内のテキストの行間をVBAで指定することはできるのでしょか? (マクロを登録してもなにも記述されていないので、困っています。) 最終的にはアクティブブックの全シートのオートシェイプの行間を変更する VBAにしたいと思っています。 参考URL等あれば教えていただけませんでしょうか? よろしくお願いいたします。

  • Excel VBA

    Excelのコンボボックスについての質問です。 sheet(1)のA2~A20までコンボボックスに入る選択肢が入っています。 フォーム1のコンボボックス1にその選択肢を入れたいのですが、なるべく短いコードを教えていただきたいのですが…。 ちなみに私の知っているコードは コンボボックス1.Additem Range("シート1!A2") コンボボックス1.Additem Range("シート1!A3")      ・      ・      ・ という感じです。 どうかよろしくお願いいたします。

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

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

  • エクセルで書いた図をワードに貼り付ける

    エクセルのオートシェイプとテキストボックスを使って、図を描き、その図をワードに貼り付けると、うまく表示されません。 テキストボックスの文字が消える。 テキストボックスの文字の色が黒くなる。 どうすれば解決できるのでしょうか? 2000を使っています。

  • Excel(VBA)

    Excel(VBA)で、指定範囲内にオートシェイプがあるかを判定し、あれば○,なければ×を表示する事は可能でしょうか?

  • Excelシート内セル記述の違いについて・VBA

    ワークシート内コードの記述で、 シート上のテキストボックスの値を変えています。 テキストボックスのChangeイベントで動かしていますが、起動した際や、他シートからテキストボックスのvalueを変えたりしています。 1.テキスト1.value = activesheet.range("a1") 2.テキスト1.value = me.range("a1") 3.テキスト1.value = range("a1") 3にすると上手く動かない場合があるので現在は2で記述しています。 1~3の違いはなんでしょうか・・

  • エクセルVBAについて

    どのジャンルで投稿すれば良いか分からなかったのでここに投稿しました。私はエクセルVBAの機能を利用して簡単なソフトを作っているのですが、どうしても分からないことがあるので教えて下さい。あるシートのある範囲内に描かれているオブジェクト(例えば直線123,図123,オートシェイプ123)をすべて選択して一括削除するプログラムが分かりません。詳しい方教えて下さい。

  • Excel VBA

    Excel VBAを勉強中の者です。 複数のワークブックを開いているため、ワークブックから指定していってセルを選択したいと思い下記のようなコードにしてみたのですができませんでした。 Workbooks(“C:\フォルダ\ワークブック.xls”).Worksheets(“C”).Range(“A1”).Select このようなコードは有り得ないのでしょうか? または、ワークブックを開いて、ワークシートをアクティブにして、セルを選択するというように、ひとつひとつ選択していくのではなく、一文でワークブックからセルまで指定する他の方法はありますでしょうか? 教えてください。よろしくお願いします。

  • エクセルVBAでテキストボックスの値の取得と変更について

    エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。 環境:WindowsXPでオフィス2002 状況: エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C) エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい 試した事: コントロールを配置したシートに次のマクロ TEXTBOX_C.Text = "これはコントロールのテキストボックス" を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。 また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

  • エクセルVBAで指定範囲内のオートシェープを選択

    エクセル2000です。 仮にワークシートのRange("A1:B5")の範囲の中に貼り付けられたオートシェープの直線をまとめて選択する場合にはどのように書けばいいのでしょうか? Sub TEST() Application.Intersect(Range("A1:B5"), ActiveSheet.Lines).Select End Sub とやってみましたが、エラーでした。 どうぞよろしくお願いします。

専門家に質問してみよう