2017-10-23 10 views
1

私は別のブック(test.xlsm)からソースを取得するマクロにuserformを持っています。だから私はそれを表示せずに、このブックを開くために、このコードを使用しました。マクロの実行、ユーザーフォームがアップ示され、バックグラウンドでもtest.xlsmので ユーザーフォームマクロVBAでXにアクションを追加

Userform

Const fromFile = "C:\Users\excel\test.xlsm" 
Dim srcBook As Workbook 
Set srcBook = 
Application.Workbooks.Open("C:\Users\excel\test.xlsm", _ 
UpdateLinks:=False, _ 
ReadOnly:=True, _ 
AddToMRU:=False) 

。ただし、右上隅に "X"記号を使用してユーザーフォームを閉じるユーザーがいます。ソース(text.xlsm)が正しく閉じられなかったためにエラーが発生することがあります。

ユーザフォームの「X」ボタンをクリックした場合にアクションを追加する方法があるのでしょうか?だから私は、ユーザーが "X"ボタンをクリックした場合、バックグラウンドで実行されるtest.xlsmを閉じたいと思う。

+0

フォームは、[この](https://stackoverflow.com/q/34556520/7690982)または[この](HTTPSを参照してください。 .com/q/3511903/7690982)、ユーザーフォームが閉じられているときにブックを適切に閉じます。 – danieltakeshi

答えて

2

フォームのQueryClose - イベントを使用することができます。 // stackoverflowの:あなたはtrueCancelを設定すると、しますない近い

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
    Workbooks("test.xlsm").close 
End Sub 
+0

ありがとうございます!それは完璧だった! –

0

これは、閉じるように要求されたときに行動できるようにするには、ユーザーフォームに必要なものです:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
    Debug.Print "You Exited" 
End Sub 

X上のユーザーがクリックしたらあなたは「あなたが終了」に印刷見るでしょう即時ウィンドウ。

関連する問題