質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

3705閲覧

別のマクロファイルを開くとマクロが止まる

teru1556

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/05/12 10:30

前提・実現したいこと

既存作成されている複数のマクロファイルをそれぞれ実行していく、
統合的なマクロを作成しようとしております。

その中で特定のマクロファイルを開くとフォーカス?がそちらのマクロに行ってしまい、
元々動かしていたマクロが止まってしまいます。

VBEで試してみてもそのマクロファイルを開いた段階でそちらのモジュールが表示され、
そちらのマクロが実行される事なく止まってしまいます。

本やネットで調べていますが解決できません。

特定のマクロファイルは開示できるものでないので記載が出来ません。
こうした事象が発生する場合、どういった要因がありますでしょうか。

乱暴な質問で恐縮ですが、
ケースをお伺い出来ればと存じます。

よろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージは発生しておりません。

該当のソースコード

元ファイルの該当箇所のコードです。

Sub 元ファイルのマクロを実行()

Workbooks.Open ****.xlsm ‘対象マクロファイルを開く Application.Calculation = xlManual ‘対象マクロファイルの計算方法の設定を手動にする

Application.Run "'" & ****.xlsm & "'!Module1.macro1 " ‘対象マクロファイルのモジュール1の該当マクロを実行

MsgBox "マクロ実行完了"

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

実際やるかは別として、複数モジュールに同じサブプロシージャー名ある場合はモジュール名いりますね。
(興味本位で実験しました。)

VBA

1Sub test01() 2 3 Dim Wb As Workbook 4 Set Wb = Workbooks.Open("d:*****.xlsm")'対象ファイル 5 6 Wb.Activate 7 Application.Calculation = xlCalculationManual 8 9 Dim strMacro As String 10 strMacro = "!Module1.XXXXXX"      ’対象マクロ 11 Call Application.Run(Wb.Name & strMacro) 12 13 Wb.Activate 14 Application.Calculation = xlCalculationAutomatic 15 16 MsgBox Wb.Name & "!" & strMacro & "実行しました" 17 18End Sub

投稿2020/05/13 08:26

sinzou

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teru1556

2020/05/16 22:19

ご回答ありがとうございます。 ご提示のコードで実行するとうまくいきました。 シングルクォーテーションが余分だったのでしょうか… ありがとうございました!
guest

0

https://excelwork.info/excel/runmethod/
https://excel-ubara.com/excelvba1/EXCELVBA427.html

上記のサイトなどを見ていると、モジュール名は省略しているようです。

つまり、「ブック名!プロシージャー名」となるようです。
また、ブックを開いている場合には、パス名をシングルクォーテーションで囲まなくても
いいようなことが書いてありますね。

ですので、

VBA

1Application.Run "****.xlsm!macro1"

のようにしてみてはいかがでしょうか?

投稿2020/05/13 06:54

autumn_nsn

総合スコア335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teru1556

2020/05/16 22:20

ご回答ありがとうございます。 シングルクォーテーションが余分だったようです。 不得手な質問にも関わらず、要点をシンプルに回答頂き本当に助かりました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問