こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

EXCELのボタンによるマクロの登録名にファイル名が入ってしまう

 EXCEL2003を使用しています。
 ネットワーク上の共有フォルダ上にEXCELファイルがあり、マクロを作成しボタンを配置して、クリックすると起動するようにしています。
 そのファイルをコピーして場所を変えると、ボタンで参照されている(起動する)マクロが変わってしまいます。
 たぶん書き方の問題と思うのですが、いい記述方法はないでしょうか?

 具体的には、共有フォルダ上の「\\common\Book1.xls」 に、「CopyData」というマクロがあり、ボタンを配置して登録したとします。
 そのままでは正しく起動します。
 次に共有フォルダ上で同じBook1.xlsをコピーし、ローカルに移しててファイルを編集し、先のボタンをクリックして作業させようとしたのですが、ボタンでの登録が「\\common\Book1.xls!CopyData」のようになってしまい、うまく動作しません。
 起動させたいのは「今開いているBookのマクロ」なのですが...


※シートでセルに参照式を入れると似たようなことが起こります。
 参照式が入っているシートをコピーして他で編集し書き戻そうとしても、パスが追加され、うまくいきません。
 合せてご存じの方、ご教示頂ければと思います。


 以上、よろしく御願い致します。

投稿日時 - 2009-12-21 09:41:41

QNo.5537335

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>症状は出たりでなかったりするので、どのような操作をしたときにパスが追加されるのか、また古いままで残ってしまうのかを追跡したいと考えているのですが、しばらく触っていますがどうも一人では発生しないようで困っています。

ご質問の趣旨がリンクがついている場合にそれを効率的に削除したいということだと思って回答しましたが、実際は「症状は出たりでなかったりする」のではなく、症状が出る方法がわからないということでしょうか?

その場合は、おそらくブックをコピーしたのではなく、元のブックの「シート」をコピーしたのではないでしょうか?

投稿日時 - 2009-12-25 01:03:19

ANo.2

こんにちは。

>共有フォルダ上で同じBook1.xlsをコピーし、ローカルに移しててファイルを編集し、先のボタンをクリックして作業させようとしたのですが、

今、私は実際に試していみませんが、それは、フォーム・コントロールツールだと思います。

フォーム・コントロールなら、OnAction をマクロで書き換えればよいと思います。ただし、シートコピーでは、フォーム・コントロールには、シートモジュールに書かなければ、マクロは存在していません。また、ActiveX 側の場合、シートコピーをすれば、そのような現象は出なかったような気がします。

投稿日時 - 2009-12-21 12:14:38

補足

 こんにちは。回答ありがとうございました。
 書いていただいています後半部分がいまいち力量不足でよくわからないのですが、シートをコピーするようなマクロは使用しておりません。
(Copyというのはたまたまのサンプルで...)

 どのような操作をしたら今回のような現象になるのか現在トライしていますが、どうも一人で作業していては出ないのかな? というような状況です。
 また発生したら補足させていただきます。

投稿日時 - 2009-12-23 20:42:28

ANo.1

まず「編集」「リンクの設定」で「リンク元の変更」で自分自身のファイルを指定してうまくいかないか調べてみてください。

他ブックのマクロを参照しているボタンがあるなら、単純にそのボタンを右クリックして、自分自身のファイルのマクロに登録し直せばよいと思います。

投稿日時 - 2009-12-21 11:07:25

補足

 こんにちは。回答ありがとうございます。

> まず「編集」「リンクの設定」で「リンク元の変更」で自分自身のファイルを指定してうまくいかないか調べてみてください。

 問題なく動作します。元々はその設定でしたが勝手にパスが入ってしまう場合があり困っています。

> 他ブックのマクロを参照しているボタンがあるなら、単純にそのボタンを右クリックして、自分自身のファイルのマクロに登録し直せばよいと思います。

 その通りなのですが、頻繁に作業のたびに発生すると手間がかかって仕方がないです。
 何とか、パスが勝手に付かないようにしたいのですが...

--
 元ファイルは複数の人で使用しており、各人が更新するとマクロを走らせるというワークを行っています。
 元ファイルはリリースのタイミングがあり、必要に応じてコピーして新しいバージョンを作るという作業をしています。
 そのたびに複数シート・複数ボタンのマクロの登録状況をチェックするというのは非現実的作業になってしまっております。

 症状は出たりでなかったりするので、どのような操作をしたときにパスが追加されるのか、また古いままで残ってしまうのかを追跡したいと考えているのですが、しばらく触っていますがどうも一人では発生しないようで困っています。

 何かお気づきの点がありましたらまたコメントいただけるとありがたいです。

投稿日時 - 2009-12-23 20:32:51

あなたにオススメの質問