参照されている図形を変更したときにマクロで入れ替えるには?

Question 59.7 Previous Next
詳細は こちら (Excel2000を使用しています、製図でいう部品みたいなものが作りたいのですが)
メインシートに図1、図2が複数あるとして、この図は別シートから参照されていて、参照先の図をかえると、メインシートの図はすべて変更される というマクロが使いたいのですが、500連発第2弾の 282,283,284番のサンプルの応用で作れませんかね?
Answer   Copyright (C) 2003.4.9 永井善王
500連発第2弾をご購読ありがとうございます。282番は「図形の名前を調べる」、283番は「図形を削除する」、284番は「図形を複製する」と題したサンプルで、これらを応用できないかというアイデアですね。
「製図でいう部品みたいなもの」のイメージをはっきりとつかめないので、少々、回答を考えあぐねています。

まず、「メインシートに複数ある図1、図2」を作成したアプリケーションは何でしょうか。一口に「図」と言ってもクリップアート、写真、スキャナ、オートシェイプ、ワードアートなど色々あり、それによっては、Excelの標準機能にある[図のリンク貼り付け]で実現できるかも知れません。

そうはいかない場合に、マクロで自動化を考えることになるでしょう。 ですが、図形を扱うマクロは、付帯する種々の問題を根気よく処理する必要が発生するでしょう。例えば、図形を貼り付けるワークシート上の位置をどう指定すればよいか、図形のサイズが異なる場合はどうするか等です。 特に、個々の図形には Excelが自動的に付番するので、その番号をどのように指定すればよいのか悩むことになるかも知れません。

図形の番号が取得できれば細々した問題を除いて、(1)メインシート上の入れ替えしたい図を削除し、(2)参照先の図をコピーして、(3)メインシートに貼り付ければよいことになります。 しかし、変更になった図だけを入れ替えようとすると、かえってマクロが複雑になるかも知れないので、その都度、全部作り直すマクロの方が簡単かも知れません。

ひとまずは、全部作り直すシンプルなマクロを自動記録で作成してみて、その後で、付帯する種々の問題を解決するためのコードを研究されるとよろしいかと思います。
Excel2000をお使いですので前記サンプルのほかに、このホームページの「
Macro・その他 2-1) 図形の名前・削除・複製」を参考にしてください。

 

Excel VBA Macro