dポイントプレゼントキャンペーン実施中!

Wordファイルを開いて内容に変更を加えて閉じるボタンXをクリックして、変更内容を保存しない処置で強制終了したい。
Wordファイルを閉じると「”ファイル名”に対する変更を保存しますか」のメッセージが表示されます。このメッセージを表示せずVBA操作にて変更内容を保存せずWordファイルを閉じたい。
なぜこのようにしたいかといいますと、Wordで操作の練習用ファイルを作成して生徒さんに文字入力や切り取り等の操作を行ってもらった後、再度同じ内容で使用したいため、変更を保存せずファイルを強制的に閉じたい。

A 回答 (2件)

練習用ファイルのみでのVBA処理ですよね。


そうだとしたら、以下のマクロを登録してみて。

VBEditorを開き、プロジェクト名が練習用ファイルとなっている
ThisDocumentのモジュールを開きます。
ここに以下のマクロを登録します。

Private Sub Document_Close()
 ThisDocument.Saved = True
End Sub

VBEditorで[ Ctrl+S ]キーなどで上書きします。
本文に戻り、何か追加したり削除したりして変更状態にします。
閉じるボタンを押して、Wordを閉じます。
このマクロが実行されると、変更内容を保存しないで閉じます。
https://msdn.microsoft.com/ja-jp/VBA/word-vba/ar …

No.1さんの回答にあるマクロのような難しいことはしていません。
これでも閉じたときに開いた直後のまま強制終了されます。
次回開いたときには元の状態のままだと思います。
    • good
    • 1
この回答へのお礼

enunokokoroさん・・・回答ありがとうございます。
大変シンプルで、動作内容も私の考えどうりでした。
早速使わさせていただきます。

お礼日時:2018/03/02 18:23

こんにちは。



VBAの処理ですが、このようにします。
まず、VBEditor 画面から、Class を挿入します。
つぎに、その画面に、
'---------------------------------
Public WithEvents wdApp As Word.Application
Private Sub wdApp_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
Doc.Saved = True
End Sub
Private Sub wdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Doc.Saved = True
SaveAsUI = False
End Sub
Private Sub wdApp_Quit()
ThisDocument.Saved = True
End Sub
'//
を貼り付けます。
つぎに、ThisDocuement をクリックして、
Private myClass As Class1
Private Sub Document_Open()
 Set myClass = New Class1
 Set myClass.wdApp = Word.Application
End Sub

Sub cutOffInstance()
'保存する時は、手動でこのマクロを実行して、マクロ設定をフリーにます。
Set myClass = Nothing
MsgBox "ThisDocument can be saved.", vbInformation
End Sub
'//
なお、オプション-セキュリティセンターの信頼できる場所に、このファイルが置いてあることを条件として、.doc 等、マクロ付きのドキュメントとして保管してください。
「Word2010で閉じるボタン押下後の操」の回答画像1
    • good
    • 0
この回答へのお礼

早速回答いただき Windfallerさんありがとうございます。
動作確認させていただきました・・・私の思い道理の動作で感激しました。
少し設定内容が難しすぎて今後の勉強の対象とさせていただきます。

お礼日時:2018/03/02 18:23

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