FC2ブログ

ワード文書(*.doc)が開いているかチェックについて

ワード文書(*.doc)が開いているかチェック

ワード文書(*.doc)が開いているかのチェック方法についてです。

ワード文書(*.doc)などを扱う場合、プログラム終了時に他の文書が開いているか確認し、開いている文書が
無ければ、ワード自体を終了させる必要があります。これをしないと、ワード文書を閉じた後も、
ワード(winword.exe)というアプリケーションだけが起動したままになってしまいます。
このあたり、Excelなどでも一緒です。(ExcelとWord位しかやったことが無いのでわかりませんが。。。)

以下のサンプルコードは、同じインスタンス内でのみ開いている文書が無いか確認しています。
ただし、同じインスタンス内でのみ確認すれば問題ないと思います。
・Excelを起動して、同じ画面から他の文書を開いた場合、同じインスタンス内で複数の文書が開いている
 ことになります。
・Excelを起動している状態で、スタートメニューやプログラムから新たにワードを立ち上げ文書を開いた場合、
 別インスタンスで立ち上がります。
 (タスクマネージャで確認すると、winword.exeが複数起動していることが確認できます。)


'==============================================================================
'
'ワード文書が開いているかチェック関連
''
'==============================================================================




'---------------------------------------------------
' 利用方法(以下必要に応じてプロシージャに貼り付けて下さい。)
'---------------------------------------------------

'------------------------------------------------------------
' 事前に参照設定を行なってください。
' 【参照設定方法】
' [プロジェクト]-[参照設定]-[MicroSoft Word 11.0 Object Library]にチェックを入れる。
' (11.0はバージョンにより異なります。ex)11.0 ⇒ Word2003, 9.0 ⇒ Word2000))
'------------------------------------------------------------

''==============================================================================
'
' ワード文書が開いているかチェック
'
'==============================================================================

  Dim wWD     As Word.Application
  Dim wDoc    As Word.Document
  Dim wWkDoc  As Word.Document
  Dim bOpenFlg As Boolean
  Dim iRet     As Integer
  Dim sFileName As String


  '---ワードオブジェクト作成
    Set wWD = CreateObject("Word.Application")
     wWD.Visible = True '←ワードが表示されない場合


  '---オープン
    Set wDoc = wWD.Documents.Open(App.Path & "\" & "サンプル.doc")


  '---他のワード文書の開いているかチェック
    bOpenFlg = False
    For Each wDoc In wWD.Documents
      sFileName = sFileName & wDoc.Name & vbCrLf
      bOpenFlg = True
    Next


  '---ワード終了(他のワード文書が開いていない場合)
     If Not bOpenFlg Then
      MsgBox "開いているワード文書が無いので、ワードを終了します。"
      wWD.Quit
    Else
      MsgBox "開いているワード文書があるので、ワードを終了しません。" & vbCrLf & _
            "------------------------------" & vbCrLf & _
            "ワード文書名:" & sFileName
    End If


  '---ワードオブジェクト開放
    Set wDoc = Nothing
    Set wDoc = Nothing
    Set wWD = Nothing



【宣伝・・・(*´ω`)】

タイトルロゴ3

 システム葵では、個人様向けでも企業様向けでも、パソコン修理から、パソコン設定、パソコンの使い方、LAN環境構築、ソフトウェア開発まで、様々な実績がありますので、困ったことがあれば、お気軽にご相談下さい。
関連記事

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

検索フォーム
最新記事
カテゴリ
全記事表示リンク

全ての記事を表示する

最新コメント
プロフィール

ITLife

Author:ITLife
システム葵新井聡太です。
東京都東村山市に生まれ、ここで育ち、ここで結婚し、システムエンジニア一筋で十数年やってきました。
ここでは主に、パソコンを中心にITに関わることを備忘録として残していきたいと思います。
少しでも来ていただいた方のお役に立てたら幸いです。
m(_ _)m

p.s
ここで紹介している内容は一例です。すべては、自己責任でお願いします。

カレンダー
05 | 2019/06 | 07
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
訪問数
月別アーカイブ
リンク