トップ回答者
新しいプロセスでWordファイルを起動したい。

質問
-
VB2008で開発しています。
Wordが起動している状態で、Wordファイルをエクスプローラから開くと、
同一プロセス内で複数のWordファイルが開かれると思います。それをシステムから起動する場合に限り、
別プロセスで起動したいと思っております。
※既にWordが起動している場合であれば、
2つ目のWordのプロセスが立ち上がるというイメージです。新しく別プロセスで開かれたWordファイルは、
特に管理する必要はないので、開いたあとは勝手に動いていて
もらえれば良いと思っております。
※VB2008で作成したシステムが終了したときに、
Wordファイルに影響しないようにしたいしたいのです。
逆にWordファイルを閉じたときにも、VB2008で作成したシステムに
影響を与えたくないです。
Process.Start(ファイルのパス)で起動すると、
既に起動されているWordプロセスで、起動されることを確認しております。
そこで「Microsoft Word 12.0 Object Library」を参照設定して
以下のようにプログラムしました。---------------------------------------------------------------------------
Dim wdApp As New Word.Application
Dim wdDocs As Word.Documents
wdDocs = wdApp.DocumentswdApp.Visible = True
Dim wdDoc As Word.Document = wdDocs.Open("C:\abc.docx")System.Runtime.InteropServices.Marshal.ReleaseComObject(wdDoc)
System.Runtime.InteropServices.Marshal.ReleaseComObject(wdDocs)
System.Runtime.InteropServices.Marshal.ReleaseComObject(wdApp)
---------------------------------------------------------------------------一見正しく動作しているように思えるのですが、
このようなプログラムでお互いに影響を与えないプログラムと
なるのでしょうか?もしよろしければ、教えてください。
よろしくお願いいたします。
回答
-
「C:\Program Files\Microsoft Office\Office12>WINWORD /n」
を実行すると確かに別インスタンスが起動されてるのですが、
「C:\Program Files\Microsoft Office\Office12>WINWORD /n c:\abc.docx」
では、同じインスタンスで起動されてしまいます
タスクマネージャーを見ながら実行してみたのですが、確かに「WINWORD.EXE /n 文書名.doc」だと、
一瞬 WINWORD.EXE が立ち上がるものの、また1つのインスタンスに戻りますね。失礼しました。
で、試しに /w オプションを使って「WINWORD.EXE /w 文書名.doc」としてみたところ、
こちらは別のインスタンスで起動して、なおかつ目指すファイルをオープンできているように思います。- 回答としてマーク リオ 2009年12月9日 14:56
すべての返信
-
新しいインスタンスで Word を起動するだけでいいのであれば、Process.Start で WINWORD.EXE を開始すればいいのではないでしょうか。
コマンドライン スイッチを利用して「WINWORD.EXE /n 文書名.doc」とすれば新しいインスタンスを開始して文書を開きますので、
Process.Start でこれと同じことをすればできそうに思います。(確かめてはいないです。
スタートアップ コマンド ライン スイッチを使用して Word 2003、Word 2002、および Word 2000 を起動する方法
http://support.microsoft.com/kb/210565/ja -
totojoさん
ありがとうございます。
試してみました。
しかし、別なインスタンスでは起動されなかったです。
Wordのバージョンが2007であることが、
いけないのかと思い、調べてみたのですが、
同じように書かれていますね。
Word のコマンド ライン スイッチ - Word - Microsoft Office Online
http://office.microsoft.com/ja-jp/word/HP101640101041.aspx
「C:\Program Files\Microsoft Office\Office12>WINWORD /n」
を実行すると確かに別インスタンスが起動されてるのですが、
「C:\Program Files\Microsoft Office\Office12>WINWORD /n c:\abc.docx」
では、同じインスタンスで起動されてしまいます。
私の手順が間違っているのでしょうか?
もしよろしければ、教えてください。
よろしくお願いいたします。 -
「C:\Program Files\Microsoft Office\Office12>WINWORD /n」
を実行すると確かに別インスタンスが起動されてるのですが、
「C:\Program Files\Microsoft Office\Office12>WINWORD /n c:\abc.docx」
では、同じインスタンスで起動されてしまいます
タスクマネージャーを見ながら実行してみたのですが、確かに「WINWORD.EXE /n 文書名.doc」だと、
一瞬 WINWORD.EXE が立ち上がるものの、また1つのインスタンスに戻りますね。失礼しました。
で、試しに /w オプションを使って「WINWORD.EXE /w 文書名.doc」としてみたところ、
こちらは別のインスタンスで起動して、なおかつ目指すファイルをオープンできているように思います。- 回答としてマーク リオ 2009年12月9日 14:56