Управление документами Word и Excel на VBA - eDrive

Управление документами Word и Excel на VBA - eDrive Управление документами Word и Excel на VBA - eDrive

edrive.narod.ru
from edrive.narod.ru More from this publisher
20.01.2015 Views

26 If CheckBox.Value = False Then дс = days мс = months надпись.Caption = "Срок: дней, месяцев, лет" Else дс = d мс = years * 12 + months надпись.Caption = "Полных дней, месяцев, лет" End If гс = years Exit Sub ошибка: дс = "": мс = "": гс = "" сообщение = "Вводите день месяц год" _ & Chr(13) & "- Конец позднее Начала" MsgBox сообщение, , "Сроки" днПоле.SetFocus End Sub Function ДнейВМесяце (m, y) ‘ Сколько дней в месяце (m) с учетом года (y) Select Case m Case 1, 3, 5, 7, 8, 10, 12 ДнейВМесяце = 31 Case 4, 6, 9, 11 ДнейВМесяце = 30 Case 2 If ВисокосныйГод (y) = True Then ДнейВМесяце = 29 _ Else ДнейВМесяце = 28 Case Else ДнейВМесяце = 0 End Select End Function Function ВисокосныйГод (y) ‘ Високосный ли год ВисокосныйГод = False If (y Mod 100) = 0 Then If (y Mod 400) = 0 Then ВисокосныйГод = True Else If (y Mod 4) = 0 Then ВисокосныйГод = True End If End Function Sub КалейдоскопКвадратовExcel () номерЦвета = 1 Лист1.Activate

27 For Each фигура In Лист1.Shapes фигура.Select Selection.Interior.ColorIndex = номерЦвета номерЦвета = номерЦвета + 1 Next фигура End Sub Программирование интерфейса пользователя Меню Меню создаются и редактируются под управлением редактора меню или с помощью процедур, размещаемых в модулях. Редактор меню представлен вкладкой Команды меню Вид .Панели инструментов .Настройка… Различают встроенные меню приложения и авторские меню пользователя. Каждому пункту авторского меню соответствует индивидуальный макрос или функция. Редактор меню позволяет удалять любой пункт меню, открыв его контекстное меню и выбрав из него Сброс или Удалить при открытом окне Настройка. При этом встроенные меню не удаляются, а скрываются. В любое меню можно добавить новый пункт через вкладку Команды меню Вид .Панели инструментов .Настройка, перетащив необходимый элемент из списка Команды в меню. Для программирования строк меню используются объекты классов CommandBars и CommandBar из библиотеки Microsoft Office. Первый из классов хранит все строки встроенных меню. Он служит инструментом использования меню приложения и создания авторских меню. Второй класс представляет все пункты конкретного меню. Он служит инструментом использования пунктов меню приложения и создания авторских пунктов. Ссылки на пункты меню определяются свойством Controls. Для отображения контекстных меню используется метод ShowPopup, а для удаления всех новых меню, не выведенных на экран, – методы Delete и Reset. Примеры Sub ВсеСтрокиМеню () For Each строкаМеню In CommandBars Debug.Print строкаМеню.Index, " ", строкаМеню.Name Next End Sub Sub ВсеПунктыМеню () For Each пункт In CommandBars ("Menu Bar").Controls список = список & пункт.Index & " " & пункт.Caption & Chr(13) Next

27<br />

For Each ф<strong>и</strong>гура In Л<strong>и</strong>ст1.Shapes<br />

ф<strong>и</strong>гура.Select<br />

Selection.Interior.ColorIndex = номерЦвета<br />

номерЦвета = номерЦвета + 1<br />

Next ф<strong>и</strong>гура<br />

End Sub<br />

Программ<strong>и</strong>рован<strong>и</strong>е <strong>и</strong>нтерфейса пользователя<br />

Меню<br />

Меню создаются <strong>и</strong> редакт<strong>и</strong>руются под управлен<strong>и</strong>ем редактора меню<br />

<strong>и</strong>л<strong>и</strong> с помощью процедур, размещаемых в модулях. Редактор меню<br />

представлен вкладкой Команды меню В<strong>и</strong>д .Панел<strong>и</strong> <strong>и</strong>нструментов<br />

.Настройка…<br />

Разл<strong>и</strong>чают встроенные меню пр<strong>и</strong>ложен<strong>и</strong>я <strong>и</strong> авторск<strong>и</strong>е меню<br />

пользователя. Каждому пункту авторского меню соответствует<br />

<strong>и</strong>нд<strong>и</strong>в<strong>и</strong>дуальный макрос <strong>и</strong>л<strong>и</strong> функц<strong>и</strong>я. Редактор меню позволяет удалять<br />

любой пункт меню, открыв его контекстное меню <strong>и</strong> выбрав <strong>и</strong>з него Сброс<br />

<strong>и</strong>л<strong>и</strong> Удал<strong>и</strong>ть пр<strong>и</strong> открытом окне Настройка. Пр<strong>и</strong> этом встроенные меню не<br />

удаляются, а скрываются. В любое меню можно добав<strong>и</strong>ть новый пункт через<br />

вкладку Команды меню В<strong>и</strong>д .Панел<strong>и</strong> <strong>и</strong>нструментов .Настройка,<br />

перетащ<strong>и</strong>в необход<strong>и</strong>мый элемент <strong>и</strong>з сп<strong>и</strong>ска Команды в меню.<br />

Для программ<strong>и</strong>рован<strong>и</strong>я строк меню <strong>и</strong>спользуются объекты классов<br />

CommandBars <strong>и</strong> CommandBar <strong>и</strong>з б<strong>и</strong>бл<strong>и</strong>отек<strong>и</strong> Microsoft Office. Первый <strong>и</strong>з<br />

классов хран<strong>и</strong>т все строк<strong>и</strong> встроенных меню. Он служ<strong>и</strong>т <strong>и</strong>нструментом<br />

<strong>и</strong>спользован<strong>и</strong>я меню пр<strong>и</strong>ложен<strong>и</strong>я <strong>и</strong> создан<strong>и</strong>я авторск<strong>и</strong>х меню. Второй класс<br />

представляет все пункты конкретного меню. Он служ<strong>и</strong>т <strong>и</strong>нструментом<br />

<strong>и</strong>спользован<strong>и</strong>я пунктов меню пр<strong>и</strong>ложен<strong>и</strong>я <strong>и</strong> создан<strong>и</strong>я авторск<strong>и</strong>х пунктов.<br />

Ссылк<strong>и</strong> <strong>на</strong> пункты меню определяются свойством Controls.<br />

Для отображен<strong>и</strong>я контекстных меню <strong>и</strong>спользуется метод ShowPopup, а<br />

для удален<strong>и</strong>я всех новых меню, не выведенных <strong>на</strong> экран, – методы Delete <strong>и</strong><br />

Reset.<br />

Пр<strong>и</strong>меры<br />

Sub ВсеСтрок<strong>и</strong>Меню ()<br />

For Each строкаМеню In CommandBars<br />

Debug.Print строкаМеню.Index, " ", строкаМеню.Name<br />

Next<br />

End Sub<br />

Sub ВсеПунктыМеню ()<br />

For Each пункт In CommandBars ("Menu Bar").Controls<br />

сп<strong>и</strong>сок = сп<strong>и</strong>сок & пункт.Index & " " & пункт.Caption & Chr(13)<br />

Next

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!