
Book1の下記マクロからBook2を開きmacro2を実行させようとしても、Application.Run の行で実行時エラー '1004'(マクロ ''D:\test\Book2.xlsm'!macro2'を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。)
とのエラーメッセージが出てしまいます(この時、Book2は立ち上がります)。
Sub auto_open()
MsgBox "自動実行開始!(Book1)"
Application.Run "'D:\test\Book2.xlsm'!macro2"
End Sub
この1004エラーについては多くのサイトが対応策を提示しているので、これらを参考に、記述の誤り、トラストセンターでの設定等、いろいろ試したもののエラーは全く解消されませんでした。
因みにBook2のmacro2は以下の通りで、これ単独では正常に動作します。
Sub auto_open()
MsgBox "自動実行成功!(Book2)"
End Sub
以上、解決策を教えて頂ければ幸いです。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
こんばんは
Book2の Sub auto_open() プロシージャ
どのモジュールに書いていますか?
標準モジュールでないと読めないと思いますよ
macro2と言うプロシージャ名のコードは示されていないので
#1お礼にある
Application.Run "'D:\test\Book2.xlsm'!auto_open" で
Book2.xlsmが開くなら、よいハズです。
一応、確認やスペルチェックなどを再点検として少し書き替えて
更にauto_openと言う名前が間違えやすいので(auto_openは色々な事がしたいと思うので)下記のような一例を試してください。
コードは全てコピペでどうぞ
Book2の、標準モジュール(オブジェクト名Module1)の場合
Sub auto_open()
Call macro2
End Sub
Sub macro2()
MsgBox "自動実行成功!(Book2)"
End Sub
Book1の標準モジュールに
Sub auto_open()
MsgBox "自動実行開始!(Book1)"
Application.Run "'D:\test\Book2.xlsm'!Module1.macro2"
End Sub
Qchan1962さん、的確な回答を有り難うございました。
Qchan1962さんのコードをそのままお借りして試したところ、完璧でした。
解決には大分時間がかかるかも知れないと思っていたので、大いに助かりました。
Qchan1962さんには以前にもお世話になった事があったと記憶しております。今後とも、どうぞ宜しくお願い致します。
No.3
- 回答日時:
No2です
情報が「できない」以外にほとんどないので、何ともわかりかねます。
私の環境では、
Application.Run "'" & "ブックのパス" & "'!" & "マクロ名"
で問題なく動作します。
モジュール名を付す場合は、"モジュール名.マクロ名"にすればよいです。
想像するところ、質問者様が通常とは違うことを行っている部分に原因があるのではないかと推測しますが、それがどこなのかは情報がまったく無いのでわかりません。
>想像するところ、質問者様が通常とは違うことを行っている部分に原因があるのではないかと推測しますが、それがどこなのかは情報がまったく無いのでわかりません。
"モジュール名.マクロ名"の件、有り難うございました。
ところで、auto_openのコードを弄るのは今回が初めてなので極めて単純なコードしか書いていません。
Book1のマクロは既出の通りですが、Book2のマクロは以下の通りです。
Sub auto_open()
MsgBox "自動実行成功!(Book2)"
End Sub
これだけ単純なので特に通常と違うことを行っているとも思えないのですが。
数十のサイトで調べたのですが解らず、質問をアップした次第です。
もう少し、調べるなり検討してみたいと思います。
有り難うございました。
No.2
- 回答日時:
No1です
>御指摘のマクロ名は以前、auto_open で試したのですが結果は同じでした。
>Application.Run "'D:\test\Book2.xlsm'!auto_open"
auto_openのマクロを実行したいのなら、ブックを開けば良いです。
モジュール内のマクロを実行する際に同名が存在する場合は、モジュール名も付して呼び出す必要があります。
>auto_openのマクロを実行したいのなら、ブックを開けば良いです。
御指摘のブックとはBook2の事でしょうか?
最初の質問にも書いたように、Book1のマクロを実行した時点でBook2そのものは立ち上がっています。
又、このマクロ作成の目的はBook1からBook2をmacro2で動作させることなので、手動(だとしたら)でブックを開くのは意味がありません。
>モジュール内のマクロを実行する際に同名が存在する場合は、モジュール名も付して呼び出す必要があります。
これについては同一モジュール内に同名のマクロは存在しませんが、宜しければ、その際の書式を教えて下さい。
なお、最初の回答で「macro2はちゃんと存在していて、実行できる形式になっていますか? 」については見落としていて失礼しました。
これについても最初の質問に書いたように、Book2単独の動作ではmacro2は正常に機能します。
何度もお手数をお掛けして申し訳ありませんが宜しくお願いします。
No.1
- 回答日時:
こんにちは
>因みにBook2のmacro2は以下の通りで、~~
ご提示のマクロは
>Sub auto_open()
であって、macro2ではありません。
macro2はちゃんと存在していて、実行できる形式になっていますか?
fujillinさん、早速の回答、有り難うございました。
御指摘のマクロ名は以前、auto_open で試したのですが結果は同じでした。
Application.Run "'D:\test\Book2.xlsm'!auto_open"
又、お気づきの点があれば改めて宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルVBA 「Application.Run」について
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
Excel vbaで別ブックのコマンドボタンをクリック
Visual Basic(VBA)
-
-
4
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
5
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
6
VBA+VBSによる別インスタンスBookOpen時のVBSエラーに関して
Excel(エクセル)
-
7
VBA 実行時エラー 1004 マクロが使用できないエラーの原因がわかりません
Visual Basic(VBA)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
UserForm1.Showでエラーになります。
工学
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
vbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう
その他(プログラミング・Web制作)
-
12
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
13
別シートのマクロを実行する方法
Excel(エクセル)
-
14
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
15
別ブックからユーザーフォームを実行したい~!!
Visual Basic(VBA)
-
16
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
17
エクセルでエラーが出て困っています。
Excel(エクセル)
-
18
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
19
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
20
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
エクセルVBAで、ボタンの文字を...
-
エクセルのマクロボタンが編集...
-
特定のシートだけ印刷はマクロ...
-
Access終了時にマクロまたはVBA...
-
マクロが登録できません
-
access2010 コマンドまたはアク...
-
シート保護を掛けたまま並べ替...
-
アクセス:検索フォームボタンに...
-
マクロとモジュールの違いを教...
-
AccessでExcelファイルを印刷
-
ExcelのVBAでDisplayalertsで警...
-
Excel起動時に画面表示縮小を自...
-
マクロ 戻るボタンを押したらシ...
-
今日の日付の範囲を指定して印...
-
private sub にしたらマクロが...
-
エクセルのマクロ
-
アクセスの更新クエリをフォームで
-
アクセス起動時にVBAを実行させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
エクセルのマクロボタンが編集...
-
Access終了時にマクロまたはVBA...
-
access2010 コマンドまたはアク...
-
エクセルVBAで、ボタンの文字を...
-
マクロが登録できません
-
シート保護を掛けたまま並べ替...
-
プロシージャが大きすぎます!
-
今日の日付の範囲を指定して印...
-
エクセル VBA SendKeys ループ...
-
AccessでExcelファイルを印刷
-
InputBox内の表示について
-
マクロ 戻るボタンを押したらシ...
-
ExcelのVBAでDisplayalertsで警...
-
マクロとモジュールの違いを教...
-
ExcelVBAで右クリックメニュー...
-
特定のシートだけ印刷はマクロ...
-
オートシェイプの黄色いハンド...
-
アクセスのマクロについて
おすすめ情報