- ベストアンサー
ExcelVBA2010 マクロが動作しない
- Excel2010のVBAについて質問します。ブックAとブックBがあり、ブックAにはVBAのモジュールの記述がります。そのブックAの中にあるシート1にコマンドボタンを作成し、このボタンにモジュールが登録されています。ブックAを起動すると、ブックAの中にあるシート1をブックBにコピーします。ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、なぜかブックB内のシート1のコマンドボタンのモジュール先がブックAでは無くブックB内のリンク先に変更されてしまい、VBAが動作しません。
- パソコンAでは動作し、パソコンBでは上記のエラーになってしまいます。Excel本体の設定等を見比べましたが、一向にわかりません。
- どうかご教授をお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問はもう少し正確にお願いしたいものです。#1/#2様が、同じ要求をしています。質問内容からすると、たいして長くないはずですが、なぜ、肝心な所のコードを見せないのですか? いくつか試してみましたが、同フォルダー上では、そのような現象は現れません。 確かに、旧バージョンで、そのような現象の記憶はあるのですが、それは、一般的なコードではないからです。 それに、コードは2つあるのですか? 片方は、シートコピーするコードで、もうひとつは、行の非表示のコードなのでしょうか?一つのコマンドボタンなら、当然、またシートがコピーされるはずです。 >ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、 コピーしたコマンドボタンで、元のマクロを動かそうとするのは、考え方自体が標準的ではありません。アドインでない限りは、マクロは、そこにあるブックで動かすというのが、標準的です。そうしないと、いちいち、呼び出すことになるからです。ですから、コピーされた側は、コマンドボタンはコピーしないか、コマンドボタンを削除するようにします。言い換えると、シート Copyはせずに、Cells Copyをします。 >Sub Shiyo_Mihyo() > Rows("11:80").Hidden = True >End Sub このコードは、今までの話の流れとは合いませんが、もし作動させるなら、ブックA側で実行させた時に、同時にすべきだと思います。
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
ブックBから、ブックAの「標準モジュール」内のマクロを動かしたいのかと思いましたが違いますか? 状況が良く見えないので、コマンドボタン押下時のコードを提示してみて下さい。 それとも、コマンドボタンではなくフォームコントロールのボタンですか?
- mt2008
- ベストアンサー率52% (885/1701)
コマンドボタン押下でブックAのマクロを動かす箇所のコードはどのようになっているのでしょうか。 Application.Run "ブックA!Macro1" の、様になっていますか?
補足
ブックA内にあるモジュールがブックBにコピーされるので、「Run」の記述はありません。 パソコンAでは動作しておりますので、何かPC上かExcel上での設定の問題かと?
補足
ボタンはフォームコントロールです。 ブックAのシート1の上記ボタンに、以下の標準モジュールの記述を登録してあります。 Sub Shiyo_Mihyo() Rows("11:80").Hidden = True End Sub 最初の質問に記述した通り、ブックAのシート1をブックBにコピーされた後、パソコンAではブックBにコピーされた後でブックBのシート1のボタンをクリックするとブックAの標準モジュールのマクロが起動されるのですが、パソコンBでは、リンク先がパソコンBに何故か変更されてマクロが起動されない現象です。