Плавающий объект Excel VBA

Плавающий объект Excel VBA

Облазил все форумы, но не смог решить свою проблему. Хочу создать пользовательскую панель кнопок с помощью фигур, а затем закрепить ее в нижней части Excel. Это сложно, потому что у каждого пользователя свой монитор и разрешение экрана. После некоторых исследований выяснилось, что я могу использовать application.height и object.top, чтобы найти панель кнопок. Проблема в том, что при прокрутке страницы вверх и вниз мне нужно, чтобы макрос запускался при прокрутке. Возможно ли это вообще?

решение1

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

Чтобы добавить форму, откройте окно кода, щелкните правой кнопкой мыши на вашем VBAProject и выберитеВставлять...=>Пользовательская форма. Вы можете использовать Application.Width, Application.Height, Application.Topи , Application.Leftчтобы определить, где на экране у пользователя находится окно Excel, а затем использовать UserForm1.Widthи т. д. для перемещения формы по мере необходимости, чтобы она оставалась там, где вам нужно (замените UserForm1на то, как вы называете объект формы).

Вы можете открыть форму в определенном месте на экране, но пользователи могут перемещать ее (я раньше не пробовал фиксировать положение формы). Вам придется определить, какие события отслеживать, чтобы изменить положение формы, если вы этого захотите. Просто помните, что слишком частый или слишком частый мониторинг приведет к общему снижению производительности для ваших пользователей.

Связанный контент