• ベストアンサー

2つのEXCELのブック間でのマクロの呼び出し方

お世話になります、 あるExcelのブック「Book1」でセルが選択された イベントで別のブック「Book2」に登録されている マクロ「Macro(str,number)」を呼び出したいのですが どのようにすればいいでしょうか? よろしくお願いします。 具体的なソース等がありましたらよろしくお願いします。

noname#1752
noname#1752

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>セルが選択されたイベントで がどのセルでもいいのか不明ですが、例えば、 Book1のSheet1のセル範囲A1:B2をクリックしたら、Book2のSheet1のBook2_Macroを呼ぶ例です。 Book2のMacroは適当な例です。引数も適当です。 ご参考に。(似たような質問がありました?) Book1のSheet1のマクロ ↓ ' *** A1:B2のセル範囲を選択したらSheet2のマクロが動く例 *** Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Not Application.Intersect(Target, Range("A1:B2")) Is Nothing Then     'A1:B2のセル範囲を選択したら動きます     Workbooks("Book2").Worksheets("Sheet1").Activate     ActiveSheet.Book2_Macro "AAA", 123 '引数は適当です   End If End Sub Book2のSheet1のマクロ ↓ ' メッセージを出すだけの例 Sub Book2_Macro(str As String, number As Long)   Dim myMsg As String 'メッセージ   myMsg = "Book1 の Sheet1 から" & vbCrLf   myMsg = myMsg & "文字:" & str & vbCrLf   myMsg = myMsg & "数値:" & number & vbCrLf & " で呼び出されました。"   MsgBox myMsg End Sub

