2017-01-09 2 views
0

ここには単純な解決策がありますが、コーダーではないと思っています。解決方法はわかりません。マクロを使用して1つの文書を閉じるときにWordが消える

MS Wordでは、送信、スキップ、または破棄できるVBAユーザーフォームがあります。現在の問題は「破棄」ボタンにあります。その目的は、 'ThisDocument.Close'を使用してフォームを完全に終了して、何も誤ってレビューのために提出しないようにすることです。ただし、ユーザーがこのフォームを放棄するためにこのボタンをクリックすると、開かれている可能性のある他のWord文書もすべて非表示に見えます。タスクバーからWordが消えます。ドキュメントを閉じることはできません。なぜなら、Wordを開いたときには、[表示]> [Windowsの切り替え]のリボンの下にまだ開いているからです。

次は私のコードです:

Private Sub CancelBtn_Click() 

Dim SureCancel As Integer 

SureCancel = MsgBox("Are you sure you want to abandon this sheet? _ 
Changes will not be saved!", vbYesNo) 

If SureCancel = vbYes Then 
    ThisDocument.Close wdDoNotSaveChanges 
End If 

End Sub 

私も無駄にEnd IfApplication.Visible = Trueを使用しようとしました。

大変助かりました。

+1

フォームが開いている間に、フォームを含む文書を閉じることになります。ドキュメントを閉じる前にフォームを隠すようにしてください。 –

+0

アイデアありがとう。残念ながら、それは動作しませんでした。私はそれを回避する方法を見つけました... –

+0

文書を閉じる前に、 'If'の中に' Application.Visible = True'を入れました。今私がしなければならないのは、何か他のものが開いているときにだけそれを行う方法を理解することです。私がそれを解決したら、これを答えで更新します。 –

答えて

1

私はコードにマイナーな追加をいくつか加えました。これは今、まさに私が欲しいものです。何かがWordで開いており、それがtrueの場合にのみ、アプリケーションが再度表示されない、それ以外の場合は、終了するかどうか

Private Sub CancelBtn_Click() 

Dim SureCancel As Integer 

SureCancel = MsgBox("Are you sure you want to abandon this sheet? _ 
Changes will not be saved!", vbYesNo) 

If SureCancel = vbYes Then 
     If Documents.Count > 1 Then 
      Application.Visible = True 
     End If 
    ThisDocument.Close wdDoNotSaveChanges 
End If 

End Sub 

If Documents.Count > 1句をチェックします。

関連する問題