Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Удаление панели инструментов⇐ ПредыдущаяСтр 27 из 27
Чтобы удалить панель инструментов можно воспользоваться следующим кодом: Sub УдалениеПанелиИнструментов() For Each Bar In Application.CommandBars If Bar.Name = “Вставка знака” Then Bar.Delete Exit For End If Next End Sub Задание: введите данный код в книгу Плюс в кружочке. xls и запустите его. Убедитесь, что панель инструментов Вставка знака удалена. Пример создания/удаления меню Теперь создадим меню Вставка знака, которое расположим в самом конце строки меню рабочего листа (после меню Справка). Рис. 12‑25. Добавление меню Вставка знака Листинг программы: Sub ДобавлениеМеню() Set myMenuBar = CommandBars("Worksheet Menu bar") '1. Добавляем вложенное меню: Set newMenu = myMenuBar.Controls.Add(Type:=msoControlPopup, _ Temporary:= True) '2. Задаем текст надписи: newMenu. Caption = "Вставка знака" '3. Во вложенное меню добавляем кнопку: Set ctrl1 = newMenu.Controls _ .Add(Type:=msoControlButton, ID:=1) '4. На кнопке должна быть только надпись: ctrl1. Style = msoButtonCaption '5. Добавляем надпись: ctrl1. Caption = "Плюс в кружочке" '6. Создаем всплывающую подсказку: ctrl1. TooltipText = "Вставка специального символа" '7. При щелчке по кнопке выполняется процедура Символ: ctrl1. OnAction = "Символ" End Sub Задание: введите данный код в книгу Плюс в кружочке. xls и запустите его. Убедитесь, что меню Вставка знака создана. Удаление меню Для удаления меню воспользуемся следующей программой: Sub УдалениеМеню() Set myMenuBar = CommandBars("Worksheet Menu bar") For Each Меню In myMenuBar.Controls If Меню.Caption = "Вставка знака" Then Меню.Delete Exit For End If Next End Sub Задание: введите данный код в книгу Плюс в кружочке. xls и запустите его. Убедитесь, что меню Вставка знака удалено. Обработка событий объектов Workbook и Worksheet События имеются не только у элементов управления. Объекты, рассмотренные в главе 1, также обладают своими событиями. Рассмотрим некоторые события объектов Workbook и Worksheet. События объекта Workbook События рабочей книги возникают в случае изменений самой книги, её листов, надстроек и сводных таблиц. Ниже приведен список событий объекта Workbook.
Рассмотрим подробнее события Open и BeforeClose.
Событие Open Предположим, что загрузка панели инструментов Вставка знака должна осуществляться при открытии книги Плюс в кружочке. xls. Чтобы связать это событие с открытием книги выполните следующие действия: 1. В окне проекта Плюс в кружочке. xls (в редакторе VBA) щелкните ThisWorkbook (Рис. 13‑1).
Рис. 13‑1. 2. В списке объектов выберите объект Workbook. 3. В списке процедур выберите событие Open. На экране появится первая последняя строки процедуры обработки этого события Workbook_ Open. 4. Вставьте в неё нужный фрагмент кода (код процедуры СозданиеПанелиИнструментов без 1-й и последней строки). Сохраните внесенные изменения, закройте книгу Плюс в кружочке. xls, затем откройте её заново. Убедитесь, что панель инструментов создана. Событие BeforeClose Аналогично создается обработка события при закрытии рабочей книги за тем исключением, что в списке процедур необходимо выбрать событие BeforeClose. Событие SheetActivate Рассмотрим ещё одно часто используемое событие SheetActivate. Оно наступает при активизации любого листа рабочей книги. Следующий пример демонстрирует обработку этого события (вывод на экран названия активизированного листа): Private Sub Workbook_SheetActivate(ByVal Sh As Object)MsgBox Sh.Name End SubСобытия объекта Worksheet События на уровне рабочего листа возникают в случае его активизации или деактивизации, изменений в нем самом или в сводных таблицах. Ниже приведен список событий объекта Worksheet.
Рассмотрим некоторые события объекта Worksheet.
Событие Activate Событие Activate возникает, когда лист становится текущим. Напишем программу, которая выполняется при активизации листа Лист1 и выводит на экран его имя: Private Sub Worksheet_Activate() MsgBox "Активный лист - " & ActiveSheet.Name End Sub Для того чтобы ввести эту программу: 1. В окне проекта щелкните Лист1 (Рис. 13‑2Рис. 12‑1). 2. В списке объектов выберите WorkSheet, а в списке процедур – событие Activate (Рис. 13‑2) Рис. 13‑2. 3. Введите код. 4. Перейдите в Excel и протестируйте программу. Обратите внимание: при щелчке по Лист2 сообщение не выводится! Событие Deactivate Событие Deactivate возникает, когда лист становится неактивным. Для Лист1 введите следующий код и протестируйте работу программы: Private Sub Worksheet_Deactivate() MsgBox ActiveSheet.Name & " стал неактивным!" End Sub Событие SelectionChange Событие SelectionChange (в самом простом случае) возникает тогда, когда текущей становится другая ячейка (либо в результате щелчка мышкой по другой ячейке, либо после нажатия клавиши [ Enter], либо после нажатия клавиш передвижения курсора). Для Лист2 напишем программу, которая выводит адрес текущей ячейки. Для этого в модуле Лист2 необходимо набрать следующий код: Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "Адрес текущей ячейки - " & ActiveCell.Address End Sub Библиография 1. Гарнаев А.Ю. VBA: в подлиннике. СПб., изд-во BHV-Санкт-Петербург, 2005. 848 с. 2. Гарнаев А.Ю. Microsoft Excel 2000: Разработка приложений. - СПб.: BHV - Санкт-Петербург, 2000. - 576 с.: ил. 3. Э. Уэллс, С. Харшбаргер. Microsoft Excel 97. Библиотека разработчика. - М.: Издательский отдел "Русская редакция". - 1998. - 536 с.
[1] Полный перечень свойств Вы можете просмотреть с помощью Object Browser. [2] так называемые свойства только для чтения (read-only) [3] Из этой классификации слегка выбиваются три объекта Excel: Range, Sheets и Shapes. Объект Range считается одиночным, но обладает также характеристиками семейства. Sheets и Shapes — семейства, но не объектов, а других семейств. [4] семейство рабочих книг [5] В отличие от нумерации в массивах, которая может начинаться с нуля, единицы или любого другого числа, объекты в семействах всегда нумеруются с единицы. [6] При обращении к объекту семейства его имя заключается в двойные кавычки и круглые скобки. [7] Обратите внимание: имена объектов различных уровней разделяет точка (.) [8] Хотя такая запись и сокращает программу, однако явное упоминание всех свойств делает код более понятным. Другими словами, запись Range("A1").Value = 1 более предпочтительна, чем Range("A1") = 1 [9] и методов [10] В данном курсе не рассматриваются. [11] в том числе строк и столбцов [12] которое имеется у объектов Application, Worksheets и Range. [13] См. параграф 10.5 Функции времени и даты. [14] С таким же успехом, можно было бы проверять содержимое первой ячейки. [15]. С синтаксисом данного метода познакомьтесь самостоятельно, воспользовавшись Справкой VBA [16] В данном примере этот фрагмент кода отсутствует. [17] Это всего лишь пример. Очень возможно, что в Вашем конкретном случае будет другая конструкция.
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 34; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.63.87 (0.017 с.) |