Страница 1 из 2
Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 04 дек 2008, 20:05
DASh
Доброго времени суток!
Задача: Есть форма "кнопка", кототая вызывает UserForm
Требуется: код, который решает 2 проблемы:
1) Отображение этой формы ТОЛЬКО на предопределенных листах Книги;
2) Местоположение формы НЕ менялось от горизонтальной и/или вертикальной прокрутки активного листа.
Заранее спасибо, может эта тема подымалась и раньше, но нет возможности просмотреть все топики
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 04 дек 2008, 20:58
heisnod
Окно-закрепить области=)
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 04 дек 2008, 21:21
DASh
спасибо, но этот вариант проходит если на листе есть закрепление, а требуется метод на уровне VB
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 05 дек 2008, 01:44
Naeel Maqsudov
1)
Форма так или иначе запускается командой типа UserForm1.Show
Используйте вместо этого проверку текущего выделения и листа:
Код: Выделить всё
If TypeName(Selection) = "Range" And InStr("*Лист1*Лист6*Лист3*", "*" & ActiveSheet.Name & "*") > 0 Then
UserForm1.Show
End If
Также такую проверку можно вставить в обработчие события UserForm_Activate(), и закрывать форму, если выбран неподходящий лист. Но будет мигание.
К сожалению события типа BeforeActivate у формы нет.
2)
Не понял вопроса.
Если форма модальная (а она модальная по умолчанию), то прокрутку вы все равно сделать не сможете. А если форма немодальная (открыта по UserForm1.Show 0), то при прокрутке итак положение формы не меняется.
Если имелась в виду кнопка на табочем листе, то это проблема. Тут либо закрепление областей, либо никак. В формате обекта есть конечно пункт "Привязка объекта к фону", но опция "Не перемещать и не изменять размеры" к прокрутке не имеет никакого отношения.
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 05 дек 2008, 09:08
heisnod
Видимо тут имелась ввиду именно кнопка. Я и сам до конца вопрос не понял.
Вообще задача реальная, но сложная. Нужно через винапи определять был ли скроллинг, куда и на сколько и соответственно менять координаты кнопки. Но это только с командбаттон, а не с формой кнопки.
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 05 дек 2008, 09:20
Naeel Maqsudov
Вообще, я на практике не знаю ниодного случая, когда кнопку, которая посстоянно бывает нужна, нельзя вынести в непрокручиваемую область.
Для этого, кстати, и придуманы были панели инструментов. (Тулбары, по ихнему)

Ну да не об этом речь.
Если уж речь зашла о winapi, то в данном случае более грамотно было бы создать оконный объект, дочерний по отношению к окну приложения Excel. Он бы тогда от скроллинга рабочего листа бы не зависел вообще. Висел бы себе в середине мешая обзору
Ну не понимаю я, зачем это нужно.
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 05 дек 2008, 10:49
heisnod
Идея была, наверное, в том, что просматриваешь большой список и в любой момент можешь клацрнуть по кнопке) Но тулбар засорять не хочется)
Если уж речь зашла о winapi, то в данном случае более грамотно было бы создать оконный объект, дочерний по отношению к окну приложения Excel.
Будьте любезны, напишите код.
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 05 дек 2008, 21:38
DASh
спасибо всем!
1) Да проще, создать кнопки на определенных листах и связать с вызовом UserForm, а не через код VBA;
2)И проще, наверное, создать кнопку в шапке листа и закрепить области
Идея была, наверное, в том, что просматриваешь большой список и в любой момент можешь клацрнуть по кнопке) Но тулбар засорять не хочется)
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 05 дек 2008, 21:48
DASh
Да и еще вопрос:
Разве можно в пользовательскую ТулБар добавить не стандартный инструмент, а, допустим форму "Кнопка", которая сразу на панели вызывала бы макрос?
Извиняюсь за наивные, и может быть некорректные вопросы, но на данный момент Инет - единственный источник информации
Re: Форма "кнопка" - постоянное месторасположение на определенных листах
Добавлено: 06 дек 2008, 18:56
heisnod
И в нем этой информации по данному вопросу очень много.