Создание макросов, форматирующих ячейки — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Создание макросов, форматирующих ячейки

2017-10-16 658
Создание макросов, форматирующих ячейки 0.00 из 5.00 0 оценок
Заказать работу

При необходимости отформатировать текст с помощью макроса, при создании его выбирайте параметры форматирования в соответствующем диалоговом окне, то есть через меню, нажав правую кнопку мыши в нужном вам месте. На ленте инструментов кнопками пользоваться не стоит, поскольку они работают как переключатели и результаты в этом случае будут непредсказуемы.

Например: при выделении текста курсивом, если данный текст к моменту включения макроса уже был выделен, то при нажатии кнопки «Курсив» панели инструментов Форматирование данное выделение снимется. В результате макрос сработал правильно, но не корректно была осуществлена его исходная запись.

Настройка меню и панели инструментов

Для быстрого запуска макроса при его создании можно назначить горячие клавиши. Также возможно для имеющегося макроса вывести кнопку на панель быстрого доступа или добавить команду с его именем в меню.

Рисунок 5. Панель быстрого доступа.

Для добавления команды запуска макроса в меню или на панель быстрого доступа:

1. Откройте документ, содержащий локальный макрос.

2. Нажмите правой кнопкой мыши на любой вкладке ленты инструментов и выберите в контекстном меню команду Настройка панели быстрого доступа.

Рисунок 6. Окно параметров Excel.

3. В открывшемся диалоговом окне «Параметры Excel» на вкладке Настройка после строки Выбрать команды из выберите из выпадающего списка Макросы.

4. В поле, под выпадающим меню, появятся все макросы текущего документа. Выберите нужный вам макрос.

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

6. Для сохранения вашей настрой нажмите на кнопку OK.
По умолчанию рисунок на кнопкевыглядит . Для изменения рисунка кнопки необходимо во вкладке Настройка окна «Параметры Excel» выбрать добавленный вами макрос вправом поле и нажать на кнопку Изменить. В результате откроется окно «Изменение кнопки», в котором будет отображена палитра символов для вашей кнопки, а так же поле, в котором можно изменить Отображаемое имя кнопки. После внесения изменений нажмите OK.

 

Рисунок 7. Окно изменения кнопки.

 

7. Закройте диалоговое окно «Параметры Excel».

Для удаления кнопки запуска макроса с панели быстрого доступа откроите диалоговое окно «Параметры Excel», вкладку Настройка. Выберите созданную вами кнопку для макроса и нажмите на кнопку Удалить. Закройте диалоговое окно «Параметры Excel».

Удаление макросов

Удалить макрос можно несколькими способами:

1) Нажмите на кнопку Макросы во вкладке Разработчик. В открывшемся окне «Макрос» выберите из списка нужный макрос. Нажмите на кнопку Удалить. В открывшемся окне «MicrosoftOfficeExcel» вас спросят, действительно ли вы хотите Удалить макрос. Нажмите на кнопку Да;

2) Переписать макрос заново под тем же именем, если не устраивает работа первоначального макроса.

Процедуры

Если считать, что операторы VBA - это предложения, то процедуры - аналог абзацев. Процедуры VBA являются хорошо определёнными блоками кода, выполняющегося вместе. Программы могут переходить от процедуры к процедуре, невзирая на их местонахождение в тексте программы. Существует два типа процедур: подпрограммы и функции.

Подпрограммы делятся на две категории. Одни из них могут применяться как макросы, а другие - не могут. Различие между этими двумя типами основывается на том, передаются ли процедуре значения при её вызове или нет.

 

Внимание!Макросу при запуске не могут быть переданы никакиепараметры. Однако во время выполнения он может находить нужные ему значения в подпрограммах или функциях.

 

Любая подпрограмма имеет следующий синтаксис:

Sub name (arguments)

списокоператоров VBA

EndSub

Где name -имя процедуры, а argumertts -это список переменных, представляющих значения, которые передаются процедуре. Их может и не быть, как уже говорилось выше. Однако скобки должны быть сохранены.

Функции - это второй тип VBA-процедур. Общее назначение функции - возвращать при вызове единственное значение. Именно этим функции и отличаются от подпрограмм.

Синтаксис функции:

Function name (arguments)

списокоператоров VBA

name = expression

EndFunction

Где name - имя функции, a arguments - это список переменных, представляющих значения, которые переданы этой функции. Строка name = expression говорит о том, что имени, определённому в первой строке функции, присваивается значение выражения expression. Оно и становится возвращаемым значением функции.

Переменные в VBA

