VBA ловит события «вычислить лист (shift + f9)» и «рассчитать рабочую книгу» - PullRequest
3 голосов
/ 30 ноября 2011

Я не знаю, тривиально ли это или на самом деле хакерство: возможно ли поймать события «вычисления листа (shift + f9)» и «вычисления рабочей книги» в VBA?

Я хочу скрыть некоторые процессы, которые манипулируют несколькими тысячами строк, чтобы просто отображать некоторые ключевые значения. Я вычисляю распределение, тысячи строк и хочу просто вывести процентили и некоторые характеристики, а также график вместо всех этих строк. В тот момент я думал о классической кнопке макроса, но мои пользователи увлечены стилем жизни F9 ..

Как вы думаете, я указываю на что-то интересное с тем, что я предлагаю в названии?

1 Ответ

5 голосов
/ 30 ноября 2011

Команда OnKey позволяет отключить любую клавишу или комбинацию клавиш или заставить эту клавишу делать что-то другое.

Этот макрос будет выполнен автоматически при открытии рабочей книги, содержащей его.

Sub Auto_Open()

  Application.OnKey "{F9}", "HandleF9"
  Application.OnKey "^{F9}", "HandleCtrlF9"
  Application.OnKey "+{F9}", "HandleShiftF9"

End Sub

Следующие процедуры будут выполняться вместо Calculate.

Sub HandleF9()
  Debug.Print "F9 clicked"
End Sub
Sub HandleCtrlF9()
  Debug.Print "Ctrl+F9 clicked"
End Sub
Sub HandleShiftF9()
  Debug.Print "Shift+F9 clicked"
End Sub

См. Справку OnKey для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...