• ベストアンサー

ExcelVBA オートシェイプについて

セルの選択した場所のとなりにオートシェイプを移動させるマクロを組みたいと思っています 見かけがまったく同じシートが4枚あり、そのシート全てに同じマクロを指定したいのですが、オートシェイプの名前の指定の仕方が分からなく困っています SelectionChangeイベントでオートシェイプ移動のマクロを動かしているので、同じ名前のボタンならよいのですが・・・ なにかよい方法はないでしょうか?

  • jobvba
  • お礼率60% (166/274)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

シートをコピーしたもので無いと、その後抹消や追加をしない前提で無いと、オートシェイプの名は変わる可能性があります。INDEXで指定しても抹消や追加をしないようにしないと、変わる可能性があります。 それを避けるために、人間が指定することを考えるとしても、セルの選択とオートシェイプの選択を関連付けるのが難しいのでは無いでしょうか。 私は過去の回答で、セルのTOPに1つのOVALのTOPを一致して配置し、同行内であれば、セルのChangeなどで隣セルのLEFTと同行に配置したOVALのLEFTを一致させる移動をする回答をしたことがあります。 Selection/ValuともChaneイベントは扱いにくいし、むつかしい。

jobvba
質問者

お礼

回答ありがとうございます! やっぱり難しいですね。なんとかやってみます

その他の回答 (2)

回答No.3

> 同じ名前の付け方が分かりません オートシェイプを選択した状態で、名前ボックス(シート左上のほうに図形名が表示されている)内を クリックして、直接書き込みます。 前回のモジュールは、各シートのオートシェイプごとにここで QQQ という同じ名前をつけたという 前提です。

jobvba
質問者

お礼

できました!ありがとうございました!

回答No.2

> セルの選択した場所のとなりにオートシェイプを移動させる シートごとに、移動させるオートシェイプを選択し名前ボックスで同じ名前をつけられたら いかがでしょうか。 各シートのオートシェイプの名前を QQQ とした場合、ThisWorkbook モジュールに、 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)  Dim T, L  T = Target.Offset(0, 1).Top  L = Target.Offset(0, 1).Left  ActiveSheet.Shapes("QQQ").Top = T  ActiveSheet.Shapes("QQQ").Left = L End Sub 解釈を誤っていたら、ごめんなさい。

jobvba
質問者

補足

回答ありがとうございます! しかし・・・同じ名前の付け方が分かりません! 同じ名前のオートシェイプをマクロでも指定しなくてはならないので、どうにかできないでしょうか?

