• ベストアンサー

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

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

  • r2san
  • お礼率25% (1309/5228)

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

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

簡単に言うと、マクロ・ブックをアドイン型のブックに換え、アドインにチェックを入れればよいし、そうでなければ、PERSONAL.XLSにマクロを登録するとか、他には、Class に登録するか、いずれかの方法を取ります。 私の場合は、いろんな想像をしてしまいますので、そのマクロの内容にもよります。

r2san
質問者

お礼

なるほど、納得しました。 まだまだ勉強不足ですが参考にさせていただきます。 ご回答ありがとうございました。

関連するQ&A

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

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

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

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

  • vba ブックを変更しないで閉じたい

    ブックを開き、 Sub Macro2() Application.DisplayAlerts = False 'セルをいじる処理(A1に「あ」を入れるなど) '・・・ Windows("ブック1.xls").Activate ActiveWorkbook.Close SaveChanges:=False End Sub を実行すると変更があっても何も表示されないで閉じるはずですが とあるブックのみ、 「'ブック1'を保存しますか?」 はい いいえ キャンセル が出ます。 同じコードをブックに対して行なっているのに、実行できる場合と出来ない場合があるのでしょうか?

  • excelマクロ記述

    EXCELのBOOKがあり、n枚のシートを含んでいます。 Macro1という名称のマクロで、 そのBook内のすべてのシートにMacro2というマクロを実行させる という場合、Macro1はどのように書けばいいのですか。 次次にシートを開くという操作をどう表すか? このMacro2では、例えばシートの文字の表示を75%のサイズで表示のようなものを考えています。 またそのときmacro2は、何か記述の追加が必要ならそれはどのようなものか。 よろしくお願いいたします。 Sub Macro1( ) ' Macro1 Macro ' 次次とシートを開き、75%サイズにする xxxxxxxx Sub Macro2( ) ' Macro1 Macro ActiveWindow.Zoom = 75 End Sub End Sub

  • 他ブックを実行するマクロ

    あるexcelファイル(ブック名「自動操作.xlsm」)からべつのexcelファイル(ブック名「a.xlsm」)というファイルを実行するマクロを組んでいます。 Application.Runを用いて「自動操作.xlsm」のコードを以下のように記述しました。 ※「\」は半角の円マークだと考えてくれればいいです。ここで半角の円マークをかいても\と表示されます。また、自動操作とaは同じディレクトリにあります。 Sub Test1() Application.Run "'C:Users\ディレクトリ名\a.xlsm'!test" End Sub また、「a.xlsm」は以下のように記述しました。 Sub test() Dim i As Integer For i = 1 To 5 '移動元ファイルパスの設定 Cells(i, 1) = i Next End Sub ただ1~5行にその行数を記入するマクロです。 a.xlsmを開いた状態でこれを実行すると、「アプリケーション定義またはオブジェクト定義のエラーです」とでます。 a.xlsmを閉じた状態で実行すると、「このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります」とでます。 いったいなにを間違えているのでしょうか。

  • Excel VBAで他のブックを選択する方法を教えてください。

    こんにちは。VBA初心者です。 ブックを2つ開いた状態で、 マクロを保存してあるブック〔Book1〕から、 毎回ブック名が異なる[Book2]の選択されている2枚のシートを新しいブックに(仮Book3)コピーしたいのですが、どのように記述したらよいのでしょうか。(選択されるシートも毎回異なります。) 特に教えていただきたい部分は、 1.マクロが記録されているBOOK1以外のBookを操作する方法。 2.私以外の方が利用する為、Book1に保存したマクロから実行させる予定なのですが、Book1を毎回開いて実行させる方法がベストのやり方なのでしょうか。 マクロの記録では下記の感じになります。 Sub Macro4() Windows.Arrange ArrangeStyle:=xlVertical Windows("Book2.xls").Activate Sheets(Array("Sheet3", "Sheet4")).Select Sheets("Sheet4").Activate Sheets(Array("Sheet3", "Sheet4")).Copy End Sub 宜しくお願い致します。

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • アクティブなブックのマクロの実行について

    現在使用しているエクセルのブックがあり、ブック名はA(Ver1.0)とします。 このブックにApplication.Run "'A(Ver1.0).xls'!(1)"…Application.Run "'A(Ver1.0).xls'!(20)"というマクロがあります。 ブック名をマクロ実行前に必ず変更しなければならなくて、そのブック名は毎回違ったものになります。 わざわざブック名を変更せずに、現在開いているブックのマクロを実行するという風にしたいのですがどうしたらいいですか? よろしくお願いします。

  • マクロの連続実行

    以下のようにマクロがある場合に、マクロ1と2を連続して実行したいのですが、出来るのでしょうか? Sub Macro1() ・ ・ ・ End Sub Sub Macro2() ・ ・ ・ End Sub

  • マクロ 実行後にファイルを閉じたい

    マクロを実行した後、実行したファイルを閉じるようにしたいのですが、 どのように書いたらよいか分からず、どなたかご教授いただけませんでしょうか。 グーグルで検索したマクロを実行して、その後その実行したファイルを 閉じるように加えたかったため、以下のPrivate Sub book1close()を加えたのですが 何も起こらずファイルは開かれたままです。 まったく記述する構文を理解できてないのでお恥ずかしい質問で申し訳ございませんがどなたか、どうかよろしくお願い致します。 ---------------------------- Option Explicit  Sub 作業1()   ・・・・・・・  End Sub  Private Sub 作業2()   ・・・・・・・ End Sub Private Sub book1close()   この行以下を追加しましたが動きません! Application.DisplayAlerts = False Workbooks("Book1.xlsx").Save Workbooks("Book1.xlsx").Close Application.DisplayAlerts = True End Sub ----------------------------

専門家に質問してみよう