Home » Access VBA » Access VBAでWordを終了する

Access VBAでWordを終了する

動作検証バージョン:Windows 11 Home + 64bit Access & Word バージョン 2505(ビルド18827.20128クイック実行)

「access vba word 終了」
「accessvba wordを終了する」
といった検索が行われていました。

Access VBAで、Wordを終了するにはどのようなコードを書けばいいのかを調べていらしたのでしょう。

[スポンサードリンク]

Wordを終了するサンプルプロシージャ

以下のSubプロシージャを実行してください。

Sub Wordを起動して終了する()

 Const wdWindowStateMinimize = 2
 Const wdWindowStateNormal = 0
 
 With CreateObject(Class:="Word.Application") 
  .Visible = True
  .Documents.Add
  .ActiveWindow.WindowState = wdWindowStateMinimize
  .ActiveWindow.WindowState = wdWindowStateNormal  
  Stop
 
  .Quit 
 End With

End Sub

Wordが起動して、Stopステートメントで一旦中断します。

 With CreateObject(Class:="Word.Application") 
  .Visible = True
  .Documents.Add
  .ActiveWindow.WindowState = wdWindowStateMinimize
  .ActiveWindow.WindowState = wdWindowStateNormal  
  Stop

その後ショートカットキー[F5]などで再度実行すると、Wordが終了します。

Word.Application.Quitメソッドを呼び出せば、Wordが終了するということです。
Excel VBAでWord文書を閉じるコードをご紹介する記事の中で、Word.Application.Quitメソッドについても触れています。Access VBAからであっても当然同じです。

サンプルプロシージャの補足

上記のSubプロシージャでは、Word.Application.Quit以外のコードも書いてあるので補足しておきます。

実際には、以下のコードだけで、Wordが起動して、Stopステートメントで中断して、終了する様子を観察できます。

 With CreateObject(Class:="Word.Application") 
  .Visible = True
  .Documents.Add  
  Stop
 
  .Quit 
 End With

ですが、

 With CreateObject(Class:="Word.Application") 
  .Visible = True
  .Documents.Add

だけでは、WordのウィンドウがAccess等のウィンドウに隠れてしまい、観察し辛いのです。
それを改善するために、Wordのウィンドウを一旦最小化して通常の状態に戻す、

  .ActiveWindow.WindowState = wdWindowStateMinimize
  .ActiveWindow.WindowState = wdWindowStateNormal

を追加しています。
Excel VBAの記事でご紹介している手法です。

この部分を定数を使ったコードにするために、事前に定数を定義しています。

 Const wdWindowStateMinimize = 2
 Const wdWindowStateNormal = 0

[スポンサードリンク]

Home » Access VBA » Access VBAでWordを終了する

「Access VBA」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.