2017-03-16 12 views
0

ショートカットCTRL + S(意図的)に割り当てられたマクロを持っていますが、これはファイルを保存する前にいくつか実行されますが、このショートカットは開いている間に。Excel VBA - アクティブワークブックがこのワークブックの場合

Activeworkbook = ThisWorkbookであるかどうかを直接テストできますか。他のブックを使用しているときに無視されますか?

Sub ShowHiddenSheets() 
If ThisWorkbook = ActiveWorkbook Then 
    `code stuff 
End If 
Exit Sub 
+1

たぶん何かを? 'If​​ ThisWorkbook.Fullname = ActiveWorkbook.Fullname' – tigeravatar

+0

FYI - マクロを' CTRL + S'に "バインド"するのではなく、['Workbook BeforeSave()'](https://msdn.microsoft.com/en- us/library/office/ff840057.aspx)イベントが発生します。 'CTRL + S 'はワークブックが保存される前に必ずしも実行されないかもしれないので、これを使うほうがいいかもしれません。このイベントを使用すると、コードが保存される前に実行されることがほとんど保証されます。 – BruceWayne

+0

@ BruceWayne @BruceWayneが「BeforeSave」の代わりにCTRL + Sにバインドされた理由は、このファイルが、保存する前にファイル内の何かを変更するExcelのアドインを持つ他の人によって使用されていることです。しかし、それは 'BeforeSave'を使用することができなくなり、回避策になります。 –

答えて

0

ではなく任意のチェックを行って、必要なワークブックにこれを追加:あなたのモジュール、リファレンスワット以内に、その後

dim w as Workbook 

set w = ThisWorkbook 

。たとえば :

with w.sheets("Sheets1") 

これは、マクロを確保するには、その特定のワークブックで実行され、他の人ではない。このような

関連する問題