Описанные в процедурах VBA действия выполняются над переменными или объектами. Переметая - это поименованная область памяти, которая используется для хранения данных в период работы процедуры. Объекты (см. о них ниже) представляют собой средство программного управления приложениями Office 2007 и созданными с их помощью документами. У объектов VBA есть свойства, которые могут принимать различные значения. Переменные, содержащие ссылку на объект, называются объектными переменными.

Существует несколько видов переменных. Это:

¾ Локальные переменные, которые объявляются в одной отдельной процедуре;

¾ Переменные модульного уровня- это переменные, которые может использовать любая процедура отдельного модуля;

¾ Общие переменны - это переменные, которые могут использоваться даже при переходе от модуля к модулю.

Создать переменную можно двумя способами:

1) Простым упоминанием о переменной. (Т.е. переменная создаётся на «ходу» и она объявляется в процессе использования);

2) В начале процедуры объявить необходимые переменные.

Для объявления переменныхнеобходимо написать оператор Dim. имя переменной и тип переменных. Если заранее неизвестен тип переменных, то его можно не писать. Полностью объявление переменной выглядит так:

Dim ИмяПеременной asТуре

Где Туре - это тип вводимой переменной. Основные типы переменных перечислены ниже:

Variant -переменные, тип которых определяется типом последнего присвоенногоим значения.

Integer - используется для хранения целых чисел. Например:

-375,375

String - объявляет строковые переменные. Например: МоёИмя.

Boolean - логические переменные, которые принимают одно из двух значений:

Истина (Тrue) либо Ложь (False).

Date - тип переменных для хранения даты и времени.

Object - объявляет объектную переменную.

Объекты в VBA

Объекты, с которыми работают процедуры и функции VBA, представляют собой средство программного управления приложениями Office2007 и созданными с их помощью документами. Широко используемые объекты - это рабочие листы, меню, диапазоны ячеек и др. В Excel существует очень много объектов. Объект имеется для каждого элемента в каждом меню, для каждой кнопки и рабочего листа в каждой рабочей книге.

У объектов VBA есть свойства, которые могут принимать различные значения. Фактически свойствами являются атрибуты объекта. Например: имя объекта, количество листов (для рабочих книг).

Для того чтобы написать законченную строку кода VBA, включающую объект, необходимо указать объект и что необходимо с ним сделать. Объект в VBA указывается при помощи ссылки. Иногда ссылка состоит из нескольких компонентов. Причём каждый компонент ограничивает область возможных объектов, пока не укажет точно конкретный объект. Каждая ступень ограничения области отделяется точкой (.). Например:

Workbooks (“Книга 2”). Worksheets (“Лист 1”)

Данная строка ссылается на объект с именем Лист 1 в рабочей книге ''Книга 2”. Ссылка на ''Книга 2” дана для того, чтобы отличить данный объект от других листов с таким же именем в различных книгах. В этом примере оператор VBA не закончен, так как не указано, что необходимо с ним сделать. Вот пример законченного оператора VBA:

Workbooks(“Книга 2”). Worksheets(“Лист 1”). Delete

Данная строка указывает VBA удалить заданный лист из рабочей книги.

В этих примерах была дана ссылка на объект, расположенный в определённой рабочей книге. Однако когда нужно сделать более общую ссылку на объект, такая детализация не подходит. Например, в случае, когда нужно что-либо сделать с определённой ячейкой на любом выбранном в данный момент рабочем листе. Для этого просто используем ссылку на такие объекты. Например:

Range (“В6”)

Ссылка на ячейку В6 любого рабочего листа любой открытой рабочей книги.

Объекты, ссылающиеся на конкретные ячейки или диапазоны ячеек рабочего листа, называются Range -объектами. Для работы с ячейками и их диапазонами используются методы:

Range - если необходимо сослаться на какую-либо конкретную ячейку или диапазон ячеек. Например:

Range(“В4”")

Cells - если нужно работать с ячейками, меняющимися в процессе работы программы (каждый раз они определяются заново). Причём в скобках данного метода указывается сначала номер строки, а затем номер столбца. Например: Cells (7,2)- ссылка на ячейку В7.

Методы Row и Column нужны при работе со всей строкой или столбцом.

ActiveCell - свойство, которое возвращает единственную активную ячейку в рабочей книге.

Например: (Эти примеры являются законченными операторами VBA.)

1) Range(“В4: Е6”). Select

Данный оператор выделяет диапазон ячеек В4: Е6.

2) For m = 1 to 3

Cells (m,2) = m* 12

Next m

В данном примере переменная m изменяется от 1 до 3. Каждой ячейке В1, В2 иВЗ присваивается вычисленное значение.

3) Row (4). Select

