Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Запуск макроса на исполнениеСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Когда макрос записан, его можно запустить на исполнение. 1) Для этого сначала нужно открыть ту РК, в которой он сохранён. 2) Если это уже сделано, выполняем цепочку: вкладка Вид - группа Макросы - Макросы ( в Excel 2007). 3) на экран выводится диалоговое окно Макрос (рис. 8.3):
Рис. 8.3. Окно выбора макросов для выполнения 3) выбираем в панели "имя макроса" название нужного нам макроса НазванияБанков Казани и нажимаем кнопку Выполнить. Если всё было сделано правильно, на рабочем листе РК появится нужная информация (рис. 8.4):
Рис. 8.4. Результат выполнения макроса НазванияБанковКазани Как и было задано, все названия размещены в указанном диапазоне ячеек, им придан стиль"полужирный курсив", они оформлены рамками, есть и номера граф. Работа макроса завершилась тем, что курсор остановился в ячейке В5.
Код (текст) программы макроса и пояснения к нему А теперь посмотрим, как выглядит исходный текст (код) макроса НазванияБанковКазани: Sub НазванияБанковКазани() ' начало программы-процедуры ' апостроф –это начало комментария, т.е. пояснения к тексту ' НазванияБанковКазани Макрос ' Макрос записан 19.04.2009 (MINI_CORP) ' Range("B3").Select ' сначала выбрана и активизирована ячейка В3 ActiveCell.FormulaR1C1 = "ИнтехБанк" ' текст "ИнтехБанк" размещён в активной ячейке В3 Range("C3").Select ActiveCell.FormulaR1C1 = "УрсаБанк" Range("D3").Select ActiveCell.FormulaR1C1 = "АкбарсБанк"
ActiveCell.FormulaR1C1 = "СберБанк" Range("F3").Select ActiveCell.FormulaR1C1 = "ЭнергоБанк" Range("G3").Select ActiveCell.FormulaR1C1 = "СпуртБанк" Columns("B:G").Select ' выбраныстолбцы от B до G Columns("B:G").EntireColumn.AutoFit ' автободбор ширины столбцов Range("B3,C3,D3,E3,F3,G3").Select ' активизированы ячейки от В3 до G3 Range("G3").Activate ' активна ячейка G3 и в ней остановился курсор Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone ' в последних двух операторах объектам и свойствам обрамления "диагональ сверху вниз" и "диагональ снизу вверх" задано значение "нет" With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic
With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With Selection.Font.Bold = True ' выбран шрифт Bold - полужирный Selection.Font.Italic = True ' в ыбран шрифт Italic - курсив Columns("B:G").Select ' выделены столбцы от В до G Columns("B:G").EntireColumn.AutoFit ' включена команда автоподбора ширины активных столбцов Range("B4").Select ActiveCell.FormulaR1C1 = "1" Range("C4").Select ActiveCell.FormulaR1C1 = "2" Range("D4").Select
Range("E4").Select ActiveCell.FormulaR1C1 = "4" Range("F4").Select ActiveCell.FormulaR1C1 = "5" Range("G4").Select ActiveCell.FormulaR1C1 = "6" Range("B4,C4,D4,E4,F4,G4").Select Range("G4").Activate Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With
.LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With
.LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection ' для выбранного - .HorizontalAlignment = xlCenter 'горизонтальное выравнивание содержимого по центру .VerticalAlignment = xlBottom ' вертикальное выравнивание - вниз .WrapText = False ' запрещён переход на следующую строку .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("B5").Select ' В заключение активизирована ячейка В5 End Sub Рис. 8.5. Исходный текст (код) макроса.
Начало и конец кода макроса специально выделены автором более крупным шрифтом. Кроме того, в текст программы специально внесены некоторые пояснения в виде комментариев к отдельным операторам, оформленные курсивом. Готовая программа даже такого несложного макроса, составленная в автоматическом режиме, достаточно велика. Вполне очевидно, что разобраться в ней, не зная назначения и правил записи отдельных конструкций языка, невозможно. А уж вносить туда дополнения или поправки - и подавно! Однако, всё впереди, и дорогу осилит идущий! Корректировка макросов При записи макроса в любом из выбранных приложений (в Microsoft Word, Ехсе1 или РоwегРоiпt) действия, выполненные во время записи, будут зафиксированы в виде последовательности соответствующих операторов языка VВА. Вся совокупность этих операторов будет называться исходным кодом, или кодом макроса. Полученный таким образом код в дальнейшем можно будет использовать при создании собственной программы. Причем в этой программе можно будет как корректировать уже имеющиеся, так и, при необходимости, добавлять новые операторы. Получить доступ к исходному тексту макроса, просмотреть или отредактировать его можно двумя способами. Способ 1. Вызвать окно «Макросы» (см. рис. 8.3), выполнив цепочку действий: вкладка Вид - группа Макросы - Макросы ( в Excel 2007), затем выбрать из списка нужный макрос и нажать в окне кнопку Войти или Изменить. Способ 2. На вкладке Разработчик [2] в группе Код кнопкой Visual Basic включить редактор Visual Basic. В обоих случаях на экране появится окно этого редактора(рис. 8.6):
Рис. 8.6. Часть окна редактора Visual Basic
с программным кодом выбранного макроса, готовым для редактирования. В этом окне можно добавлять, удалять, копировать, изменять, вырезать или вставлять любые операторы на языке VBA, пользуясь командами меню Edit. Для сохранения программного кода отредактированного макроса выберите команду меню File => Save Имя_Документа (Файл =>Сохранить в...) редактора VBA или щелкните на кнопке Save Имя_Документа (Сохранить в...) панели инструментов Edit. Если же был создан объект «Кнопка», то самый лёгкий и естественный способ – раскрыть исходный текст прямо с рабочего листа РК Excel, на котором и совершалась запись макроса. Для этого на вкладке Разработчик надо сначала включить режим Конструктор в группе Элементы управления. Затем, выделив кнопку, вызвать контекстное меню и выбрать там пункт «Исходный текст». На экране – окно редактора Visual Basic с исходным текстом макроса, приписанного к данной кнопке. Простой пример составления и записи программы. Начнём с очень простого примера: нужно задать цвет фона для любой активной ячейки на листе Лист2 рабочей книги Excel. Попробуем сделать это, воспользовавшись средой редактора VBA. Снова включим редактор Visual Basic на вкладке Разработчик. Открывается окно редактора:
Рис. 8.7. Пустое окно редактора Visual Basic
В меню View (представление) включаем команду Code, в результате чего откроется пустое окно для ввода текста будущей программы (рис. 8.8).
Рис. 8.8. Окно Code для ввода текста программы (кода).
Этот текст с попутными пояснениями выглядит так: Sub PaintCell() ' Заголовок процедуры "Цвет ячейки" Dim n As Integer ' переменная n (код цвета) представлена как целочисленная n = (InputBox("Введите код цвета:")) ' команда запроса ввода кода цвета ActiveCell.Interior.ColorIndex = n ' введённый код n задаёт новое значение свойству цвета активной ячейки. ' Здесь ActiveCell – объект, активная ячейка, Inte r ior. ColorIndex – "двухступенчатое" свойство, задающее цвет объекта ActiveCell End Sub () ' Конец процедуры "Цвет ячейки" Рис. 8.9. Текст (код) макроса для изменения цвета активной ячейки ПРИМЕЧАНИЕ 5: здесь полужирный шрифт – операторы и свойства, курсив - пояснения к ним. Добавим: Paint – цвет, Cell - ячейка, Dim (Dimension) – придать (размеры), Active – активизация объекта, ColorIndex – числовое обозначение (шифр, код) цвета в среде VBA. Разместим текст этой крошечной программы в окне Code, а затем нажмём клавишу запуска программы на исполнение F5 (или выполним Run - Run Sub/UserForm).
Рис. 8.10. Окно запроса на ввод кода цвета (значения кода - от 0 до 56)
Если мы теперь введём здесь число 6, то активная ячейка получит ЖЁЛТЫЙ цвет фона, если 8, то - ИЗУМРУДНЫЙ, если 0, то - БЕЛЫЙ, если 1, то - ЧЁРНЫЙ и т. д. Чтобы убедиться в этом, введите вышеуказанный исходный текст в окно Code редактора Visual Basic и затем выполните эту программку. Хотя эта программа и проста, но она уже имеет существенный недостаток: в ней описывается последовательный алгоритм и поэтому он выполняется всего 1 раз. Чтобы перепробовать несколько вариантов окрашивания ячейки, её каждый раз надо запускать заново. Для автоматического повторения выбора этих вариантов нужно превратить её в циклическую программу. Изменим её, применив один из вариантов цикла. Наиболее подходит для этого оператор с предусловием: While <условие>… Wend. Он не ограничивает число повторов цикла и, вместе с тем, позволяет прервать их в любой момент, если правильно записать <условие>. Поскольку известно, что коды цветов занимают закрытый интервал [1-56], то введем в рассмотрение переменную КодЦвета, будем придавать ей различные значения и проверять их по условию: КодЦвета >=0 и одновременно КодЦвета <=56. Изменённая программа примет вид: Sub PaintCell() Dim n As Integer n = 0 While КодЦвета >= 0 and КодЦвета <=56 n = (InputBox("Введите код цвета:")) ActiveCell.Interior.ColorIndex = n Wend MsgBox ("До свидания. Работа закончена!") End Sub ' Конец процедуры "Цвет ячейки" Рис. 8.11. Текст (код) макроса цикла изменения цвета активной ячейки
Теперь программа будет работать и менять цвета в активной ячейке, пока в качестве значения n не будет введено отрицательное число. Тогда вместо запроса на ввод кода цвета она выдаст в окне сообщения пользователю MsgBox фразу " До свидания. Работа закончена!"
|
||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-20; просмотров: 2344; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.219.203 (0.01 с.) |