関連するQ&A

  • VBA シート上のオートシェイプを移動させたくない

    お世話になります。 シート上にオートシェイプ(四角形)をつくり、 名前を付けています。 予定1、予定2…実際1、実際2・・・ これを指定のセルから移動させたくないと思っています。 また、マクロの登録をして、ボタンにしようと思っています。 ただ、シートは保護をかけようと思っており、 オートシェイプがロックのままだと、ボタン機能が使えなくなります。 かといって、ロックを外すと移動できてしまうし… 何か変わりの方法はありませんか? 私の知識不足で、他のいい方法を見逃しているのかもしれません! 回答お願い致しますorz

  • 【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい

    ワークシートに多数(60個程度)のオートシェイプが配置されています。それらにはひとつひとつ「名前」をつけています。(オートシェイプ1とかを1日とかに変更しました) これらのオートシェイプをボタン代わりにマクロを割り当てて実行しようとしています。 そこで、例えば”1日”と名前を定義したオートシェイプがクリックされた時にその名前”1日”を取得する方法が解りません。 説明が下手でうまく伝わっているか心配ですがよろしくお願いします。

  • オートシェイプ削除について教えて下さい。

    こんばんわ! エクセル2003を使用してます。 ・オートシェイプを削除するのに、一つ一つ選んでDelateしてます。 数が多いと、消すのが大変です。 (質問) ・オートシェイプの数が多数(100個程)書かれている場合、一気に消す事は可能でしょうか? ・セルを指定して、一気に消す事は可能でしょうか? (例) シート1 A3:A6とA8にオートシェイプがあります。 A3:A6のオートシェイプだけを、一気に消したいのですが、このような事、できますか? どなたか、教えて頂けませんか? よろしくお願いします。

  • エクセル:シートの全コピー貼り付けでオートシェイプを除いて実行

    エクセルのシート(Cells)の全データをコピー&(別のシートへ)貼りつける(マクロを使用して貼りつけています)とき、「オートシェイプ」だけを除いた全データを貼り付けることは可能でしょうか? そのオートシェイプはマクロボタンとしているのですが、マクロを実行するたびにオートシェイプの貼付けが繰替えされるため、どんどん重なっていくのを防ぎたいのです。よろしくご指導ください。 ※このオートシェイプの貼付の繰返しによりファイルが重くなることはないでしょうか?ないのなら無視してもよいかとは思っています。

  • オートシェイプ図形の角度をマクロで変えたい

    エクセルのオートシェイプで図形を作って、それをグループ化して、 A1のセルへ数値を入力するとシート1上にあるオートシェイプの角度が変化するようにしたいのです。マクロで出来るでしょうか。 シート上の図形は、Group25 です。 エクセル2000を使用しています。 よろしくお願いします。

  • オートシェイプが消えたり出たりする

    Windows 7+ Excel 2013を利用しています。 オートシェイプを200個位(四角、丸)入れています、重ね合わせはありません。 エクセルで職場のレイアウトを作成・更新しているのですが、 突然、全てのオートシェイプが表示されなくなり、オートシェイプがあるあたりの セルをクリックしたら、幾つかのオートシェイプが表示され、マウスを動かすと オートシェイプが消えてしまいます。 また、別のセルをクリックしたら、先とは、違うパターンで幾つかオートシェイプが 表示され、マウスを動かすと、何個かオートシェイプが表示されたまま、他のが消えます。 オブジェクトの選択と表示では、全て表示になっていますが、一旦、全て非表示にして、全て表示にしても、全く、オートシェイプが表示されません。 慌てて、保存せずに、終了して、パソコンを再起動、変になったエクセルブックを開いても直っていません。 仕方なく、先月のブックをコピーして、修正しています。 変になったエクセルブックですが、他のパソコン何台かで開いても同じようになります。 マクロでもあるのかと思い、Alt + F10を押してみましたが、コードは書かれていません。 諦めかけていたら、調べていないPCから開いたら、表示されています。 そこで、そのPCで上書き保存してから、変になったPCで開いたら、表示されています。 何故なんでしょうか? エクセルブックは、壊れてなかったんでしょうか?

  • オートシェイプの図形の高さ、幅をマクロで変えたい

    エクセルのオートシェイプで図形を作って、それをグループ化して、 A1(縦)A2(横)のセルへ数値を入力するとシート1上にあるオートシェイプの長さと幅が変化するようにしたいのです。マクロで出来るでしょうか。 シート上の図形は、Group25 です。 エクセル2010を使用しています。 よろしくお願いします。

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

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

  • エクセル内のオートシェイプ(楕円)内の数字検索

    Excel マクロでオートシェイプ(楕円)内の数字を検索するマクロを探しています。 数字は同時に複数検索できるように、シート内の複数のセルに数字を入力してボタンを押すと 検索が開始されるような物が有ればよいのですが。 下記のアドレス回答が近かったのですが オートシェイプ全種類の検索となってしまう 同時に複数の数字の検索が出来ないなどの 問題が有ります。 http://okwave.jp/qa/q4407755.html

  • EXCEL2007のオートシェイプについて

    EXCEL2003以前のバージョンで作成した図面フォーマットで、 枠線をオートシェイプで作成しているファイルがあるのですが、 EXCEL2007で一度開き保存し、 再度EXCEL2003以前のバージョンで開くと枠線のオートシェイプがテキスト属性を持ってしまい、 枠内をクリックしようとしても、 枠線オートシェイプのテキストを選択してしまい、 枠内のセルをマウスで選択する事が出来ない現状が発生しています。 暫定回避方法としてカーソルキーで変更したいセルまで移動する、 または、枠線を引き直すの2つの方法は発見しましたが、 どちらも作業効率が悪く非常に困っているので、打開策ありましたら教えてください!!!

専門家に質問してみよう