Данный оператор выделяет всю четвёртую строку рабочего листа.

Управляющие конструкции

Управляющие конструкции в VBA позволяют изменять порядок выполнения операторов программы. В случае отсутствия таких конструкций операторы программы выполняются последовательно, начиная с первого и заканчивая последним. Управляющие конструкции подразделяются на ветвления и циклы.

Ветвлением называется управляющая конструкция, структура которой представляет собой простую форму проверки заданных условий, впоследствии чего выполняются определенные операторы. Позволяет пропускать те или иные группы операторов в зависимости от значения условия.

Все ветвления работают по общему принципу: вначале проверяется заданное условие, а затем в зависимости от результатов проверки выполняется та или иная группа операторов, входящая в конструкцию ветвления. Для ветвления применяются операторы условного перехода IF и оператор выбора SelectCase. При создании подпрограмм следует заметить, что возможно вложение одного или нескольких операторов в другой.

Оператор условного перехода IF имеет следующий синтаксис:

If условие Then 1й_оператор Else 2й_оператор

Условный оператор If можно использовать в трёх видах:

1) If условие Then оператор

Пример:

Sub example1()

If 100 = 100 Then MsgBox True

EndSub

В данном примере приведена краткая форма записи, что означает: если (if) 100 = 100(условие) тогда(then) Msgbox True(оператор).

2) If условие Then 1й_оператор Else 2й_оператор EndIf

Пример:

Sub example2()

If 100<10 Then

MsgBox True

Else

MsgBox False

End If

End Sub

 

В данном примере приведена полная форма записи с двумя операторами, что означает: если(if) 100 < 10(условие) тогда(then) Msgbox True(1й_оператор) иначе(else) Msgbox False(2й_оператор) конец(endif).

3) If 1е_условие Then 1й_оператор ElseIf 2е_условие Then 2й_оператор EndIf. Пример:

Sub example3()

If 100 = 120 Then

MsgBox 120

ElseIf 100 = 100 Then

MsgBox 100

EndIf

 

В данном примере приведена самая гибкая форма условного оператора If (структура с двумя операторами и двумя условиями), что означает: если(if) 100 = 120(1е_условие) тогда(then) Msgbox 120(1й_оператор) иначе если(ElseIf) 100 = 100(2е_условие) тогда(then) Msgbox 100(2й_оператор).

Оператор выбора SelectCase – альтернативаоператору IF. Санглийского Select Case можно перевести как «Выбор Ситуации».И если IF оператор в каждом своём ElseIf вынужден обращаться к проверяемым значениям снова и снова (допустим, выражение каждый раз одинаковое), то Select Case делает это только один раз, что позволяет последнему на больших массивах данных работать быстрее. Этот оператор позволяет удобно задать ветвление программы из одной точки в большое количество веток. То есть в основном применяется при множественных условиях проверки, когда проверяемых условий больше двух.

Синтаксис оператора Select Case выглядит так:

SelectCase проверяемое выражение

Case конкретное значение

Некоторое действие

Case Else

Некоторое действие X

EndSelect

В качестве куска Значение можно вставить любую переменную или свойство, значение которой или которого Вы можете проверить. Можно также проверять значение конкретной ячейки. При этом работать можно не только с числами, но и с текстами. И даже с булевыми значениями TRUE/FALSE («Правда» и «Ложь»), о чем знают не все.

КонкретноеЗначение - это то, с чем сравнивается ПроверяемоеЗначение. И, если одно удовлетворяет другому, то выполняется НекотороеДействие. Есть несколько вариантов записи для блока КонкретноеЗначение. Для текстовых и числовых значений можно записывать разные значения через запятую. Например:

Case 3, 4, 5, "да", "нет"

Для чисел можно выбирать диапазоны, например:

Case 3 to 10 'От 3-х до 10-ти, включая сами 3 и 10

Также для чисел можно использовать логический оператор сравнения вместе с частицей " Is ":

Case Is < 2 'Меньше 2, НЕ включая 2

Case Is = 3 'Равно 3-м. Избыточная запись, достаточно Case 3

Case Is >= 4 'Больше либо равно 4

Case Is <> 0 'Не равно нулю

 

Допустимо использовать и логические операторы, что позволит предусматривать сложнейшие случаи и проводить параллельные сравнения с другими переменными. Кроме оператора Or, который заменяется обычной запятой.

Case... And...

Case Not...

 

НекотороеДействие может быть абсолютно любым. Если вы его пропускаете - то для данного случая программа будет бездействовать. Case КонкретноеЗначение вместе с частью НекотороеДействие складываются в один блок:

Case Конкретное Значение

Некоторое Действие

