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

Access2010でWORDのブックマークへの差込を実行するVBAを組み、うまく作動しました
ところが、「WORDで特定文書の名前で保存する構文をいれ、別名保存がうまく終わっている」にも拘わらず、必ず”未保存の文書1を保存しますか?”とWORDが必ず聞いてきます。これを回避するにはどのようにしたらよろしいでしょうか?

ACCESS2010のVBAは下記のとおり組んでいます
'Word文書を保存する箇所
WordApp.Application.ActiveDocument.SaveAs FileName:=VARIABLE.doc, FileFormat:=1
'Wordを終了する箇所(上記保存のすぐ後に書いています)
WordApp.Application.ActiveDocument.Close
WordApp.Quit
Set WordApp = Nothing
Set doc = Nothing

A 回答 (2件)

段々と怪しさ度が増してきているような気がしますけど(気のせい?)


もしかしたら、終了時の問題では無くてその前の処理で
Word のオブジェクトの扱い方に問題があるのかもしれません。

>WordApp.Application.ActiveDocument.SaveAs FileName:=WName, FileFormat:=1
のあたりで、F9 で一旦止めてからタスクマネージャでプロセスを見た時に
WinWord.exe が複数立ち上がっていませんか?
Wordの解説が見つからなかったので、Excel でのお話ですが
http://homepage1.nifty.com/rucio/main/technique/ …
Wordに読み替えてみてください。
もしも、WinWordが複数立ち上がっていたのなら
どこかで扱い方を間違えているのでしょうから
コードの最初の方(・・・Createobject("Word.Application"・・とかかな?)の 辺りで
F9 でブレークポイントを設定し、ステップ実行しつつ
タスクマネージャで新たなWinWord.EXE が立ち上がってこないか確認してみては?
最初は一個しかないものが二個になった時の処理行が問題だということになります。
かなり妄想で回答していますので全く役立たずかも、ご参考までに。

それとももしかして、これも関係してくる?
Word を終了するたびに全文書対象のテンプレート Normal.dot または Normal.dotm への変更を保存するかどうかを確認するメッセージが表示される
http://support.microsoft.com/kb/291352/ja
あまり惑わすような珍怪答をしてはマズイので、私はこの辺で消えます。ごめんなさいね。
    • good
    • 0
この回答へのお礼

おかげさまで解決しました!
COM Add-Inの一部が引き起こしていたようです
丁寧に教えていただき、感謝しております

お礼日時:2012/09/11 10:43

前回は拙い回答ですみませんでした。


今回のもかなり怪しいのですが・・
文書1 ということは新規のドキュメントの暫定的な名前ですよね。
それとも、文書1というファイルに対して変更を加え、別名保存しているのでしょうか?
コードを全て提示してもらわないと回答は難しいかと思います。
(私には分からないかも知れません)
とりあえず、『臭いものに蓋』式の良くない対処法
WordApp.Quit を WordApp.Quit Savechanges:=false
なら閉じること自体は出来そう?です。

この回答への補足

先般来、いろいろとご教示いただきありがとうございます
おかげさまで、WordApp.Quit Savechanges:=falseにしたところ、メッセージはでなくなり無事解決しました。

ところが、一難去ってまた一難で、文書は正常に別ファイル名で保存でき、WORDも無事終了したにもかかわらず、[WORDはこの文書を保存できませんでした。別の箇所で使用されています]というメッセージが出ます。英語版OFFICE2010を使用していますので正確には[Word cannot save this file because it is already open elsewhere. (c:\users\...\Templates\normal.dotm]という表示です。この表示をなくす方法がありましたら、教えていただけませんでしょうか?
保存の箇所は下記のとおり記載しています

'文書を保存する。
WName = ”AAA" & Me.sashikomi & ".doc"
WordApp.Application.ActiveDocument.SaveAs FileName:=WName, FileFormat:=1
'Wordを終了する。
WordApp.Application.ActiveDocument.Close
WordApp.Quit Savechanges:=False
Set WordApp = Nothing
Set doc = Nothing

補足日時:2012/09/10 13:21
    • good
    • 0

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