• ベストアンサー

excelでオブジェクトの位置を知りたい

ワーシート上にオートシェイブで描かれた図形が複数個あり、同じマクロに登録されている場合に、任意のオブジェクトがクリックされたとき(マクロが動いたとき)に、マクロ内でどのオブジェクトが選択されたかを知る方法がありますか? できれば、そのオブジェクト(の左上端)の置かれているセルの列数、行数が知りたいのですが。

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

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

ワークシート上にオートシェイプなどの図形を配置し,それらの図形に次の同じマクロを登録します sub macro1()  with activesheet.shapes(application.caller)   msgbox .topleftcell.address & vblf & .topleftcell.row & "," & .topleftcell.column  end with end sub 左上セルのセル番地,行番号,列番号を表示します。

ryou4649
質問者

お礼

解決しました。 ありがとうございました。

関連するQ&A

  • excel オートシェイブのコピーについて

    ワークシート内にオートシェイブを使って、マクロのボタンを作りました。 同じボタンを複数個使うのでコピーしてマクロ登録しようとしたところ、 1)同じオートシェーブNoになる場合(AutoShape1_Click) と 2)違うオートシェイブNoになる場合(AutoShape1_ClickとAutoShape2_Click) がありました。 登録したマクロが、オートシェイブオブジェクトの置かれているセル行を使用しているため col = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row 1)の場合は最初に置いたAutoShape1のセル行が返されてきます。 質問ですが、  イ) コピーをして、1)になる場合と、2)になる場合はどこが違うんでしょうか?  ロ) オートシェイブのプロパティを見る方法ってありますか?    コピーしたオートシェイブNoを確認したいのですが…

  • EXCEL VBA RANGEオブジェクトの位置情報取得について。

    EXCEL VBA RANGEオブジェクトの位置情報取得について。 下記INPUTBOXでユーザーに任意のセル範囲を選択させます。   Set MyRange = Application.InputBox(prompt:=MyMsg, Type:=8) このMyRangeのセル範囲の位置と行数、列数を取得したいのです。 行数、列数は下記マクロでいいかと思います。   n = MyRange.Rows.Count   m = MyRange.Columns.Count あとは、このMyRangeがどこから始まっているかを取得したいのです。 たとえばMyRangeがB3:D6だとすると、n=4、m=3、左上の位置は3行目、2列目となります。 この「3行目、2列目」という情報を取得したいのです。 ご存知の方、よろしくお願いします。

  • エクセルマクロを使ったオブジェクトの作り方

    エクセルのマクロを使って、自動的にセルの内容をオブジェクト(図形)に入れていきたいです。 (オブジェクトは随時新規作成) 例えば、セルのA1からA3に、”あ”、”い”、”う”が記入してあるとすると、 図形が3個作成されて、図形にはそれぞれ文字が記入されている。 という感じに作りたいのですが、できますか? 誰か教えてください><

  • Office2010のオブジェクト

    Office2003を使用していた時は図形描画の左にオブジェクトの選択(⇒)があり、それを使用して 複数の画像を選択して移動出来たのですが、2010のオブジェクトはホームの編集タブの下にオブジェクトの選択の矢印をクリックしてドラッグしても反応しません。 やり方を間違えているのか、それとも設定があるのかも分かりません。 よろしくご指導をお願いします。

  • Excelでグループ化オブジェクトにマクロ登録

    Excelで複数のオブジェクト(オートシェイプ)をグループ化したものにマクロを登録したいのですが、何回やっても登録できません。 どうやれば登録できるのでしょうか?

  • Excelで合成オートシェーブにマクロ登録でエラー

    excelで、非表示列を表示にするのに、ボタンで行えるようにしました。 オートシェーブ画像を合成した図形をセル内に置き、そのボタンを押すとその隣の列が表示になるというものです。 col = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column Columns(col + 1).Hidden = False これで、うまく動作していたのですが、突然動作しなくなってしまいました。 ボタンを押すと 「実行時エラー'-2147024809(80070057)' 指定した名前のアイテムが見つかりませんでした」 というエラーメッセーが出て、 col = ActiveSheet…の行で停止してしまいます。 原因と対策について教えていただけませんか? 思い当たることとしては、開発はExcel2003で行っているのですが、昨日Excel2007上で動作させました。(ちゃんと動きました。)その後、そのファイルをUSBメモリで持ち帰り、Excel2003で動かそうとしたら、上記の状態で動かなくなっていました。 それと、単独のオートシェーブにマクロを登録したときは、再度マクロ登録の画面に行くと マクロ名という覧に登録したマクロが表示されるのですが、 合成オートシェーブの場合、 「Group1295_Click」 と表示され、登録されているマクロ名が表示されないのですが、これは正常なのでしょうか?

  • Excel マクロ オートシェイブに登録したマクロ

    EXcel2003,2007,2010を使用しています。 オートシェイブに、マウスの右クリックで「マクロの登録」から登録したマクロを解除する方法を教えて下さい。

  • エクセルのコマンドボタンについて教えてください。

    エクセルのワークシートにコマンドボタンを配置してマクロを登録したとします。 任意のセルを複数選択したのち、コマンドボタンをクリックすると、セルの選択が解除されてしまいます。 選択を解除されない方法ってあるのでしょうか? どなたか、詳しい方がいらっしゃいましたら教えて頂けないでしょうか?宜しくお願い致します。

  • エクセルで、オブジェクトの選択を禁止する方法。

    エクセルのオートシェイプで図形、たとえば四角を書きます。そしてその中にさらにオートシェイプの図形を重ねます。 このような状態で、中の図形を選択しようとして、その図形をクリックすると、かなりの確率で外側の図形のほうが選択されてしまいます。何回かクリックを繰り返し、やっと目的の図形を選択することができます。(もちろん一発で選択できるときもありますが…) また、クリックの微妙な加減ではすぐにオートシェイプの書式設定画面が出てきてしまい、非常に煩わしいです。 もう選択することがない図形を選択禁止にする方法などはないのでしょうか?よろしくお願いします。 「Tab」キーを押していけばひとつずつ選択は切り替わっていくのは知っていますが、これだと図の数が多いと目的の図まで押し続けるのは大変です。なのでそれ以外でお願いします。

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

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

専門家に質問してみよう