Использование макросов для создания интерфейса. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование макросов для создания интерфейса.



Макрос – это именованная последовательность команд, выполняемых автоматически в от­вет на какое-нибудь событие. Макросы всегда выполняются в активном документе. События для макросов будем создавать щелчками по кнопке (Click).

Макрос можно создать путем протоколирования действий пользователя. Это производится с помощью встроенного Мастера (макрорекордера).

Откроем созданный ранее лист Титул. Вызовем панель Формы: вкладка РазработчикàВставитьà Элементы управления формы. Вкладка Разработчик имеется в последних версиях Excel. Она вызывается в строку вкладок командами:

Excel-2010: ФайлàПараметрыàНастройкаЛентыàОсновныеВкладкиàРазработчик(поставить птичку).

Excel-2007: ФайлàПараметрыàОсновныеàПоказывать вкладку Разработчик на ленте (поставить птичку)

В панели Формы выберем объект Кнопка, щелкнем по нему левой кнопкой мыши. Появится тоненький крестик, ориентируясь на который нарисуем на титульном листе кнопку. Сразу появится окно Назначить макрос объекту. Поскольку макрос мы еще не создали, щелкнем в этом окне кнопку Отмена. На кнопке вместо "Кнопка №..." напишем "Открыть лист Данные".

Создадим макрос для этой кнопки. Запись макроса вызывается через вкладку Разработчик (рис. слева) или кнопкой в строке состояния.

 
 
Кнопку Запись макроса можно зафиксировать (или убрать) в строке состояния через контекстное меню

 


Щелкнем кнопку Записать макрос.

В окне Запись макроса (см.рисунок справа) дадим ему имя " ОткрЛистДанные " (пробелы не допус­каются), в окне Сохранить в: выберем Эта книга, нажмем кнопку ОК. Вместо кнопки Записать макрос появляетсякнопка Остановить запись (синий квадратик).

Записываем макрос: щелкаем по корешку листа Данные, щелкаем по какой-нибудь ячейке на листе (А1), нажимаем кнопку Остановить за­пись.

Присвоим этот макрос кнопке на титульном листе: щелкаем по ней правой кнопкой мыши, из контекстного меню выбираем Назначить макрос, и в окне Назначить макрос объ­екту щелкаем по имени макроса ОткрЛистДанные, нажимаем кнопку ОК.

Щелкнем теперь по кнопке "Открыть лист Данные" левой кнопкой мыши – откроется этот лист.

Для закрытия любого листа книги напишем макрос Возврат. Находясь на листе Данные, вызовем окно записи макроса, дадим ему имя и после нажатия кнопки ОК щелкнем по вкладке листа Титул и по ячейке A1, прекратим запись макроса. Теперь, присвоив новой кнопке макрос Возврат на любом листе книги (кроме титульного листа), щелчком по кнопке будем возвращаться на титульный лист. А вот для открытия других листов книги из титульного листа надо создавать свой макрос.

Создав группу макросов, каждый из которых открывает свой лист, наносим на титуль­ный лист кнопку и сразу присваиваем ей соответствующий макрос. А на каждом листе кноп­кам закрытия листов присваиваем один и тот же макрос Возврат.

Чтобы просмотреть все макросы, можно воспользоваться вкладкой Разработчик-Макросы или нажать сочетание клавиш Alt+F8. В Excel 2007-2010 макросы можно присваивать не только кнопкам, как элементам форм, но и любым другим графическим объектам (фигуры, рисунки, картинки и т.п.).

Можно создать макросы, которые будут выполнять более сложные операции, причем количество таких операций в одном макросе может быть любое (некоторые примеры будут в ПЗ-9). Можно организовать какие-нибудь вычисления по определенной команде или при наступлении какого-нибудь события, можно открывать листы в другой книге и т.д. Таким образом, может быть создан простей­ший интерфейс для работы в книге Excel.

Ниже приведен фрагмент титульного листа книги с необходимыми для имеемых листов управляющими кнопками. Кроме того, в ячейках J1 и K1 имеются дата и день недели. Видно, какая формула введена в ячейку K1, и что отображается в этой ячейке. Установленный формат даты описан в ПЗ-2.

Для справки: после ПЗ №4 в книге д.б. листы: Данные, График, 13пт, Титул, ТабУмн, Вклады, СанДень.

 

Содержание книги

Можно оформить содержание книги в виде обновляющегося состава листов. Это особенно актуально, если в рабочей книге Excel число листов насчитывает не один десяток. Навигация по листам начинает становится проблемой. И столько кнопок уже не будет помещаться на титульном листе.

Выходом может быть создание чего-то похожего на оглавление документа - интерактивного списка листов с гиперссылками на них на отдельном (можно на титульном) листе. Для этого необходимо использовать редактор Visual Basic for Applications (VBA).

Откроем редактор Visual Basic, нажав ALT+F11 или через вкладку Разработчик. В открывшемся окне редактора создаем новый пустой модуль (меню Insert - Module) и скопируем туда текст этого макроса (процедуры, программы):

Sub Содержание()

Dim sheet As Worksheet

Dim cell As Range

With ActiveWorkbook

For Each sheet In ActiveWorkbook.Worksheets

Set cell = Worksheets(1).Cells(sheet.Index, 1)

.Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:="'" & sheet.Name & "'" & "!A1" ' одна строка

cell.Formula = sheet.Name

Next

End With

End Sub

 

Закроем редактор Visual Basic и вернемся в Excel. На титульный лист книги в районе ячейки А1 наносим кнопку из элементов управления формы (РазработчикàВставить), и присваиваем ей макрос Содержание. Щелчок по кнопке Обновить содержание запустит его на выполнение. Макрос создаст на первом листе книги список гиперссылок с названиями листов (рис.справа). Щелчок по любой из них откроет нужный лист.

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

Для удобства можно создать также и обратные ссылки на всех листах книги, которые будут возвращать назад на титульный лист (в оглавление). Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист (как было сделано с кнопкой Возврат), можно использовать другой метод. Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов можно использовать SHIFT и/или CTRL) и в любую подходящую ячейку вводим функцию:

=ГИПЕРССЫЛКА("[Книга1.xls]титул!A1";"Назад в оглавление")

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом "Назад в оглавление", щелчок по которой будет возвращать пользователя к листу титул. Имя файла Книга1 надо заменить на свое название книги и поместить в квадратные скобки.

 

Быстрый переход между листами (если их много) можно осуществлять также следующими способами:

 

1. Горячие клавиши. Сочетания Ctrl+PgUp и Ctrl+PgDown позволят быстро пролистывать книгу вперед-назад.

 

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

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-20; просмотров: 615; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.233.41 (0.007 с.)