プロが教えるわが家の防犯対策術!

Access2010を使用しています。
フォームにボタンを設置し、
そのボタンをクリックすると
「WORD」というテーブル書出しクエリが実行されて、
その実行結果を
「form.dotx」というWordファイルに差込みしたいと思っています。

Private Sub コマンド39_Click()
DoCmd.OpenQuery "WORD"

Dim oDoc As Object
Set oDoc = GetObject("\\XXX\XXX\form.dotx")
oDoc.Application.Visible = True

End Sub

上記のようにマクロを書いてみたんですが
実行すると
WORDファイルを開く前のメッセージボックス
”この文書を開くと、次のSQLコマンドが実行されます”
がウィンドウの最背面に表示されてしまい、
Accessほかにひらいているものをひとつひとつ最小化すると
やっとそのメッセージボックスが表示されるような状態です。

Wordのレジストリをいじって
このメッセージボックスを表示させない方法もあるようですが
http://free-style.mkstyle.net/web/pc/sql.html
社内で共有して使うものなので
できればレジストリを操作するようなことはしたくありません。

マクロを実行したら
Wordを開く際のメッセージボックスが最前面に表示されるような方法は
あるのでしょうか?

ご教授お願いいたします!

A 回答 (1件)

VBAでレジストリを操作する方法もあるのですが、それはやめておきます。

ただ、多くのソフトウェアは、レジストリを操作しているのですが、他のPCで、作ったままのVBAでは、アンチウィルスに引っかかてしまいます。

今回は、私の場合、OSの関係か、そのコードで再現はできなかったのですが、現象は理解できます。

Dim fn As String '一応、念の為にファイル名を別書きにしました。
fn = "\\XXX\XXX\form.dotx"
CreateObject("Wscript.Shell").Run fn

こんな風にすれば、SQLは生きた状態で、Wordは前面で開くはずです。
Word自体を前面に持ってくる方法もありますが、とりあえず、これで試してみてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!

すごい!できましたー!!!!
うれしいです!いろんなサイトを参考に色々やっていたんですが
全然うまくいかなくて・・・
一発で解決してとてもうれしかったです!

大変ありがとうございました!

お礼日時:2012/10/23 13:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A