none
新しいプロセスでWordファイルを起動したい。 RRS feed

  • 質問

  • 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.Documents

            wdApp.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)
    ---------------------------------------------------------------------------

    一見正しく動作しているように思えるのですが、
    このようなプログラムでお互いに影響を与えないプログラムと
    なるのでしょうか?

    もしよろしければ、教えてください。
    よろしくお願いいたします。

    2009年12月4日 11:54

回答

  • 「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
    2009年12月9日 2:43

すべての返信

  • 新しいインスタンスで Word を起動するだけでいいのであれば、Process.Start で WINWORD.EXE を開始すればいいのではないでしょうか。
    コマンドライン スイッチを利用して「WINWORD.EXE /n 文書名.doc」とすれば新しいインスタンスを開始して文書を開きますので、
    Process.Start でこれと同じことをすればできそうに思います。(確かめてはいないです。

     スタートアップ コマンド ライン スイッチを使用して Word 2003、Word 2002、および Word 2000 を起動する方法
     http://support.microsoft.com/kb/210565/ja

    2009年12月7日 1:53
  • 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」
    では、同じインスタンスで起動されてしまいます。

    私の手順が間違っているのでしょうか?
    もしよろしければ、教えてください。

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

    2009年12月8日 12:33
  • 「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
    2009年12月9日 2:43
  • totojoさん

    ありがとうございました。

    無事別インスタンスで起動できるようになりました。

    とても助かりました。

    ありがとうございました。

    2009年12月9日 14:56