関連するQ&A

  • エクセル-別のbookで同様のマクロ実行

    エクセル-別のbookで同様のマクロ実行 最初あるBook1に入っているmacro1はそのbook1のsheet1を処理するように作成しました。 次にBook1を開いたまま、Book2を開きそのsheet1に対してmacro1と同等の機能を実行したい場合は通常どうするのでしょうか。 (1) Book2にBook1のマクロをコピー (2) book2のマクロを開き、表示されるBOOK1 macro1を実行する。 (2) 場合でもうまくいくのでしょうか。Sheet1に対してやりたいことの論理は同じとします。試してみたらといわれそうですが、まず識者の説明をお聞きしたいのです。

  • EXCEL マクロ

    エクセルマクロ初心者です。 エクセル2007で、複数選択したセルの合計値・平均値をコピーできないか悩んでいます。作業によって、選択するセルが変わりますので、セル番地の指定をせずにマクロの書くことができますでしょうか。 イメージとしては、複数のセルを選択をしたときに、ステータスバーにオートカルクで表示される合計値・平均値をクリップボードにコピーし、別のセルに結果をペーストする感じ(ペーストする際に合計値・平均値のどちらを貼り付けるか選択できれば尚、良)です。 個人用マクロブックに登録して、不特定ブックで使用したいマクロです。よい方法があれば教えて下さい。

  • マクロブックを移してもプログラムを参照したい

    マクロからマクロを呼び出すとき、 Sub Macro2() Application.Run "Book1!Macro1" End Sub というマクロを作った場合、Book1!に保存されていないと実行されませんが、 これをほかのブックに移したときも使えるようにするにはどうしたらよいのでしょうか?

  • excelでマクロシートをコピーしたとき

    excelでbook1のsheet1のセルA1に「1」を入力→プリントアウト→A1に「11」を入力→プリントアウト・・・以下「31」まで繰り返し。 というマクロが組んであります。 (ボタンにマクロが登録されています。) このシートをbook2にコピーをしたときに マクロを実行する(ボタンを押す)とbook1が開いてしまいます。 これをbook1を開かずにbook2でマクロを実行するには どのようにしたらよいでしょうか。 book2でマクロを作成し直して さらにボタンにマクロを登録していますが、 bookの数が多いのでけっこうな手間になります。 簡単な方法があれば教えて下さい。

  • マクロで5個のBOOKのデータをBOOK1に転記

    エクセルマクロで対話型でBOOK2~6の5個のデータを BOOK1のシート1に順番で転記したいです。 BOOK2~BOOK6は作業者にファイルを選択させたいです。 BOOK2~BOOK6は作業の都度行数がBOOKごとに変わります。 (500~5,000行でばらつきます) 流れとしては、 1.BOOK1を開いてマクロを軌道 2.エクセルのファイルを開くウィンドーが出る 3.ファイルを選択させる(例:マイネットワーク内のBOOK2を選択) 4.ウィンドーの開くをクリックする 5.転記1回目   指定したファイルが開いてデータが   BOOK1のシート1に転記される   この1回目は1行目からデータがある最終行まで。   その後BOOK2は閉じられる 6.メッセージボックスで「転記完了」と表示 7.メッセージボックスの「OK」をクリックすると   エクセルのファイルを開くウィンドーが出る 8.ファイルを選択させる(例:マイネットワーク内のBOOK3を選択) 9.ウィンドーの開くをクリックする 10.転記2回目   指定したファイルが開いてデータの中の2行目~最終行までを   BOOK1のシート1の最終行の次の行から転記を行う。   (NO.5のBOOK2が1,000行の場合1,001行目から    BOOK3のデータ2行目以降が転記される)   その後BOOK3は閉じられる 11.この作業を計5回行う   (転記3~5回目も転記するデータは2行目~最終行) 13.メッセージボックスで「5個のBOOKの転記が終了」と表示 14.メッセージボックスの「OK」をクリックすると   Call 編集   でSub 編集 というプロシージャーが起動する Sub 編集は出来上がってます。 (BOOK1のシート1を編集します。) NO.1~NO.14のマクロ記述を教えてください。 自分で作成した記述では全然駄目でした。 よろしくお願いします。

  • エクセルのマクロについて

    お世話になります。エクセル2007のマクロについてですが、「A」というBOOKがありその中の任意のセルをクリックするとハイパーリンクで「B」というBOOKが開くようになっています。 ここで「B」が開いた時点で自動的に「A」を保存しないで終了させたいのですが、マクロの組み方がわかりません。 Sub Sample1() Workbooks("BookA.xlsx").Close End Sub と記述するとBook Aが閉じるのは調べてわかったのですが、ハイパーリンクでBが開いた時点でこのマクロを動かすようにするにはどうしたらいいのでしょうか?何か別の方法があるのでしょうか? 宜しくお願いします。

  • マクロからマクロを呼び出す方法

    ブックの中にあるマクロを呼び出すマクロを書きたいです。 Sub Macro2()   Application.Run "Book1!Macro1" End Sub とすると、book1のmacro1しか呼び出せませんが、マクロを書いているファイル(コピーして仮にbook2) のマクロを呼び出すにはどのように書けばよいでしょうか?(マクロブックだけ他のファイルにコピーして使う用途を想定しています。

  • エクセルのマクロ イベントプロシージャについて

    エクセルのマクロについて教えて下さい 今 book1を開いたら動くマクロを組んでいます 「Private Sub Workbook_Open()」を 使って 内容は この中で別のブック(仮にbook100とします) を開いてその中のデータ (すでに選択してあります) をコピーして book1に貼り付けて book100を閉じる。 という作業なのですが book100を選択しようとするとエラーが起きてしまいます。 Private Sub Workbook_Open() の中では違うブックに対して 作業ができないようになっているのでしょうか? よかったら御教授ください

  • 既存のマクロをコピーして使いたい

    BOOK1に[新しいマクロの記録]で作ったMacro1があるとします。いま新たにBOOK2を作成し、ここでBOOK1のマクロMacro1をコピーして使いたいのですが、どうやってコピーしたらいいか教えて下さい。BOOK2とBOOK1を同時に開いておけばBOOK2でも同じ機能を得られるのですが、BOOK1を閉じるとマクロの機能が無くなってしまいます。ただし、マクロについては全くの無知で、[マクロの記録]だけを使っています。

  • エクセル マクロ個人用マクロブックについて。

    エクセルのマクロでの個人用マクロブックでの保存がうまくできません。 表題の件で質問させてください。1台のPCにマクロを数項目登録して色々なエクセルで運用したいんですが 個人用マクロブックで登録するとマクロ作成済みのエクセルを開かなくても良いと知恵袋に見ましたので個人用マクロブックに 名前を入力してマクロ登録致しました。 実際3個作ったはずですがいちばん最初に作ったマクロしか選ぶことができません。どうしたらいいでしょうか? まれに全てのエクセルを閉じて再起動したりすると時たま他のマクロがある時もありますが5個に1回位です。 色々とマクロ作成して作業したいのですが作成したマクロが出てこないで困っています。 対処の仕方ご教授ください。 宜しくお願い致します。

専門家に質問してみよう