- ベストアンサー
エクセルマクロでマクロをアクティブにしたくない
- エクセルのマクロを活用して作業をしている際、マクロをアクティブにすることを避けたい場合、どのような方法がありますか?
- マクロをアクティブにすると、予期せぬシートがアクティブになってしまうことがあります。この問題を解決するためには、どのような手段が有効でしょうか?
- マクロをアクティブにする際、データーシートが変わることがあるため、追加の処理が必要です。このような状況下で、適切な方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
よく読むと、 「マクロA」と「マクロ.xls」との関係が分かりませんね。 両方ともマクロを搭載したブックでしょうか? おそらく、「シートにデーターを貼り付けながら作業」というところで、それぞれのファイルを開けて、そこからデータを写すということでしょう。その写す側と写される側の関係がよく見えないのと、そもそもの以下のマクロ(マクロ.xls!マクロ)の役割が分かりません。 そのまま考えると、単に、アドイン型のようにしているとも読めます。 私自身は、以下のように開いてから、Run でマクロを走らせるということは、一般的には、ありえないと思います。開かずに、アドイン型にすればよいと思います。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" 'ActiveWindow.WindowState = xlMinimized なぜ、アポストロフィが入っているのかは分かりませんが、ここらは、タイミングの問題で、開いた直後では、OS側の処理が優先するのではないかと思います。実際に、Window操作と、Openメソッドは相性が悪いような気がします。 このままでは、ご質問内容の理解は不能ですが、現状のままアドバイスをするなら、定型のファイルなら、Windowのサイズ自体を小さくしておくか、マクロでWindowのサイズを縮めるなら、可能な対策かなと思います。
その他の回答 (1)
- sora1515
- ベストアンサー率58% (54/92)
いろいろ日本語がおかしいのですが。。 >エクセルのマクロをひとつの「マクロA」という名前で、 →マクロは全体でいくつあるのですか? >データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 →別ファイルのセル内容をマクロA側のシートに貼り付けています。 でよいでしょうか? >Workbooks.Open Filename:= "C:\Documents and Settings\owner\My Documents\マクロ.xls"Application.Run "マクロ.xls!マクロ" →ここは嘘でもいのでABC.xls!マクロBなどとしてもらえるとわかりやすいです。 ちなみになぜ別ファイルのマクロBを動かす必要性があったのでしょうか? >その為記載に'ActiveWindow.WindowState = xlMinimizedと入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 →「マクロ以外にうまくいかないこと」とはもっと具体的に何の事でしょうか? >データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。 →ABC.xlsはデータが変動します。>でいいですか?もしそうなら特に関係ありませんね・・・ →ABC.xlsはファイル名が変動します。>ですか?もしそうなら最初からOpenすらできませんね・・・