2017-11-09 12 views
0

XLA AddInマクロがあり、メインメニューUserformがあります。 Activeworkbookに従ってこのメニューのユーザーフォームでブトンを有効/無効にする必要があります。VBA:Activeworkbookの変更を検出する

私の問題は、ユーザーがActiveworkbookを変更または閉じるときにUserformを更新する方法がわかりません。

UserForm_ActivateUserformを更新しています。しかし、ユーザーがActiveworkbookを閉じ、Userformをクリックすると、そのイベントは発生しません。

私は更新する必要がありますUserform次のいずれか

  • とすぐActiveworkbookが変更または閉じているよう
  • や、すぐにユーザーが届くようUserform(すなわち、彼は任意のコントロールをクリックする前に。 )。

どのように進めますか?あなたのXLAのはThisWorkbookモジュールで

答えて

1

Private WithEvents xlApp as Excel.Application 

あなたがそのようにした場合xlAppがなどWorkbookActivateやWorkbookDeactivateなどのイベント

+0

を持っていることがわかります、コードの打ち上げではないだろう、毎回ユーザーがマクロを使用しているかどうか(いくつかのフォームが開かれているかどうか)、ユーザー変更ブック?ユーザーがExcelを使用しているときに、マクロが継続的に実行されることは望ましくありません。 – Tibo

+0

私はそれがあなたが望んだと思ったのですか? WorkbookBeforeCloseイベントもあります。 –

+0

マクロは 'XLA AddIn'で、PCにインストールされています。しかし、それはユーザーがそれを必要とするとき(リボンメニューから)、それは多くのメモリを使用することができるので、起動されます...私はむしろマクロの部分をExcelで連続的に実行することはありません。ユーザーがマクロを使用していなくてもExcelを使用している場合)。私は 'Userform'を更新する方法を見つけたいと思います。 – Tibo

関連する問題