Таких блоков может быть любое количество, которое уложится в предельные размеры процедуры (она должна весить не более 64 килобайт). Полезно знать, что VBA просматривает соответствие Конкретного Значения и ПроверяемогоЗначения вдоль по блокам сверху вниз. То есть, у Вас может быть два блока с одинаковым Case, но выполнится только тот, который будет раньше найден программой при просмотре кода сверху вниз.

Case Else - это все другие случаи, которые не подошли ни под одно другое Конкретное Значение во всех блоках оператора Select Case. Если блок Case Else отсутствует и ни один другой блок не подошёл, то программа делает логичное "ничего". Case Else должен быть последним проверяемым случаем среди всех блоков проверки в операторе. После него других блоков быть не должно, иначе получим синтаксическую ошибку Case without Select Case.

В конце оператора должен стоять End Select, который служит "точкой" в "предложении" оператора.

Пример использования Select Case:

Sub SelectCase_example_1()

Dim X As Long

X = 1 'Можете изменять эту цифру и смотреть, что получится.

Select Case X

Case 1

MsgBox "Один"

Case 2

MsgBox "Два"

Case 3

MsgBox "Три"

Case Else

MsgBox "Выбрано что-то другое"

End Select

End Sub

 

Подводя итог, можно сказать, что оператор Select Case по структуре довольно прост и удобен в использовании. Он менее гибок по сравнению с If … End, если по ходу проверок требуется менять проверяемое значение, но значительно выигрывает при разнообразных проверках одного и того же выражения. Для чего собственно и был создан.

Циклом называется такая конструкция, которая позволяет многократно повторять выполнение группы операторов до наступления какого-либо события. Иначе говоря, служат для выполнения несколько раз одних и тех же действий служат циклы. Они бывают трёх видов: с управляющим условием, со счётчиком и циклы по структуре данных.

Циклы с управляющим условием. В них оператор или группа операторов повторяются до тех пор, пока не будет выполнено управляющее условие. По названию оператора, лежащего в основе этой конструкции, такие циклы называют циклами Do. Различают четыре типа циклов Do, в зависимости от типа управляющего условия и времени его проверки.

1) Цикл выполняется, пока соблюдается некоторое условие.


DoWhile условие

список операторов VBA число = Sqr(число) -1

Loop

DoWhile число> = 0,01

число = Sqr (число) - 1

повторения = повторения + 1

Loop


Условие в данном цикле проверяется до начала выполнения повторяющихся операторов. Если условие не выполняется, то операторы, заключённыемежду Do и Loop, не выполняются, а управление переходит к следующему оператору за Loop.

 

2) Цикл выполняется до тех пор, пока условное выражение не станет равным значению Истина (True).

 


DoUntil условие

список операторов VBA

Loop

DoUntil число<0,01

число = Sqr (число) – 1

повторения = повторения + 1

Loop


3) Циклы третьего и четвёртого типов отличаются от предыдущих только тем, что условие проверяется уже после выполнения тела цикла. Таким образом, эти циклы выполняются хотя бы один раз.


Do

список операторов VBA

Loop While условие

 

Do

число = Sqr (число) – 1

повторения = повторения +1

LoopWhile число >= 0,01



Do

список операторов VBA

LoopUntil условие

Do

число= Sqr (число) – 1

повторения = повторения +1

LoopUntil число < 0,01


Циклы со счётчиком. В циклах со счётчиком используется специальная переменная - счётчик, значение которой при каждом повторении тела цикла увеличивается или уменьшается на заданную величину (шаг цикла). Цикл завершается после того, как значение счётчика достигнет конечного значения счётчика цикла (или превысит его).

Синтаксис цикла со счётчиком:

For счётчик = начальное_значение То конечное_значение Step шаг_цикпа список операторов VBANext счётчик

Телом цикла являются операторы VBA, заключённые между операторами, обозначающими его начало и конец.

Например:

For b= 1 То 10 Step 2

S = S + Cells (b, 1)

Next b

Циклы по структуре данных. В циклах по структуре данных тело цикла поочерёдно выполняется для всех однородных объектов, составляющих массив или семейство. В этом случае в роли счётчика выступает объектная переменная. Синтаксис данного цикла:

ForEach элемент In структура_данных

тело цикла (список операторов VBA)

Next элемент

Например: Впримеревыводятся напечатьимена всех рабочихлистоввтекущей рабочей книге Excel и приведён синтаксис цикла по структуре данных.

Sub Цикп_по_структуре_данных ()

Dim S As Worksheet

ForEash S In Application. Worksheets

Debug.Print S.Name

Next S

EndSub


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.103 с.