Программное перемещение панелей инструментов по вертикали
|
|
Четверг, 29 Октября 2015 г. 18:34
+ в цитатник
Здравствуйте!
Есть пользовательское меню и две панели инструментов.
Меню закреплено сверху.
Под ним – последовательно первая и вторая панели инструментов.
Возник вопрос: возможно ли программно поменять местами эти панели, если да, то как?
Присвоение новых значений свойствам CommandBar.Top результата не дает –
ошибки не возникает, но и значения не меняются.
Тогда пробую так (код под спойлером).
+ |
Dim CmdBar01 As CommandBar, _
CmdBar02 As CommandBar
Set CmdBar01 = CommandBars("Tools_T1")
Set CmdBar02 = CommandBars("Tools_T2")
' Начальное состояние пользовательского меню
CommandBars("Menu_M").Protection = msoBarNoChangeDock
CommandBars("Menu_M").Position = msoBarTop
' Начальное состояние первой панели инструментов
CmdBar01.Protection = msoBarNoProtection
CmdBar01.Position = msoBarTop
' Начальное состояние второй панели инструментов
CmdBar02.Protection = msoBarNoProtection
CmdBar02.Position = msoBarTop
' Начальные положения панелей инструментов по вертикали
Top1 = CmdBar01.Top
Top2 = CmdBar02.Top
' Открепляем панели инструментов
CmdBar01.Position = msoBarFloating
CmdBar02.Position = msoBarFloating
' Панели инструментов меняются между собой положением по вертикали
CmdBar01.Top = Top2
CmdBar02.Top = Top1
' Вторую панель инструментов переводим вверх. Встает, как и планировалось, сразу под меню.
CmdBar02.Position = msoBarTop
' Первую панель инструментов переводим вверх. ОЖИДАЛОСЬ, ЧТО ВСТАНЕТ ПОД ВТОРОЙ, НО НЕТ.
' Вытесняет вторую ниже и встает на первоначальное место, сразу под меню.
CmdBar01.Position = msoBarTop
|
Смотрю последовательно по шагам – все идет, как надо, но последний шаг перечеркивает все достижения.
Можно ли как-то это выполнить?
Именно программно. Иные способы мне известны, но пока интересует этот.
http://www.sql.ru/forum/1182411/programmnoe-peremeshhenie-paneley-instrumentov-po-vertikali
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-