Microsoft 製品に組み込まれている Visual Basic の実装。
Word2024のプロセスの違いについて
Word2024をスタートメニューから起動したWordプロセス(A)と、VBS等でCreateObject("Word.Application")によって起動したWordプロセス(B)で違いがあるようです。
例えば、VBAでActiveDocument.Closeが記載された関数xがあるとします。
Aで起動したプロセスの場合、開いた文書を変更して関数Xを動かすと「・・・変更を保存しますか?」のダイアログが表示される。
Bで起動したプロセスの場合、開いた文書を変更して関数Xを動かすと何も表示されずに強制上書きで終了する。
この場合、ActiveDocument.CloseにwdPromptToSaveChanges等のオプションを入れれば良いと思いますが、AとBで挙動が違うというのが気になっております。
どうやら、Aで起動するとApplication.DisplayAlertsがwdAlertsMessageBoxとなっている。
一方、Bで起動するとApplication.DisplayAlertsがwdAlertsNoneとなっている。
この設定によって、挙動が変わるようです。
どうやら他にもAとBの起動方法によって設定が変わっているようなのですが、他にどのような設定が違うのか記載が見当たりませんでした。
そのため、Bで起動したWordでは、何の設定が違うの分からないのでVBAで作成したプログラムを実行すると場合によっては違う動作をしてしまいそうな気がします。
また、Wordプロセスが存在しない状態で、BによりWordプロセスを起動してBのプロセスが存在しているままAの方法でWord文書を開くと既存のプロセスにアタッチされてしまうため、全てBと同じ設定で開かれてしまいます。
尚、初めにAの方法でWordプロセスを発生させてから、GetObject等でWord文書を開けば、Aと同じ設定で開きます。
皆様、このような仕様を把握して、CreateObjectや.NetのNew Word.Application等を使用しているのでしょうか?