質問するログイン新規登録
VBA

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

Q&A

解決済

2回答

2297閲覧

エクセルvbaから非同期でwordのvbaを呼び出したい

inuo55

総合スコア6

VBA

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

0グッド

0クリップ

投稿2019/08/11 13:25

0

0

エクセルvbaから非同期でwordのvbaを呼び出したいです。

WIndowsScriptHostObjectModelに参照設定し
エクセルVBAに
以下の記述をしました。

Dim obj As IWshRuntimeLibrary.WshShell
Set obj = New IWshRuntimeLibrary.WshShell
Dim ret As Long

ret = obj.Run("C:\Users\●●●\Desktop\ワードでテスト.docm")

Debug.Print "非同期かどうかの確認用"

Wordのファイルが起動するのは確認できたのですが、

ワードでテスト.docm
のTestモジュールにある、TestWordを呼び出すにはどうすればよいのでしょうか。

どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Shell関数なら非同期に実行できます。
ファイル指定やマクロ指定はコマンドラインスイッチを使用します。
Microsoft Office 製品のコマンド ライン スイッチ

/t filename
/m[macroname]

呼び出しは以下のような感じ。
Winword.exeの場所は環境に合わせて下さい。またTestWordはPublicである必要があります。

VBA

1Shell "C:\Program Files\Microsoft Office\Office12\Winword.exe /t C:\Users\●●●\Desktop\ワードでテスト.docm" /mTestWord), 1

投稿2019/08/11 15:08

編集2019/08/12 02:28
sazi

総合スコア25430

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

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

inuo55

2019/08/11 22:21

どうもありがとうございます。 shell関数は Shell(pathname[,windowstyle]) のようにつかうところまでわかったのですが、 pathnameの箇所にWordのマクロを指定するのはどのような記述か悩んでおります。
sazi

2019/08/12 02:21

追記しました。
inuo55

2019/08/12 13:39

どうもありがとうございました。とても助かりました。 コマンドラインスイッチもしらなかったので勉強になりました。
guest

0

手元にすぐに試せる環境がなく、ただググっただけの情報で恐縮ですが、
エクセルからワードマクロを実行する方法を教えてください。https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13152489523
が参考になりますでしょうか。

投稿2019/08/11 14:41

segavvy

総合スコア1038

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

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

inuo55

2019/08/11 14:52

どうもありがとうございます。 GetObject の方法だと、同期処理になり、ワードのvbaが終わらないと、次に進めないので困っていました。 WshShellを使うと、ワードの処理が終わらなくても先に進めたのですが、ワードのvbaを呼び出せなくて、困っている次第です。。 調べてくださりありがとうございました。
segavvy

2019/08/11 15:01

失礼いたしました。Word.Application.Runで実行完了を待ってしまうという意味ですね。 ちょっとスマートではないのですが、Word.Application.OnTime で1秒後に実行とかすると、非同期でいけそうでしょうか。(触れる環境がなくて未確認です……) https://docs.microsoft.com/ja-jp/office/vba/api/word.application.ontime
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問