• ベストアンサー

エクセルのマクロで作成した関数を他のエクセルのファイルから参照できるのですか?

エクセルVBAに関して質問です。 a.xlsというファイルに複数のシートがあり すべてのシートにあるデータと「計算」ボタンがあります。 「計算」ボタンを押下すると、マクロが実行され 計算結果が同じシートに表示されます。 データの内容はシートごとに違いますが、 「計算」ボタンで呼び出したいマクロはすべて同じです。 この「計算」ボタンを押すと実行されるマクロを b.xlsに記述したいのですが、 (他のエクセルのファイルにも使いまわしたいので) そのようなことは可能なのでしょうか。 またどのようにマクロを記述すればこのマクロを 呼び出すことができるのでしょうか。 分かりにくい文章で申し訳ございませんが ご教授くださるとうれしいです。

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

  • ベストアンサー
  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

ボタンを右クリック→「マクロの登録」を選択→目指すマクロを選択して「編集」ボタンを押下。 開くモジュールウインドウ内の記述をすべてコピーし、 b.xls上で 1)「ツール」→「マクロ」→「マクロ」で出てくるダイアログに、 マクロ名に好きな名前を入力して、「作成」ボタン。 マクロエディターの画面になる。 2)マクロエディターの画面に以下のような3行が出てきますけど、消しちゃってください。   Sub test()   End Sub 3)最初にコピーした記述をマクロエディタにペーストすれば終了です。

bossa2002
質問者

お礼

回答ありがとうございます。 具体的でわかりやすいご説明ありがとうございました。 この方法でやってみたいと思います。

その他の回答 (4)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

たとえばb.xlsからa.xlsのマクロを参照すると、 b.xlsだけを配布したり、a.xlsを削除したりしたときに困りますので、 必要がない限り、「別ブック参照」という方法に無理にこだわらないほうがいいと思います。 もちろん、すでにでている回答のような方法で、参照することは可能ですが。 VBEの画面を立ち上げて、コードをコピー&ペーストすれば、 a.xlsのマクロをb.xlsにコピーできるので、 b.xls単体で動かせます。 VBEにはモジュール単位でエクスポート・インポートという便利な機能もあります。

bossa2002
質問者

お礼

回答ありがとうございます。 そうですね、単純にコピー&ペーストすれば可能ですよね。 >b.xlsだけを配布したり、a.xlsを削除したりしたときに困りますので これは十分考えられますよね。 仕事で使うので、運用方法をしっかり決めたいと思います。 役に立つアドバイスありがとうございました。

  • butaichi
  • ベストアンサー率26% (4/15)
回答No.4

「他のブックのプロシージャを呼び出す」と解釈していいのであれば、Runメソッドで呼び出しができます。 Application.Run "ブック名 マクロ名" 但し、呼び出し先のブックがすでに開いているか、あるいは呼び出し先のブックが保存されているフォルダがカレントフォルダとなっている必要があります。 (ただいま書籍にて勉強中の初心者です。見当違いならごめんなさい。)

bossa2002
質問者

お礼

回答ありがとうございます。 いえいえ、見当違いなんてことはありません。 勉強中、とのことですが、お詳しいですね。 この方法ですと、呼び出し先のブックを開く処理を 加えたほうがいいみたいですね。 いろんな方法があって驚きました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

下記がお尋ねの件に関して述べているのではないでしょうか。 http://www1.plala.or.jp/happyday/sample/s4/s4_14.html そうであれば、「個人用マクロブック」でWEB照会(検索)すれば沢山でます。

bossa2002
質問者

お礼

回答ありがとうございます。 「個人用マクロブック」という機能もあるんですね。 これは応用が利きそうですね! 役に立ちそうな機能なので、覚えておきます。

  • kojitti
  • ベストアンサー率32% (449/1386)
回答No.1

ボタンにマクロを登録する時に当該ブック(b.xls)を開いていれば、当該マクロを選択可能です。 あとはそのボタンを押せば、自動的にb.xlsが開かれてそのマクロが実行されます。

bossa2002
質問者

お礼

回答ありがとうございます! すばやい回答ありがとうございました。 他のブックのマクロも使用することができるんですね。 このことが知れただけれもすごくうれしいです。 しかも自動的にブックが開くなんて・・ そんな風になっているんですね。

関連するQ&A