• ベストアンサー

エクセルからWordファイルをオープン

Excel VBAで、雑誌を参考に、次の様に作りました。 Function EwWordWordOpen(totoFullName As Variant)   Dim objWordApp As Word.Application   Set objWordApp = CreateObject("Word.Application")   objWordApp.Documents.Open (totoFullName)   Set objWordApp = Nothing End Function ↑の方法ですと、次の動作となります。 1回目は何もしない。 2回目以降は、「ファイルがロックされています。読取専用で開きますか」のMsgBoxが表示されて、OKを入力するとWordを読取専用で開きます。 次に4行目のOpen行を   objWordApp.Documents.Open (totoFullName), ReadOnly:=True とすると、このステートは無視される様で何も行なわれません。 正しく、Wordファイルを開く方法を教えて頂きたく、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> 1回目は何もしない。 キーボードで、Alt+Ctrl+Delキーの同時押しでタスクマネージャを 確認してもらうとわかりますが、実際には指定したWordのファイルは 非表示で展開済みになっています。 (タスクマネージャ上では「WINWORD.EXE」と表示されます) そのため、2回目以降は二重で開こうとしていることになるため、 「読み取り専用で」というMsgBoxが表示されることになります。 これ(非表示展開)を回避するためには、「Visible」プロパティを 使用します。 (最初の状態で非表示なのは、VBAでの自動処理を行う中では、  ユーザーから隠した状態の方が一般的、ということなのかと  思います) Function EwWordWordOpen(totoFullName As Variant)   Dim objWordApp As Word.Application   Set objWordApp = CreateObject("Word.Application")   objWordApp.Documents.Open (totoFullName)   objWordApp.Visible = True   '←【Wordアプリケーションを可視化】   Set objWordApp = Nothing End Function

tt246
質問者

お礼

ありがとうございます。 なるほどと思いました。早速試してみます。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

Wordは開いているけれど、見えていないだけなのではないでしょうか? >2回目以降は、「ファイルがロックされています。読取専用で開きますか」 というのが、それっぽいですね。 Openした後に  objWordApp.Visible = True でダメでしょうか? >このステートは無視される様で何も行なわれません。 それもちゃんと実行されていいると思います。 (表示されていないだけ。)

tt246
質問者

お礼

ありがとうございます。 3~4ヶ月、悩んでいました。早速試してみます。

関連するQ&A