• ベストアンサー

EXCELのマクロの有効範囲について

(1)EXCEL2000にてブックが2つあって、それぞれに個人用マクロブックがある場合、お互いの個人用マクロブックのマクロの実行するにはどのようにマクロの記述をすればいいですか? BOOK1 マクロA1、A2、・・・、A5 BOOK2 マクロB1、B2、・・・、B5 のとき マクロA1の中でマクロB2を実行する (2)EXCEL2000にてブックが1つあって、個人用マクロブックとPERSONAL.XLSがある場合、PERSONAL.XLSの中で個人用マクロブックのマクロの実行するにはどのようにマクロの記述をすればいいですか? PERSONAL.XLS マクロA1、A2、・・・、A5 BOOK1     マクロB1、B2、・・・、B5 のとき マクロA1の中でマクロB2を実行する

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

下記のようなことでどうでしょうか? Application.Run "'D:\ExcelBook\教えて.xls'!マクロB2" 普通、個人用マクロブックと言えばPERSONAL.XLSのことです。 QAZ123さんが言われる「個人用マクロブック」とはブック名のことでしょうね。

QAZ123
質問者

お礼

作業中のブックを個人用マクロブックと間違えてたようです。 意図を読み取ってくれてどうもありがとう。 Application.Run で目的を達成できました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 まず、個人用マクロブック(PERSONAL.XLS)というのは、以下にあるファイルのことだと思います。 C:\Documents and Settings\[User Name]\Application Data\Microsoft\Excel\XLSTART\ >それぞれに個人用マクロブックがある場合、お互いの個人用マクロブックのマクロの実行するにはどのようにマクロの記述をすればいいですか? 普通は、個人用マクロブック(PERSONAL.XLS)は、それぞれのユーザー[UserName]に対してひとつです。二つあれば、起動時には読み込みます。他人のPERSONAL.XLS は共有はしません。また、Program Files 側のXSTART に置く、PERSONAL.XLS がありますが、Program Files 側に置くのはお勧めしません。そのコードは、貰って、それぞれのモジュールに書いてください。 >個人用マクロブックとPERSONAL.XLSがある場合 用語が混乱しています。個人用マクロブックのことを、PERSONAL.XLS と呼びます。しかし、別のブック(例:PERSONAL2.XLS)を上記フォルダに入れることは可能ですが、いずれはトラブルはあると思ってください。 PERSONAL.XLS や個別のブックのマクロは、同じProject のモジュールにマクロを置くか、最初から、ブックに付けるアドインを作ってしてしまうか、どちらかだと思います。 「マクロA1の中で、[別のブックの]マクロB2を実行する 」は、ふつうは、通常、他のブックのマクロを呼び出す場合は、Application.Run を使用します。ただし、呼び出されるマクロというのは、プロテクトが入った特殊なマクロが多いのです。通常は、モジュールひとつに、コードを書きます。 そうでない場合は、別のブックを参照設定しますが、参照設定側は、通常は、非表示ブックにします。Excelの場合のPERSONAL.XLS のマクロは、グローバルなものを置くので、個々のブックに適用する場合は、PERSONAL.XLS には書かないというのが、マクロの常識的なルールだと思います。 こういうことは、もう少し、基本的なところから始めないといけないかもしれませんね。いきなり、個々のハウツーでやっても、うまく行かないような気がします。Excel VBAというのは、基本的には、個別のコードになり、他のブックのコードは利用しないのが一般です。アドインという方法もあるのですが、あまり多くありません。

QAZ123
質問者

お礼

作業中のブックを個人用マクロブックと間違えてたようです。 Application.Run で目的を達成できました

関連するQ&A