0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VBAでWordを操作するときに早く知りたかった事

Posted at
'1. ReadOnly:=Trueで開く
Set WordDoc = WordApp.Documents.Open(場所,ReadOnly:=True)

理由
Excel VBAでWordファイルを操作する際、対象のドキュメントがすでに他のプロセスで開かれている場合、排他制御(ロック)がかかります。この状態では、ファイルが書き込み可能モードで開けず、以下のようなメッセージが表示されます。

スクリーンショット.png

主な原因

  • ユーザーが手動でWordを開いている。

  • VBAや他のアプリケーションが、前回の実行後にWordインスタンスを終了し損ねている(objWord.Quit が実行されていない)。

  • バックグラウンドでWordプロセスが終了せず残っている。

  • ReadOnly:=True を指定して開くことで、他プロセスによるロックの影響を受けずに読み込み専用として開ける。

  • マクロ終了時に必ず以下を実行するようにしてください。

  • objWord.Quit
    Set objWord = Nothing
    

    これにより、Wordインスタンスを確実に終了し、プロセスが残ることによるロックを回避します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?