Глава 3. Основы программирования на VBA.. VBA для чайников
Глава 3. Основы программирования на VBA.
В этой главе …
~ Запуск редактора Visual Basic
~ Использование справочной системы VBA
~ Программирование в VBA — краткое и нестрогое руководство
Макросы хороши до определенных пределов, но гораздо больше можно получить от полноценных VBA-программ. Эта глава послужит аварийным введением в рациональное VBA-программирование. После вводного обзора редактора Visual Basic и справочной системы VBA мы с вами на простом примере разберем по шагам процесс построения VBA-программы. Эти знания станут тем солидным базисом, который потребуется для освоения всего остального материала книги.
Вызов редактора Visual Basic
Редактор Visual Basic служит командным центром для работы в VBA. В нем вы должны находиться при разработке VBA-форм, создании VBA-кода, тестировании и отладке VBA программ. Экспертом по использованию редактора Visual Basic вы станете после прочтения главы 5, а пока вам нужно только знать, как вытянуть этот редактор на экран.
Если вы делали кое-что из того, о чем так много говорилось в предыдущей главе при обсуждении программного кода, создаваемого средством записи макросов, вы должны уже знать один из способов вызова редактора Visual Basic- выбор макроса в диалоговом окне
Макрос с последующим щелчком на кнопке Изменить. Но, конечно же, можно запустить редактор Visual Basic и непосредственно. В большинстве VBA-приложений можно воспользоваться одним из следующих методов.
* Выбрать из меню Сервис=Макрос=Редактор Visual Basic.
* Нажать Alt+Fll. Вы услышите, как затараторит жесткий диск, и через несколько мгновений на экране появится редактор Visual Basic. Он должен хотя бы отдаленно напоминать то, что изображено на рис. 3.1.
В некоторых приложениях вам понадобится проделать другой маршрут, чтобы добраться до редактора Visual Basic. Однако вы в любом случае найдете необходимую команду где-нибудь в меню Tools (Сервис).
Вызов редактора Visual Basic одним щелчком
Если в вашем приложении есть кнопка в панели инструментов для вызова редактора Visual Basic. используйте се. В VBА-приложениях из пакета Microsoft Office (Word. Excel и PowerPoint) эта кнопка помещена в панель инструментов Visual Basic (рис. 3.2). Наборы кнопок в этой панели инструментов у разных приложений могут немного отличаться.
Рис. 3.1. Редактор Visual Basic
Рис, 3.2. Вид панели инструментов Visual Basic в приложении Word
Кнопки в этой панели инструментов, как правило, соответствуют пунктам подменю Макрос из меню Сервис. Вот для чего предназначены некоторые из этих кнопок (слева направо, см. рис. 3.2).
* Первые две кнопки предназначены соответственно для выполнения и записи макросов.
* Кнопка справа от кнопки Безопасность вызывает редактор Visual Basic. Если вы часто используете редактор Visual Basic, а другие кнопки в этой панели инструментов вам не нужны, скопируйте кнопку вызова редактора в другую панель. Чтобы скопировать кнопку в любом из приложений Office, перетащите ее на новое место, удерживая при этом нажатой клавишу Alt.
* Кнопка с изображенными на ней молотком и гаечным ключом открывает панель элементов управления, очень похожую на панель элементов управления VBA. В Office вы можете поместить элементы управления VBA в сам документ, а не только в VBA-форму.
* Кнопка с изображенными на ней линейкой, треугольником и карандашом включает режим проектирования, в котором вы можете редактировать элементы управления VBA в своем документе.
Курс VBA / Обучение VBA
X Данный контент доступен только авторизованным пользователям. Пожалуйста, войдите на сайт, либо зарегистрируйтесь. Вход РегистрацияВ новейшей версии Microsoft Office 2019/2016 встроенный язык программирования Visual Basic for Applications (VBA) по-прежнему остается основным наиважнейшим средством автоматизации работы пользователей с офисными приложениями.
Наибольшее количество прикладных задач, требующих использования макросов, возникает при работе с электронными таблицами Excel. Опытные пользователи могут самостоятельно справиться с вопросами автоматизации Microsoft Excel 2019/2016, если освоят возможности программирования макросов на VBA.
Курс-тренинг рассчитан на специалистов, постоянно использующих Excel в повседневной профессиональной деятельности и желающих научиться разбирать программный код на VBA и самостоятельно программировать макросы, что позволит автоматически выполнять повторяющиеся рутинные действия, сэкономит время и повысит эффективность труда.
Основные команды языка VBA и базовые объекты Excel совместимы на уровне макросов с предыдущими версиями Excel, поэтому полученные на курсе знания и навыки программирования макросов можно будет с успехом применять как в Microsoft Excel 2019/2016, так и в более ранних версиях Microsoft Excel 2013/2010.
Мы помогаем нашим выпускникам с трудоустройством: учим составлять сильное резюме, знакомим с работодателями и консультируем, как проходить собеседования.
Полезные материалы
Автоматическая очистка значения в подчиненном списке при изменении основного списка
Демонстрация
- Открыть приложенный Excel файл.
- Включить макросы.
- Изменить значение в ячейке С2.
- Убедиться, что в D2 появилось предупреждение (выберите новое значение).
Если вам приходится проверять, заполнять сложные таблицы, да еще и расположенные на разных листах, и Вы тратите много времени на это, надеемся, этот файл будет Вам полезен !!!!Не забудьте включить МАКРОСЫ!!!
НОУ ИНТУИТ | Основные принципы и концепции программирования на языке VBA в Excel
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
Уровень:
Для всех
Длительность:
8:48:00
Выпускников:
712
Качество курса:
4.45 | 4.06
В курсе лекций рассматриваются ключевые принципы программирования на VBA в MS Excel.
Язык Visual Basic for Application (VBA) – объектно-ориентированный язык программирования, базируется на командах и синтаксисе языка Basic. VBA встроен в офисную среду и позволяет манипулировать объектами всех офисных приложений. Язык VBA позволяет сочетать простые методы по созданию документов (использование команд меню или технология перетаскивания мышью) и программные методы для разработки эффективного пользовательского приложения. Чаще всего основным документом, вокруг которого пользователь строит свое приложение, является MS Excel. Поэтому данные лекции посвящены программированию именно для этого офисного пакета. На большом количестве примеров рассматриваются основные конструкции языка, приемы разработки макропроцедур.
ISBN: 978-5-9556-0119-9
Теги: basic, cell, microsoft excel, microsoft word, objective-c, sheet, variant, visual basic, workbook, worksheet, активная ячейк, книги, макрос, отладка, поиск, последовательность операторов, приложения, процедуры, рабочая книга, рабочий лист, редакторы, цвета, элементыПредварительные курсы
Дополнительные курсы
2 часа 30 минут
—
Использование макрорекордера.
Абсолютные и относительные ссылки В лекции рассказывается о записи макроса с использованием макрорекодера. С помощью макрорекордера удобно создавать процедуры, которые автоматизируют рутинные операции: форматирование таблиц, создание диаграмм и сводных таблиц, работу со списками данных и т.д. Во второй части лекции рассматриваются вопросы применения абсолютных и относительных ссылок в формулах на рабочем листе и в процедурах VBA.—
Редактор Visual Basic
В лекции рассматриваются окна редактора VBA: Project Window (окно проекта), Properties Window (окно свойств), Code (окно программы), а также меню и панели инструментов Visual Basic. Приводятся способы записи процедур в стандартных модулях и на процедурных листах-обработчиках событий, а также рассматриваются режимы работы с программой.—
Средства получения справки и отладки программ
Время отладки программ можно существенно сократить, если пользоваться различными средствами VBA, специально предназначенными для обнаружения и исправления ошибок в программах. В этой лекции рассматриваются инструментальные средства отладки программ: применение контрольных точек или точек останова (Breakpoint), трассировка и просмотр значений переменных и т.д. Подробно разбираются возможности использования справочной системы для разработки и отладки программ.—
Переменные и типы данных
В лекции рассматривается вопрос важности объявления переменных. Представлены типы данных: элементарные типы, объектные переменные, массивы и пользовательские типы. Особое внимание уделяется вопросам инициализация переменных, области видимости и времени жизни переменных.—
Операции с данными
В лекции рассматривается применение встроенных функций InputBox и MsgBox для ввода/вывода данных или для высвечивания служебных сообщений. Разбираются типы операций с данными: арифметические операции, операции сравнения, логические и символьные операции, а также приоритет операций в выражениях.—
Операторы управления
В лекции рассказывается об управляющих операторах, позволяющих изменить стандартный порядок выполнения операторов: условный оператор If, оператор выбора Select Case. Рассматриваются все виды операторов цикла: For…Next, For Each…Next, Do…Loop, While…Wend.—
Процедуры, подпрограммы и функции
Если программа имеет в своем составе блоки, которые предполагают автономную обработку данных, или же в программе неоднократно повторяются некоторые последовательности операторов, рекомендуется разбить программу на ряд процедур, каждая из которых возьмет на себя часть реализации общего алгоритма решения задачи. Проводится классификация процедур: основная процедура, которая вызывает другие процедуры, вызываемые процедуры, реализующие конкретные задачи проекта и процедуры обработки событий. В качестве вызываемых процедур рассматриваются процедуры общего типа и процедуры-функции. Особое внимание уделяется встроенным функциям.—
Объекты MS Excel
VBA, будучи объектно-ориентированным языком программирования, манипулирует объектами приложения. Примерами объектов MS Excel являются: рабочий лист Worksheet, рабочая книга Workbook, диаграмма Chart и т.п. С точки зрения программирования в среде VBA объект обладает свойствами и методами. Свойства описывают объект, а методы позволяют управлять объектом. Рассматриваются основные свойства и методы объектов и коллекций объектов. Представлены различные способы обращения к объектам: обращение к элементу коллекции, использование контейнеров для установки ссылки на объект, использование оператора With и объектных переменных.—
Макросы и основы языка VBA. Интерактивный вебинар.
Количество просмотров: 112
Приглашаем на вебинар по основам использования языка VBA для автоматизации вычислений в Excel.
Учебный центр «Зерде» приглашает всех желающих на интерактивный вебинар по созданию и применению макросов для автоматизации вычислений и расширению возможностей MS Excel. В ходе вебинара рассматривается создание и применение пользовательских процедур и функций, позволяющих избавить работников от выполнения однотипных операций за счет автоматического выполнения заложенных в макросе при программировании действий и вычислений.
Любая офисная работа предполагает некую “рутинную составляющую” – одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции. Можно записать в виде макроса перечень любых действий в виде последовательности команд с сохранением полученного макроса. При запуске полученной программы все, что в ней указано, будет выполнено без участия пользователя. С помощью записанного макроса можно вставлять листы с добавленной таблицей нужной формы, запускать вычисление сложной формулы и много другое. Однако запись макросов не дает применить всю мощь языка VBA. Овладев хотя бы основами программирования на VBA, мы уже сможем во много раз усовершенствовать макросы, записанные с помощью программ. Можно создать сложные приложения, которые в сотни раз сократят время, затрачиваемое нами на ручные операции. Владение VBA дает пользователю практически полную независимость от стандартного программного функционала, позволяет использовать его как платформу для построения своих собственных решений под конкретные задачи.
Сложно переоценить значение знания языка VBA в повседневной работе. Создание собственных процедур для выполнения собственных практических задач, создание функций для выполнения расчетов по заданным пользователям правилам значительно облегчают работу и освобождают время, которое всегда в недостатке. Автоматическое объединять таблицы из разных каталогов и создавать необходимые отчеты без вмешательства пользователя, обрабатывать сводные таблицы создавать диаграммы заданного типа, сохранять в отдельных файлах готовые отчеты с автоматической отправкой по выбранному адресу, автоматически создавать и заполнять таблицы и формы – все это становится доступным с владением VBA. Достаточно сказать, что и сам Excel, точнее его пользовательская часть основан на командах VBA. Тот владеет инструментами VBA, тот может полностью настроить Excel по своим потребностям.
Участники вебинара ознакомятся с способами записи действий для автоматического их выполнения в дальнейшем. Обучение на вебинаре даст возможность изучить на практике способы добавления в свои документы готовых макросов в виде процедур и функций. Слушатели научатся писать свой код для решения рутинных операций, которые регулярно повторяются. На вебинаре будет подробно показано создание нестандартных функций для облегчения вычислений и многое другое
План занятий:
- Описание и назначение макросов. Параметры безопасности макросов.
- Способы создания макросов. Запись повторяющихся действий в виде макроса.
- Относительная и абсолютная адресация при записи макроса.
- Примеры записи макроса. Запись макроса на примере создания таблицы и ввода формулы.
- Подключение сторонних макросов.
- Запуск макросов горячими клавишами. Добавление на лист управляющих элементов для запуска макросов.
- Редактирование панели быстрого доступа. Создание пользовательских вкладок с кнопками для запуска макросов.
- Запуск редактора VBA. Окно редактирования кода. Диспетчер объектов. Работа с модулем. Структура программы.
- Модули, процедуры и функции. MsgBox и InputBox. Переменные и типы данных в VBA.
- Функции перехода и ветвление. Обработка простых и комбинированных условий.
- Объединение нескольких условий с помощью логической операции “OR” и логической операции “AND”.
- Проверка типа значения. Функции IsNumeric, IsBoolean, IsEmpty и другие
- Назначение и применение циклов. Циклы с параметром.
- Проверка условия работы цикла. Досрочный выход из цикла.
- Функции VBA для работы с числовыми и текстовыми значениями и их применение.
- Обработка дат и времени в VBA.
- Работа с массивами. Динамические массивы.
- Указание ячеек, строк и столбов в VBA. Перемещение на листе.
- Операции с диапазонами. Добавление, удаление и вставка диапазонов.
- Работа с коллекциями.
- Переходы между листами. Копирование и связь диапазонов на листах.
- Использование встроенного кода объектов Excel.
- Встроенные процедуры рабочего листа Active, Change и другие.
- Операции с книгами.
Вебинар состоится с 28 по 30 марта 2021 года. Для записи на семинар и для уточнения информации Вы можете связаться с нами:
по телефонам:
+7-7172-92-32-90
+7-707-111-7885
+7-775-888-6655 (WhatsApp)
+7-775-550-9167 (WhatsApp)
+7-707-823-6661(WhatsApp)
по e-mail
zerde-kz@mail. ru
Мы рады будем узнать ваши предложения и ответить на вопросы, связанные с тематикой данного вебинара. Для этого оставьте свой комментарий внизу либо напишите сообщение на соответствующей странице сайта.
Основы vba (visual basic for application)
Кафедра экономической теории и моделирования экономических процессов
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В УПРАВЛЕНИИ
(ЧАСТЬ 2)
Методические указания
к выполнению практических и самостоятельных заданий
для студентов направлений
081100.62 «Государственное и муниципальное управление»
очной формы обучения
Курган 2013
Кафедра: «Экономическая теория и моделирование экономических процессов»
Дисциплина: «Информационные технологии в управлении» часть 2
Составили: ст. преподаватель Филимонов С.М.
ассистент Студентова Е.А.
Утверждены на заседании кафедры « 28 » сентября 2013 г.
Рекомендованы методическим советом университета
«____» ___________2013 г.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ. 4
1 ОСНОВЫ VBA (VISUAL BASIC FOR APPLICATION) 5
2 ОСНОВЫ РАБОТЫ С БАЗАМИ ДАННЫХ В MS ACCESS. 15
3 БЛОК-СХЕМЫ И АЛГОРИТМИЗАЦИЯ.. 29
СПИСОК ЛИТЕРАТУРЫ.. 39
ВВЕДЕНИЕ
Информатика – это техническая дисциплина, систематизирующая приемы работы с данными средствами вычислительной техники, принципы функционирования этих средств и методы управления ими.
Методические рекомендации по дисциплине «Экономическая информатика» составлены в соответствии с рабочей программой, содержат рекомендуемую последовательность изучения дисциплины и варианты практических заданий.
В результате изучения дисциплины студенты должны иметь представление:
— об основных этапах решения задач с помощью ЭВМ, методах и средствах сбора, обработки, хранения, передачи и накопления информации;
— о программном и аппаратном обеспечении вычислительной техники, о компьютерных сетях и сетевых технологиях обработки информации, о методах защиты информации.
Знать:
— основные понятия автоматизированной обработки информации;
— общий состав и структуру персональных ЭВМ и вычислительных систем;
— базовые системные программные продукты и пакеты прикладных программ.
Уметь:
— использовать изученные прикладные программные средства в профессиональной деятельности.
Практический курс «Экономическая информатика» разделен на две части. Ко второй части курса относятся: изучение основ VBA (Visual Basic for Application), основ работы с базами данных в Microsoft Access, а также закрепление теоретических знаний и получение практических навыков по теме «Блок-схемы и алгоритмизация».
ОСНОВЫ VBA (VISUAL BASIC FOR APPLICATION)
Практическое задание 1
Цель – научиться создавать пользовательские функции
Примечание:Одной из возможностей VBA является создание новой функции MS Excel, которую впоследствии можно использовать аналогично встроенным функциям (СУММ, МАКС, ЕСЛИ и др. ). Это целесообразно в тех случаях, если необходимой функции нет в стандартном наборе встроенных функций MS Excel, например формулы Пифагора, а ею приходится часто пользоваться.
Необходимо создать пользовательскую функцию, вычисляющую по теореме Пифагора длину гипотенузы прямоугольного треугольника по двум заданным катетам.
Для этого:
1 Создайте новую книгу MS Excel и перейдите в редактор VB. Для открытия редактора выберите в Меню Разработчик / Код / Visual Basic или нажмите комбинацию клавиш [Alt+F11].
2 Создайте новый модуль, выполнив команду Insert→Module.
3 В новом модуле выполните команду Insert→Procedure, чтобы открыть диалоговое окно «Add Procedure» для создания новой процедуры (рисунок 1).
Рисунок 1 – Диалоговое окно «Add Procedure»
4 В диалоговом окне «Add Procedure» задайте имя «Пифагор» и выберите тип «Function». Нажмите кнопку <ОК>.
5 В окне кода между двумя появившимися строчками напишите программный код для данной функции, учитывая, что для нахождения длины гипотенузы по формуле Пифагора нужно знать значения длин двух катетов a и b:
Public Function Пифагор(a, b)
Пифагор = (a^2 + b^2) ^ (1 / 2)
End Function
Оператор «^» означает возведение числа в степень.
1 Закройте редактор VB и воспользуйтесь созданной функцией. В ячейки А1, В1 и С1 введите соответственно символы а, b, и с; в ячейки А2 и В2 – значения длин катетов, а в ячейку С2 вставьте функцию, воспользовавшись командой Вставка→Функция и выбрав созданную функцию в категории «Определенные пользователем» диалогового окна «Мастер функций» (рисунок 2).
2 Добавьте к созданной функции описание, поясняющее ее назначение. Для этого выполните команду Меню Разработчик / Код / Макросы и, набрав в поле «Имя макроса» диалогового окна «Макрос» название данной функции, введите описание, нажав кнопку «Параметры» (рисунок 3).
Рисунок 2 – Результат выполнения функции
Рисунок 3 – Диалоговые окна «Макрос» и «Параметры макроса»
Аналогичным образом создайте функцию, математически определенную как y = sin(πx)e−2xи постройте ее график.
Для этого:
1 В редакторе VB в новом модуле создайте функцию с именем «Y» и напишите для нее программный код:
Public Function Y(x)
Y = Sin(Application. Pi*x)*Exp(-2*x)
End Function
Здесь воспользовались стандартной функцией Pi, которая возвращает значение постоянной π. Так как она не является внутренней функцией VBA, то ее необходимо записать в виде Application.Pi.
2 Введите в ячейки А1 и В1 соответственно «х» и «y», в ячейки А2 и А3 – значения х, например, -0,5 и -0,4 соответственно, и с помощью маркера автозаполнения скопируйте значения в ячейки А4:А12.
3 В ячейку В2 вставьте формулу «=Y(A2)» и также с помощью маркера автозаполнения скопируйте ее в ячейки В3:В12.
4 Выделите диапазон ячеек В2:В12 и с помощью Мастера диаграмм постройте график данной функции (подписи по оси Х должны быть – значения х) (рисунок 4).
Рисунок 4 – Результат выполнения функции и ее график
Практическое задание 2
Цель – научиться создавать диалоговые окна.
Примечание:В VBA имеется два стандартных диалоговых окна для взаимодействия с пользователем:
1 InputBox используется для ввода информации в отдельном диалоговом окне и имеет следующий синтаксис (в квадратных скобках указаны необязательные параметры):
InputBox («Текст сообщения», [«Текст заголовка диалогового окна»]).
2 MsgBox используется в качестве диалогового окна вывода сообщений и имеет синтаксис:
MsgBox «Текст сообщения», [Кнопки + Иконки], [«Текст заголовка диалогового окна»],
где Кнопки + Иконки – параметры, задающие отображаемые кнопки и значки диалогового окна.
Необходимо создать процедуру, вычисляющую длину гипотенузы треугольника по заданным катетам.
Для этого:
1 Создайте новую книгу MS Excel и перейдите в редактор VB.
2 Создайте новый модуль, выполнив команду Insert→Module.
3 В новом модуле выполните команду Insert→Procedure, чтобы открыть диалоговое окно «Add Procedure» для создания новой процедуры.
4 В диалоговом окне «Add Procedure» задайте имя «Pythagor» и выберите тип «Sub» (рисунок 5). Нажмите кнопку <ОК>. Процедуры, в отличие от рассмотренных ранее функций, не возвращают значений, а только выполняют последовательность действий.
Рисунок 5 – Диалоговое окно «Add Procedure»
5 В окне кода между двумя появившимися строчками напишите программный код для данной процедуры. (1 / 2)
MsgBox («Длина гипотенузы равна» & c)
End Sub
Оператор «&» объединяет две строки.
6 Выполнение процедур происходит аналогично выполнению записанных макросов. Поэтому создайте командную кнопку на рабочем листе для запуска процедуры (рисунок 6).
Рисунок 6 – Диалоговые окна при выполнении процедуры
Также запустить диалоговые окна можно из редактора VBA, выполнив команду Меню Run / Run Sub/UserForm. Появится диалоговое окно выбора макроса – выберите название вашей процедуры и нажмите кнопку Run. Также в редакторе можно нажать F5 на клавиатуре для быстрого запуска процедуры.
Практическое задание 3
Цель – научиться создавать пользовательские формы.
Примечание:VBA позволяет создавать и использовать экранные формы, разработанные пользователем. Такие формы представляют собой объекты класса UserForm. Для создания новой формы пользователя необходимо в MS Excel перейти в редактор VB и выполнить команду Insert→UserForm. В результате откроется окно конструктора форм (рисунок 7). При создании формы автоматически отображается панель элементов управления «Toolbox», содержащая кнопки, с помощью которых элементы управления можно разместить на создаваемой форме (аналогично тому, как командные кнопки размещались на рабочем листе). Если данная панель инструментов не отображается, выполните команду View→ToolBox.
После размещения элемента управления на форме с помощью окна свойств (Properties) обычно задаются свойства выделенного объекта. В случае, если окно неактивно вызвать его можно в меню View→Properties Window, или нажав на клавиатуре F4.
Рисунок 7 – Окно конструктора форм
Создайте пользовательскую форму для вычисления длины гипотенузы треугольника по заданным катетам. При вычислениях использовать созданную ранее функцию «Пифагор».
Для этого:
1 Откройте рабочую книгу, содержащую функцию «Пифагор». Обратите внимание, что если вы решили создавать форму в новой книге, то функцию Пифагора нужно будет прописать заново, иначе расчет станет невозможным.
2 Перейдите в редактор VB и выполните команду Insert→UserForm для создания нового макета пользовательской формы.
3 Выделите форму, щелкнув по ней левой кнопкой мыши, в окне «Properties» найдите свойство «Caption» (данное свойство хранит заголовок формы, текст на кнопке и т.п., т.е. текст, связанный с объектом) и установите для него значение «Теорема Пифагора».
4 Добавьте на форму объект «CommandButton» (кнопка), три объекта «TextBox» (текстовое поле) и три объекта «Label» (метка, текст на форме).
5 Для удобства обращения к объектам, измените их имена. Для этого необходимо изменить свойство «Name». Объекту TextBox1 задайте имя «a», TexxtBox2 – «b», TextBox3 – «c».
6 Для объекта Label1 установите значение свойства Caption – «a=», для Label2 – «b=», для Label3 – «c=», для CommandButton1 – «Вычислить» (рисунок 8).
7 Дважды щелкните по кнопке CommandButton1. В результате будет открыт редактор кода и автоматически создастся процедура обработки нажатия кнопки.
8 В окне кода между двумя появившимися строчками напишите программный код для данной кнопки:
Private Sub CommandButton1_Click()
c.Text = Пифагор(a.Text, b.Text)
End Sub
Свойство «Text» хранит текст, введенный в текстовые поля.
Рисунок 8 – Конструктор формы «Теорема Пифагора»
9 Перейдите на «Лист1» и создайте кнопку для открытия формы. Перейдите в режим конструктора, выбрав в Меню Разработчик / Элементы управления / Режим конструктора. Выделите текст данной кнопки и переименуйте ее, введя название «Открыть форму».
10 Перейдем в редактор VB, выделив кнопку и выбрав в Меню Разработчик / Элементы управления / Просмотр кода. В появившемся модуле «Лист1» введите программный код:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
В результате при нажатии на кнопку будет отображаться форма «Теорема Пифагора» (для этого нужно выйти из режима конструктора). Форму также можно отобразить из редактора VB, когда открыт конструктор форм, командой Run→Run Sub/UserFormили нажав на клавиатуре F5.
Практическое задание 4
Цель – решение задач с условием с использованием функции если.
Для организации процесса вычислений в зависимости от какого-либо Условия служит условный оператор If/Then/Else.
Если в зависимости от некоторого Условия, необходимо выполнить только одно действие, то используется однострочная форма оператора If/Then/Else — If Условие Then Оператор1 [Else Оператор2].
Если Условие выполняется, то выполняется Оператор1, в противном случае выполняется Оператор2.
Если в зависимости от некоторого Условия необходимо выполнить только несколько действий, то используется многострочная форма оператора If/Then/Else:
If Условие Then
БлокОператоров1
[Else
БлокОператоров2]
End If
Если Условие выполняется, то выполняется БлокОператоров, в противном случае, выполняется БлокОператоров2.
Блоки операторов могут содержать сколько угодно операторов.
Может возникнуть ситуация, когда при невыполнении Условия требуется проверить еще одно Условие. В этом случае используется следующая многострочная форма:
If Условие1 Then
БлокОператоров1
[ElseIf Условие2 Then
БлокОператоров2]
…………………………
[Else
БлокОператоров]
End If
Если Условие1 выполняется, то выполняется БлокОператоров1, в противном случае проверяется Условие2. Если оно выполняется, то выполняется БлокОператоров2 и т.д. Если ни одно из Условий не выполняется, то выполняется БлокОператоров. В данной конструкции может содержаться сколько угодно блоков ElseIf.
Условие может быть как простым (например, a > 5), так и составным (например, a > 5 и b > 2). Для объединения простых Условий используются логические операторы And (И – два или более Условий выполняются одновременно), Or(ИЛИ – выполняется хотя бы одно из Условий), Not (НЕ– отрицание Условия).
Решим следующую задачу: На банковский вклад начисляются проценты в сумме 20 % годовых, если сумма вклада превышает 200 000 р. , 15 % годовых, если сумма от 100 000 до 200 000 р., 10 % годовых — на суммы до 50 000 р., 12 % годовых — на остальные суммы. Рассчитать сумму полученных вкладчиком процентов по истечении срока.
Для решения поставленной задачи запустим редактор VBA и создадим новую процедуру (Insert – Module; Insert – Procedure; тип Function). Назовем ее «Процент». Предполагается, что пользователь должен ввести значение суммы (назовем сумму переменной S), а программа в зависимости от этой суммы рассчитать сумму вклада с учетом того, какой процент на данную сумму должен быть начислен.
Public Function Процент (S)
If S > 200000 Then
Процент = S + S * 0.2
ElseIf S <= 200000 And S > 100000 Then
Процент = S + S * 0.15
ElseIf S < 50000 Then
Процент = S + S * 0.1
Else
Процент = S + S * 0.12
End If
End Function
Решение задачи на листе Excel будет выглядеть следующим образом.
Рисунок 9 – Решение задачи с использованием функции Процент
Аналогичным образом пропишите в VBA и оформите на листе Excel следующую задачу: Рассчитать стоимость заказа в типографии, если действуют следующие расценки: печать до 100 экземпляров – 10 р. за лист; от 100 до 1000 экземпляров – 7 р. за лист; свыше 1000 – 5 р. за лист. Пропишите формулу и рассчитайте на рабочем листе Excel стоимость печати для 50, 150, 500, 900, 1000, 1200 и 1500 экземпляров.
Гарбер Г.3. — Основы программирования на Visual Basic и VBA в Excel 2007. — Трюки и приемы в Microsoft Excel
Рассматриваются основные элементы среды разработки программ, а также базовые конструкции алгоритмических языков Visual Basic и VBA (Visual Basic для приложений). В качестве пользовательского интерфейса программы (макроса) используются стандартные окна Windows, текстовые файлы, формы, таблица Exccl. Рассматривается также вопрос разработки пользовательских функций Excel. Продемонстрированы приемы работы с отладчиком программ, справочными системами, макрорекордером и личной книгой макросов. Опыт программирования не является обязательным. Книга ориентирована на преподавателей информатики, студентов вузов и колледжей, а также на широкий круг читателей, имеющих желание научиться программировать в табличном процессоре Excel и тем самым существенно расширить круг решаемых задач.
Изучение данной книги возможно лишь в процессе работы на компьютере, оснащенном табличным процессором Excel. Книга рассчитана на читателя, уже имеющего опыт работы с Excel, а также с программой Проводник (Windows Explorer) и текстовым процессором Word, причем читатель должен уметь пользоваться буфером обмена операционной системы Windows.
В книге рассмотрены базовые конструкции, имеющиеся во всех алгоритмических языках, — оператор присваивания, условные операторы, циклы, массивы и др. Кроме того, рассмотрены вопросы разработки макросов и пользовательских функций Excel средствами макрорекордера и алгоритмического языка VBA (Visual Basic for Applications — VB для приложений), являющегося расширением Visual Basic: помимо всех основных конструкций VB, язык VBA включает ряд специфических конструкций. В качестве пользовательского интерфейса программы (макроса) используются стандартные окна операционной системы Windows, текстовые файлы, формы, таблица Excel.
Пользовательским интерфейсом программы называется средство общения пользователя с программой. Форма — это прямоугольник с текстовыми полями, кнопками, переключателями и другими элементами управления, знакомыми пользователям Microsoft Office. При изучении VB с помощью данной книги рекомендуем тщательно прорабатывать на компьютере приведенные в ней программы. Рекомендуем также выполнять все задания и чаще использовать такие мощные средства обучения, как отладчик программ VB, макрорекордер Excel и справочные системы Excel и VB.
Лабораторная работа Основы программирования в VBA (VBA 0) Цель работы: получить простейшие навыки в реализации программ в VBA.
ИНФОРМАТИКА. Составитель О.В. Шефер
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ
ПодробнееРабота с процедурами VBA
Работа с процедурами VBA Процедура это последовательность операторов VBA, расположенная в модуле VBA, доступ к которому можно получить с помощью VBE. Модуль может включать любое количество процедур. 1
ПодробнееСумма по цвету ячеек в Excel
Сумма по цвету ячеек в Excel Как я уже писал ранее, профессиональная работа в Excel рано или поздно приведет вас к необходимости написания собственных функций. Довольно часто пользователи «раскрашивают»
ПодробнееЗапуск макроса кнопкой
Запуск макроса кнопкой Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel. Задача: в предыдущей заметке мы рассказали, как запускать макросы клавиатурными
ПодробнееРабота с редактором Visual Basic в среде MS Excel
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Хабаровская государственная академия экономики
ПодробнееЛАБОРАТОРНАЯ РАБОТА 1.
ЛАБОРАТОРНАЯ РАБОТА 1. 1. Вход в среду VB Для входа в среду VB используется вкладка Разработчик окна Excel, которая находится в одном ряду с вкладками Главная, Вставка и др. При ее отсутствии следует выполнить
ПодробнееЧАСТЬ I. ВВЕДЕНИЕ В VBA
Содержание Введение 15 Общие сведения о книге 15 Для кого предназначена эта книга 16 Структура книги 16 Условные обозначения 17 От издательства Диалектика 18 ЧАСТЬ I. ВВЕДЕНИЕ В VBA 19 Глава 1. Язык VBA
ПодробнееПриложение 2. ИГРА БЫКИ-КОРОВЫ
Автор: Тенгиз Куправа www.kuprava.ru Приложение 2. ИГРА БЫКИ-КОРОВЫ Язык Visual Basic for Applications (VBA) используется для программирования приложений Microsoft Office. Он поддерживает современные технологии
ПодробнееРабота с макросами в Excel
Работа с макросами в Excel Создание макроса В Excel, так же как и в любом другом пакете Microsoft Office, существует возможность сохранить набор проделанных операций и, в дальнейшем, выполнить его, используя
ПодробнееРЕДАКТОР VISUAL BASIC
РЕДАКТОР VISUAL BASIC Гедранович Валентина Васильевна 28 июня 2012 г. Аннотация Глава 18 из УМК: Гедранович, В.В. Основы компьютерных информационных технологий: учеб.-метод. комплекс / В.В. Гедранович,
ПодробнееЛАБОРАТОРНАЯ РАБОТА 3 РАЗРАБОТКА
ЛАБОРАТОРНАЯ РАБОТА 3 РАЗРАБОТКА 1 Цель занятия Сформировать практические навыки по работе со строками и диалоговыми окнами средствами VBA в приложении Microsoft Word. 2 Общие теоретические сведения 2.1
ПодробнееВВЕДЕНИЕ В VISUAL BASIC FOR APPLICATIONS
2 ВВЕДЕНИЕ В VISUAL BASIC FOR APPLICATIONS Информатика 2 семестр План лекции 1. Макросы и язык VBA 2. Объектно-ориентированные аспекты VBA 3. Переменные и типы данных 4. Ветвления 5. Циклы 6. Функции 7.
ПодробнееРазработка приложений в Microsoft Excel 2010
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Тихоокеанский государственный университет»
ПодробнееСУБД MS.
ACCESS. Тренер: Аюпов Р.Х.СУБД MS. ACCESS Тренер: Аюпов Р.Х. СУБД MS ACCESS Система управления базами данных Microsoft Access является одной из популярных настольных реляционных баз данных. Современные версии СУБД Access являются
ПодробнееНастройка среды Visual Basic Editor
Настройка среды Visual Basic Editor В процессе программирования на VBA в Excel вы будете проводить много времени, работая в окнах VBE. Чтобы сделать редактор более удобным, вам понадобится настройка среды
ПодробнееПроцедуры, модули и модули классов
УРОК 7 Процедуры, модули и модули классов Содержание урока Понятие процедуры Работа с модулями Использование модулей классов Создание и выполнение процедур Осталось 30 минут В предыдущих уроках было продемонстрировано,
ПодробнееТРЕНИРОВОЧНАЯ РАБОТА 6А
ТРЕНИРОВОЧНАЯ РАБОТА 6А Создание приложения с пользовательской формой и элементами управления ТРЕНИРОВОЧНОЕ ЗАДАНИЕ Создать приложение для вычисления общей поверхности и объёма конуса по заданному радиусу
ПодробнееУстранение нарушений в работе
ЧАСТЬ II Устранение нарушений в работе В ЭТОЙ ЧАСТИ. .. ГЛАВА 16. Отладка ключ к успешной разработке ГЛАВА 17. Обработка ошибок подготовка к неизбежному ГЛАВА 18. Оптимизация приложений 19-ch26.indd 805
ПодробнееЛабораторная работа 1
1 Лабораторная работа 1 Использование элементов управления Button, Label и Text Box. Цель работы: ознакомиться с общим интерфейсом среды разработки Microsoft Visual Studio и языком программирования Microsoft
ПодробнееВызов функций Windows API из кода VBA
Вызов функций Windows API из кода VBA Одна из интересных возможностей VBA поддержка функций, которые хранятся в динамически подключаемых библиотеках (Dynamic Link Libraries DLL). В заметке демонстрируются
Подробнее1 Практическое занятие 1. Массивы данных
1 Практическое занятие 1 Массивы данных Цель работы: ознакомиться с понятием массива данных и методами его обработки. 1. Массивы данных Массив данных совокупность значений, объединенная общим названием.
ПодробнееСреда MS Visual Studio 2005
Среда MS Visual Studio 2005 Для работы MS Visual Studio 2005 компьютер пользователя должен удовлетворять следующим аппаратным требованиям: процессор с частотой не ниже 600 МГц; ОЗУ 256 Мб; 3 Гб свободного
ПодробнееГлава 21. Power BI Desktop
Глава 21. Power BI Desktop Это продолжение перевода книги Роб Колли. Формулы DAX для Power Pivot. Главы не являются независимыми, поэтому рекомендую начать сначала. Предыдущая глава Содержание Следующая
ПодробнееПользовательские функции VBA
Пользовательские функции VBA Ранее были рассмотрены процедуры VBA. В настоящей заметке рассмотрены функции VBА. 1 Функция это процедура VBA, которая выполняет вычисления и возвращает значение. Функции
ПодробнееРабочая программа учебной дисциплины
Министерство образования Нижегородской области Государственное бюджетное профессиональное образовательное учреждение «Областной многопрофильный техникум» Рабочая программа учебной дисциплины ОП.11 Информационные
ПодробнееОфисное программирование
Санкт-Петербургский государственный университет кино и телевидения Российский государственный педагогический университет им. А.И. Герцена А.И. Ходанович Офисное программирование Лабораторный практикум
ПодробнееРуководство пользователя
Руководство пользователя Добавление электронной цифровой подписи в документы Microsoft Word 2003/2007 Данное руководство предназначено для клиентов компании КриптоЦентр, которые приобрели лицензию на программный
ПодробнееОсновы информационных технологий
Лабораторная работа 3. VBA. Макропрограммирование. Создание командных макросов Цель работы получить навыки создания командных макросов с помощью Макрорекордера и применения их для ячеек рабочего листа.
ПодробнееЛекция Автоматизация проектов VBA
Лекция 6 1. Автоматизация проектов VBA Реализации алгоритмов решения задачи табулирования функций с использованием средств VBA, рассмотренные в предыдущих лекциях, мало отличаются от реализаций этих же
ПодробнееАЛГОРИТМЫ И ПРОГРАММНЫЙ КОД
порядок сбора АЛГОРИТМЫ И ПРОГРАММНЫЙ КОД Часть 0. Введение. Лабораторное занятие. Алгоритмом определяется порядок действий для решения конкретной задачи. Для инициализации работы алгоритма нужны входные
Подробнее1 МАТЕРИАЛ ДЛЯ ИЗУЧЕНИЯ Прочитайте:
1 МАТЕРИАЛ ДЛЯ ИЗУЧЕНИЯ Прочитайте: Приложение Microsoft Excel позволяет решать широкий круг задач обработки данных, представленных в табличной форме. Но, например, выделить ячейки таблицы, значения которых
ПодробнееФедеральное агентство по образованию
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Санкт-Петербургский государственный технологический институт (Технический университет)
ПодробнееЛекция 15 17. Базы данных
Лекция 15 17. Базы данных База данных обеспечивает хранения сложных структурированных данных и при этом позволяет сравнительно просто извлекать данные. Базы данных поддерживаются специальными программами,
ПодробнееОсновные понятия языка программирования VBA
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н.И.Лобачевского» Факультет вычислительной
ПодробнееDim VarName([Subscripts]) [As Type]
Тренировочная работа 8. Работа с массивами данных. Обработка одномерных массивов Краткие теоретические сведения Массив это множество однотипных элементов. Каждый массив имеет уникальное собственное имя.
Подробнее. ОСНОВЫ MICROSOFT OFFICE XP
Содержание Введение…3 Часть I. ОСНОВЫ MICROSOFT OFFICE XP Глава 1.1. Структура пакета Office Состав пакета…8 Назначение Microsoft Office XP…11 Установка пакета Office…11 Глава 1.2. Интерфейс пакета
ПодробнееСоздание макросов в Word
Работа 12 Создание макросов в Word Цель работы: научиться создавать макросы в Word. Содержание работы: 1 Создание и запуск макроса 2 Создание макроса, запускаемого из меню Сервис. 3 Создание макроса, запускаемого
ПодробнееExcel VBA Range Object — Простые макросы Excel
Примеры диапазонов | Клетки | Объявить объект диапазона | Выбрать | Ряды | Колонны | Копировать / Вставить | Очистить | Граф
Объект Range , который является представлением ячейки (или ячеек) на вашем листе, является наиболее важным объектом Excel VBA . В этой главе дается обзор свойств и методов объекта Range. Свойства — это то, что есть у объекта (они описывают объект), а методы что-то делают (они выполняют действие с объектом).
Примеры диапазонов
Поместите командную кнопку на лист и добавьте следующую строку кода:
Диапазон («B3»). Значение = 2
Результат при нажатии кнопки команды на листе:
Код:
Диапазон («A1: A4»). Значение = 5
Результат:
Код:
Диапазон («A1: A2, B3: C4»). Значение = 10
Результат:
Примечание: чтобы ссылаться на именованный диапазон в коде Excel VBA, используйте такую строку кода:
Range («Цены»).Стоимость = 15
Ячейки
Вместо Range вы также можете использовать Cells. Использование ячеек особенно полезно, когда вы хотите перебирать диапазоны.
Код:
Ячейки (3, 2). Значение = 2
Результат:
Объяснение: Excel VBA вводит значение 2 в ячейку на пересечении строки 3 и столбца 2.
Код:
Диапазон (Ячейки (1, 1), Ячейки (4, 1)). Значение = 5
Результат:
Объявить объект диапазона
Вы можете объявить объект Range с помощью ключевых слов Dim и Set.
Код:
Пример Dim As RangeSet example = Range («A1: C4»)
example.Value = 8
Результат:
Выбрать
Важным методом объекта Range является метод Select. Метод Select просто выбирает диапазон.
Код:
Пример Dim As RangeSet example = Range («A1: C4») Пример
. Выберите
Результат:
Примечание: чтобы выбрать ячейки на другом листе, сначала необходимо активировать этот лист.Например, следующие строки кода выбирают ячейку B7 на третьем листе слева.
Рабочие листы (3). Активировать
Рабочие листы (3). Диапазон («B7»). Выберите
рядов
Свойство Rows предоставляет доступ к определенной строке диапазона.
Код:
Пример Dim As RangeSet example = Range («A1: C4»)
example.Rows (3). Выберите
Результат:
Примечание: рамка только для иллюстрации.
Колонны
Свойство Columns предоставляет доступ к определенному столбцу диапазона.
Код:
Пример Dim As RangeSet example = Range («A1: C4»)
example.Columns (2). Выберите
Результат:
Примечание: рамка только для иллюстрации.
Копировать / Вставить
Методы копирования и вставки используются для копирования диапазона и вставки его в другое место на листе.
Код:
Диапазон («A1: A2»). Выберите. Selection.Copy
Range («C3»). Выберите
ActiveSheet.Paste
Результат:
Хотя это разрешено в Excel VBA, гораздо лучше использовать приведенную ниже строку кода, которая делает то же самое.
Диапазон («C3: C4»). Значение = Диапазон («A1: A2»). Значение
Прозрачный
Чтобы очистить содержимое диапазона Excel, можно использовать метод ClearContents.
Диапазон («A1»). ClearContents
или просто используйте:
Диапазон («A1»). Значение = «»
Примечание: используйте метод Clear, чтобы очистить содержимое и формат диапазона. Используйте метод ClearFormats только для очистки формата.
Счет
С помощью свойства Count вы можете подсчитать количество ячеек, строк и столбцов в диапазоне.
Примечание: рамка только для иллюстрации.
Код:
Пример Dim As RangeSet example = Range («A1: C4»)
Пример MsgBox.Count
Результат:
Код:
Dim example As RangeSet example = Range («A1: C4»)
MsgBox example.Rows.Count
Результат:
Примечание: аналогичным образом можно подсчитать количество столбцов диапазона.
Excel VBA Workbook и объект рабочего листа
Иерархия объектов | Коллекции | Свойства и методы
Узнайте больше о Workbook и Worksheet объекте в Excel VBA .
Иерархия объектов
В Excel VBA объект может содержать другой объект, и этот объект может содержать другой объект и т. Д. Другими словами, программирование Excel VBA предполагает работу с иерархией объектов. Возможно, это звучит довольно запутанно, но мы проясним это.
Мать всех объектов — это сам Excel. Мы называем это объектом Application. Объект приложения содержит другие объекты. Например, объект Workbook (файл Excel). Это может быть любая созданная вами книга.Объект Workbook содержит другие объекты, например объект Worksheet. Объект Worksheet содержит другие объекты, такие как объект Range.
В главе «Создание макроса» показано, как запустить код, щелкнув командную кнопку. Мы использовали следующую строку кода:
Диапазон («A1»). Value = «Hello»
, но на самом деле мы имели в виду:
Application.Workbooks («create-a-macro»). Worksheets (1) .Range («A1»). Value = «Hello»
Примечание: объекты соединены точкой.К счастью, нам не нужно добавлять строку кода таким образом. Это потому, что мы поместили нашу командную кнопку в create-a-macro.xlsm, на первом листе. Имейте в виду, что если вы хотите изменить что-то на разных листах, вы должны включить объект Worksheet. Читать дальше.
Коллекции
Возможно, вы заметили, что рабочие книги и рабочие листы имеют множественное число. Это потому, что они коллекции. Коллекция Workbooks содержит все открытые в данный момент объекты Workbook.Коллекция Worksheets содержит все объекты Worksheet в книге.
Вы можете ссылаться на член коллекции, например, на отдельный объект Worksheet, тремя способами.
1. Использование имени рабочего листа.
Рабочие листы («Продажи»). Диапазон («A1»). Значение = «Привет»
2. Используя порядковый номер (1 — это первый рабочий лист слева).
Рабочие листы (1) .Range («A1»). Value = «Hello»
3.Использование CodeName.
Sheet1.Range («A1»). Value = «Hello»
Чтобы увидеть CodeName листа, откройте редактор Visual Basic. В обозревателе проектов первое имя — это CodeName. Второе имя — это имя рабочего листа (Продажи).
Примечание. CodeName остается прежним, если вы изменяете имя рабочего листа или их порядок, так что это самый безопасный способ ссылки на рабочий лист. Щелкните «Вид», «Окно свойств», чтобы изменить кодовое имя рабочего листа.Есть один недостаток: вы не можете использовать CodeName, если ссылаетесь на лист в другой книге.
Свойства и методы
Теперь давайте взглянем на некоторые свойства и методы коллекции Workbooks and Worksheets. Свойства — это то, что есть в коллекции (они описывают коллекцию), а методы что-то делают (они выполняют действие с коллекцией).
Поместите командную кнопку на лист и добавьте строки кода:
1.Метод Add коллекции Workbooks создает новую книгу.
Рабочие тетради. Добавить
Примечание: метод Add коллекции Worksheets создает новый рабочий лист.
2. Свойство Count коллекции Worksheets подсчитывает количество листов в книге.
MsgBox Worksheets.Count
Результат при нажатии кнопки команды на листе:
Примечание. Свойство Count коллекции Workbooks подсчитывает количество активных книг.
Начало работы с VBA в Office
- 25 минут на чтение
В этой статье
Вы сталкиваетесь с повторяющейся очисткой пятидесяти таблиц в Word? Вы хотите, чтобы конкретный документ предлагал пользователю вводить данные при его открытии? Вам сложно понять, как эффективно перенести контакты из Microsoft Outlook в электронную таблицу Microsoft Excel?
Вы можете выполнять эти задачи и многое другое, используя Visual Basic для приложений (VBA) для Office — простой, но мощный язык программирования, который можно использовать для расширения приложений Office.
Эта статья предназначена для опытных пользователей Office, которые хотят узнать о VBA и понять, как программирование может помочь им в настройке Office.
Пакет приложений Office обладает богатым набором функций. Существует множество различных способов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями. Великая сила программирования на VBA в Office заключается в том, что почти все операции, которые вы можете выполнить с помощью мыши, клавиатуры или диалогового окна, также можно выполнить с помощью VBA.Кроме того, если это можно сделать один раз с помощью VBA, то так же легко можно сделать и сто раз. (Фактически, автоматизация повторяющихся задач — одно из наиболее распространенных применений VBA в Office.)
Помимо возможностей написания сценариев VBA для ускорения повседневных задач, вы можете использовать VBA для добавления новых функций в приложения Office или для подсказки и взаимодействия с пользователем ваших документов способами, которые соответствуют потребностям вашего бизнеса. Например, вы можете написать код VBA, который отображает всплывающее сообщение, напоминающее пользователям о необходимости сохранения документа на конкретный сетевой диск при первой попытке сохранить его.
В этой статье исследуются некоторые из основных причин использования возможностей программирования на VBA. Он исследует язык VBA и готовые инструменты, которые вы можете использовать для работы со своими решениями. Наконец, он включает в себя несколько советов и способов избежать некоторых типичных ошибок и ошибок при программировании.
Примечание
Заинтересованы в разработке решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, такую как HTML5, JavaScript, CSS3 и XML.
Когда использовать VBA и почему
Есть несколько основных причин рассмотреть возможность программирования на VBA в Office.
Автоматизация и повторение
VBA эффективен и действенен, когда дело доходит до повторяющихся решений проблем форматирования или исправления. Например, вы когда-нибудь меняли стиль абзаца вверху каждой страницы в Word? Вам когда-нибудь приходилось переформатировать несколько таблиц, которые были вставлены из Excel в документ Word или электронное письмо Outlook? Приходилось ли вам когда-нибудь вносить одно и то же изменение в несколько контактов Outlook?
Если у вас есть изменение, которое необходимо внести более десяти или двадцати раз, возможно, стоит автоматизировать его с помощью VBA.Если это изменение, которое вам нужно делать сотни раз, его, безусловно, стоит рассмотреть. Практически любое изменение форматирования или редактирования, которое вы можете сделать вручную, можно выполнить в VBA.
Расширения взаимодействия с пользователем
Бывают случаи, когда вы хотите побудить или заставить пользователей взаимодействовать с приложением или документом Office определенным образом, который не является частью стандартного приложения. Например, вы можете захотеть побудить пользователей предпринять определенные действия при открытии, сохранении или печати документа.
Взаимодействие между офисными приложениями
Вам нужно скопировать все ваши контакты из Outlook в Word, а затем отформатировать их определенным образом? Или вам нужно переместить данные из Excel в набор слайдов PowerPoint? Иногда простое копирование и вставка не делает того, что вы хотите, или оно выполняется слишком медленно. Вы можете использовать программирование на VBA для одновременного взаимодействия с деталями двух или более приложений Office, а затем изменять содержимое в одном приложении на основе содержимого в другом.
По-другому делать
ПрограммированиеVBA — мощное решение, но не всегда оптимальный подход. Иногда имеет смысл использовать другие способы для достижения своих целей.
Важнейший вопрос, который следует задать, — есть ли более простой способ. Прежде чем начать проект VBA, рассмотрите встроенные инструменты и стандартные функции. Например, если у вас есть трудоемкая задача редактирования или макета, подумайте об использовании стилей или клавиш-ускорителей для решения проблемы. Можете ли вы выполнить задачу один раз, а затем использовать CTRL + Y (Повторить), чтобы повторить ее? Можете ли вы создать новый документ с правильным форматом или шаблоном, а затем скопировать его содержимое в этот новый документ?
Офисные приложения — мощные; решение, которое вам нужно, может уже быть там.Прежде чем приступить к программированию, найдите время, чтобы узнать больше об Office.
Перед тем, как начать проект VBA, убедитесь, что у вас есть время поработать с VBA. Программирование требует сосредоточенности и может быть непредсказуемым. Тем более, что новичок, никогда не обращайтесь к программированию, если у вас нет времени тщательно поработать. Попытка написать «быстрый сценарий» для решения проблемы при приближении крайнего срока может привести к очень стрессовой ситуации. Если вы спешите, вы можете использовать обычные методы, даже если они однообразны и однообразны.
Программирование на VBA 101
Использование кода для работы приложений
Вы можете подумать, что написание кода загадочно или сложно, но основные принципы основаны на повседневных рассуждениях и вполне доступны. Приложения Microsoft Office созданы таким образом, что они предоставляют объекты, называемые объектами, которые могут получать инструкции, почти так же, как в телефоне созданы кнопки, которые вы используете для взаимодействия с телефоном. Когда вы нажимаете кнопку, телефон распознает инструкцию и включает соответствующий номер в последовательность, которую вы набираете.В программировании вы взаимодействуете с приложением, отправляя инструкции различным объектам в приложении. Эти объекты обширны, но у них есть свои пределы. Они могут делать только то, для чего они предназначены, и они будут делать только то, что вы им прикажете делать.
Например, представьте пользователя, который открывает документ в Word, вносит несколько изменений, сохраняет документ, а затем закрывает его. В мире программирования VBA Word предоставляет объект Document. Используя код VBA, вы можете указать объекту Document выполнять такие действия, как «Открыть», «Сохранить» или «Закрыть».
В следующем разделе обсуждается организация и описание объектов.
Объектная модель
Разработчики организуют программные объекты в иерархию, и эта иерархия называется объектной моделью приложения. Word, например, имеет объект Application верхнего уровня, который содержит объект Document. Объект Document содержит объекты Paragraph и так далее. Объектные модели примерно отражают то, что вы видите в пользовательском интерфейсе. Они представляют собой концептуальную карту приложения и его возможностей.
Определение объекта называется классом, поэтому вы можете увидеть, что эти два термина используются как взаимозаменяемые. Технически класс — это описание или шаблон, который используется для создания или создания экземпляра объекта.
Когда объект существует, вы можете управлять им, задавая его свойства и вызывая его методы. Если вы думаете об объекте как о существительном, свойства — это прилагательные, описывающие существительное, а методы — это глаголы, которые оживляют существительное. Изменение свойства изменяет качество внешнего вида или поведения объекта.Вызов одного из методов объекта заставляет объект выполнить какое-то действие.
Код VBA в этой статье работает с открытым приложением Office, в котором многие объекты, которыми манипулирует код, уже запущены и работают; например, само приложение, рабочий лист в Excel, документ в Word, презентация в PowerPoint, объекты проводника и папки в Outlook. Как только вы узнаете базовый макет объектной модели и некоторые ключевые свойства приложения, которые предоставляют доступ к его текущему состоянию, вы можете начать расширять это приложение Office и управлять им с помощью VBA в Office.
Методы
В Word, например, вы можете изменять свойства и вызывать методы текущего документа Word, используя свойство ActiveDocument объекта Application . Это свойство ActiveDocument возвращает ссылку на объект Document , который в настоящее время активен в приложении Word. «Возвращает ссылку на» означает «дает вам доступ к».
Следующий код делает именно то, что говорит; то есть сохраняет активный документ в приложении.
Application.ActiveDocument.Save
Прочтите код слева направо: «В этом приложении с документом, на который ссылается ActiveDocument, вызовите метод Save ». Имейте в виду, что Save — это простейший метод; это не требует от вас каких-либо подробных инструкций. Вы поручаете объекту Document команду Save , и это не требует от вас дополнительных данных.
Если для метода требуется дополнительная информация, эти сведения называются параметрами.Следующий код запускает метод SaveAs , для которого требуется новое имя файла.
Application.ActiveDocument.SaveAs («Имя нового документа.docx»)
Значения, перечисленные в скобках после имени метода, являются параметрами. Здесь новое имя файла является параметром для метода SaveAs .
Недвижимость
Вы используете тот же синтаксис, чтобы установить свойство, которое вы используете для чтения свойства. Следующий код выполняет метод выбора ячейки A1 в Excel, а затем устанавливает свойство для помещения чего-либо в эту ячейку.
Application.ActiveSheet.Range ("A1"). Выберите
Application.Selection.Value = "Привет, мир"
Первая задача в программировании на VBA — получить представление об объектной модели каждого приложения Office и прочитать синтаксис объекта, метода и свойства. Объектные модели аналогичны во всех приложениях Office, но каждая зависит от типа документов и объектов, с которыми она работает.
В первой строке фрагмента кода находится объект Application , на этот раз Excel, а затем ActiveSheet , который обеспечивает доступ к активному рабочему листу.После этого идет термин, который не так знаком, Range, что означает «определить таким образом диапазон ячеек». Код инструктирует Range создать себя только с A1 в качестве определенного набора ячеек. Другими словами, первая строка кода определяет объект Range и запускает для него метод, чтобы выбрать его. Результат автоматически сохраняется в другом свойстве приложения Application , которое называется Selection .
Вторая строка кода устанавливает для свойства Value объекта Selection текст «Hello World», и это значение отображается в ячейке A1.
Простейший код VBA, который вы пишете, может просто получить доступ к объектам в приложении Office, с которым вы работаете, и задать свойства. Например, вы можете получить доступ к строкам в таблице в Word и изменить их форматирование в сценарии VBA.
Звучит просто, но может быть невероятно полезным; как только вы сможете написать этот код, вы сможете использовать всю мощь программирования для внесения тех же изменений в несколько таблиц или документов или внести их в соответствии с какой-либо логикой или условием.Для компьютера внесение 1000 изменений ничем не отличается от внесения 10, поэтому здесь есть экономия на масштабе с более крупными документами и проблемами, и именно здесь VBA может действительно проявить себя и сэкономить ваше время.
Макросы и редактор Visual Basic
Теперь, когда вы знаете кое-что о том, как приложения Office предоставляют свои объектные модели, вы, вероятно, захотите попробовать вызывать методы объекта, устанавливать свойства объекта и реагировать на события объекта. Для этого вы должны написать свой код в месте и таким образом, чтобы Office мог его понять; обычно с помощью редактора Visual Basic.Хотя он установлен по умолчанию, многие пользователи даже не знают, что он доступен, пока он не будет включен на ленте.
Все приложения Office используют ленту. Одна вкладка на ленте — это вкладка Developer , где вы получаете доступ к редактору Visual Basic и другим инструментам разработчика. Поскольку в Office по умолчанию вкладка Developer не отображается, ее необходимо включить, выполнив следующую процедуру:
Включение вкладки «Разработчик»
На вкладке Файл выберите Параметры , чтобы открыть диалоговое окно Параметры .
Выберите Настроить ленту в левой части диалогового окна.
Под Выберите команды из в левой части диалогового окна, выберите Популярные команды .
В разделе Настроить ленту в правой части диалогового окна выберите Основные вкладки в раскрывающемся списке, а затем установите флажок Developer .
Выберите OK .
Примечание
В Office 2007 вы открыли вкладку Developer , нажав кнопку Office, выбрав Options , а затем установив флажок Show Developer на ленте в категории Popular диалогового окна Options .
После включения вкладки Developer легко найти кнопки Visual Basic и Macros .
Рисунок 1.Кнопки на вкладке Разработчик
Проблемы безопасности
Для защиты пользователей Office от вирусов и опасного кода макроса нельзя сохранить код макроса в стандартном документе Office, который использует стандартное расширение файла. Вместо этого вы должны сохранить код в файле со специальным расширением. Например, вы не можете сохранять макросы в стандартном документе Word с расширением .docx; вместо этого вы должны использовать специальный документ Word с поддержкой макросов с расширением .docm.
Когда вы открываете файл.docm, служба безопасности Office может по-прежнему препятствовать запуску макросов в документе, сообщая вам или не сообщая об этом. Изучите настройки и параметры в Центре управления безопасностью всех приложений Office. Настройка по умолчанию отключает запуск макроса, но предупреждает вас, что макросы были отключены, и дает вам возможность снова включить их для этого документа.
Вы можете назначить определенные папки, в которых могут запускаться макросы, создав «Надежные расположения», «Надежные документы» или «Надежные издатели». Самый переносимый вариант — использовать Trusted Publishers, который работает с документами с цифровой подписью, которые вы распространяете.Для получения дополнительных сведений о параметрах безопасности в конкретном приложении Office откройте диалоговое окно Параметры , выберите Центр управления безопасностью , а затем выберите Параметры центра управления безопасностью .
Примечание
Некоторые приложения Office, например Outlook, по умолчанию сохраняют макросы в главном шаблоне на локальном компьютере. Хотя эта стратегия уменьшает проблемы локальной безопасности на вашем собственном компьютере при запуске собственных макросов, она требует стратегии развертывания, если вы хотите распространять свой макрос.
Запись макроса
Когда вы нажимаете кнопку Macro на вкладке Developer , открывается диалоговое окно Macros , которое дает вам доступ к подпрограммам или макросам VBA, к которым вы можете получить доступ из определенного документа или приложения. Кнопка Visual Basic открывает редактор Visual Basic, в котором вы можете создавать и редактировать код VBA.
Еще одна кнопка на вкладке Developer в Word и Excel — это кнопка Record Macro , которая автоматически генерирует код VBA, который может воспроизводить действия, которые вы выполняете в приложении. Record Macro — потрясающий инструмент, который вы можете использовать, чтобы узнать больше о VBA. Чтение сгенерированного кода может дать вам представление о VBA и обеспечить надежный мост между вашими знаниями Office как пользователя и вашими знаниями как программиста. Единственное предостережение заключается в том, что сгенерированный код может сбивать с толку, потому что редактор макросов должен делать некоторые предположения о ваших намерениях, и эти предположения не обязательно точны.
Для записи макроса
Откройте Excel в новой книге и выберите вкладку Developer на ленте.Выберите Record Macro и примите все настройки по умолчанию в диалоговом окне Record Macro , включая Macro1 в качестве имени макроса и This Workbook в качестве местоположения.
Выберите OK , чтобы начать запись макроса. Обратите внимание, как текст кнопки изменится на Остановить запись . Нажмите эту кнопку в тот момент, когда вы завершите действия, которые хотите записать.
Выберите ячейку B1 и введите классическую первую строку программиста: Hello World.Прекратите печатать и посмотрите на кнопку Остановить запись ; он неактивен, потому что Excel ожидает, когда вы закончите вводить значение в ячейку.
Выберите ячейку B2, чтобы завершить действие в ячейке B1, а затем выберите Остановить запись .
Выберите Macros на вкладке Developer , выберите Macro1 , если он не выбран, а затем выберите Edit , чтобы просмотреть код из Macro1 в редакторе Visual Basic.
Рис. 2. Код макроса в редакторе Visual Basic
Смотрим на код
Созданный вами макрос должен выглядеть примерно так, как показано ниже.
Подмакрос1 ()
'
'Macro1 Macro
'
'
Диапазон ("B1"). Выберите
ActiveCell.FormulaR1C1 = "Привет, мир"
Диапазон ("B2"). Выбрать
Конец подписки
Обратите внимание на сходство с предыдущим фрагментом кода, в котором выделен текст в ячейке A1, и на различия.В этом коде выбирается ячейка B1, а затем строка «Hello World» применяется к ячейке, которая была сделана активной. Кавычки вокруг текста указывают строковое значение, а не числовое значение.
Помните, как вы выбрали ячейку B2, чтобы снова отобразить кнопку Остановить запись ? Это действие также отображается как строка кода. Регистратор макросов записывает каждое нажатие клавиши.
Строки кода, начинающиеся с апострофа и окрашенные в зеленый цвет редактором, являются комментариями, которые объясняют код или напоминают вам и другим программистам о его назначении.VBA игнорирует любую строку или часть строки, начинающуюся с одинарной кавычки. Написание четких и уместных комментариев в коде — важная тема, но это обсуждение выходит за рамки данной статьи. Последующие ссылки на этот код в статье не включают эти четыре строки комментариев.
Когда средство записи макросов генерирует код, оно использует сложный алгоритм для определения методов и свойств, которые вы намеревались. Если вы не узнаете данное свойство, существует множество доступных ресурсов, которые могут вам помочь.Например, в записанном макросе регистратор макросов сгенерировал код, который ссылается на свойство FormulaR1C1 . Не знаете, что это значит?
Примечание
Имейте в виду, что Application объект подразумевается во всех макросах VBA. Код, который вы записали, работает с приложением . в начале каждой строки.
Использование справки разработчика
Выберите FormulaR1C1 в записанном макросе и нажмите F1. Справочная система выполняет быстрый поиск, определяет, что соответствующие темы находятся в разделе Excel Developer справки Excel, и перечисляет свойство FormulaR1C1 .Вы можете выбрать ссылку, чтобы узнать больше об этом свойстве, но прежде обратите внимание на ссылку Excel Object Model Reference в нижней части окна. Выберите ссылку, чтобы просмотреть длинный список объектов, которые Excel использует в своей объектной модели для описания рабочих листов и их компонентов.
Выберите любой из них, чтобы просмотреть свойства и методы, применимые к этому конкретному объекту, а также перекрестные ссылки на различные связанные параметры. Во многих статьях справки также есть краткие примеры кода, которые могут вам помочь.Например, вы можете перейти по ссылкам в объекте Borders , чтобы узнать, как установить границу в VBA.
Рабочие листы (1) .Range ("A1"). Borders.LineStyle = xlDouble
Редактирование кода
Код границы отличается от записанного макроса. Одна вещь, которая может сбивать с толку объектную модель, заключается в том, что существует более одного способа обратиться к любому заданному объекту, ячейке A1 в этом примере.
Иногда лучший способ научиться программировать — это внести незначительные изменения в рабочий код и посмотреть, что произойдет в результате.Попробуй это сейчас. Откройте Macro1 в редакторе Visual Basic и измените код на следующий.
Подмакрос1 ()
Рабочие листы (1) .Range ("A1"). Value = "Wow!"
Рабочие листы (1) .Range ("A1"). Borders.LineStyle = xlDouble
Конец подписки
Подсказка
Как можно чаще используйте копирование и вставку при работе с кодом, чтобы избежать опечаток.
Вам не нужно сохранять код, чтобы опробовать его, поэтому вернитесь к документу Excel, выберите Macros на вкладке Developer , выберите Macro1 , а затем выберите Run .Ячейка A1 теперь содержит текст Wow! и имеет двойную рамку вокруг него.
Рисунок 3. Результаты вашего первого макроса
Вы просто объединили запись макроса, чтение документации по объектной модели и простое программирование, чтобы создать программу VBA, которая что-то делает. Поздравляю!
Не получилось? Читайте предложения по отладке в VBA.
Советы и приемы программирования
Начать с примеров
Сообщество VBA очень велико; поиск в Интернете почти всегда может дать пример кода VBA, который делает что-то похожее на то, что вы хотите сделать.Если вы не можете найти хороший пример, попробуйте разбить задачу на более мелкие части и искать по каждой из них, или попробуйте придумать более общую, но похожую проблему. Начав с примера, вы сэкономите часы времени.
Это не означает, что бесплатный и хорошо продуманный код находится в сети и ждет, когда вы придете с ним. Фактически, в некотором коде, который вы обнаружите, могут быть ошибки. Идея в том, что примеры, которые вы найдете в Интернете или в документации VBA, дадут вам фору. Помните, что изучение программирования требует времени и размышлений.Прежде чем вы броситесь использовать другое решение для решения вашей проблемы, спросите себя, является ли VBA правильным выбором для этой проблемы.
Сделайте задачу проще
Программирование может быстро усложняться. Очень важно, особенно для новичка, разбить проблему на минимально возможные логические единицы, а затем записать и протестировать каждую часть по отдельности. Если перед вами слишком много кода, и вы запутались или запутались, остановитесь и отложите проблему в сторону. Когда вы вернетесь к проблеме, скопируйте небольшой фрагмент проблемы в новый модуль, решите этот фрагмент, заставьте код работать и протестируйте его, чтобы убедиться, что он работает.Затем переходите к следующей части.
Ошибки и отладка
Есть два основных типа ошибок программирования: синтаксические ошибки, которые нарушают грамматические правила языка программирования, и ошибки времени выполнения, которые выглядят синтаксически корректными, но терпят неудачу, когда VBA пытается выполнить код.
Хотя их может быть сложно исправить, синтаксические ошибки легко обнаружить; Редактор Visual Basic подает звуковой сигнал и мигает, если вы вводите синтаксическую ошибку в коде.
Например, строковые значения должны быть заключены в двойные кавычки в VBA.Чтобы узнать, что происходит при использовании одинарных кавычек, вернитесь в редактор Visual Basic и замените «Wow!» строка в примере кода с «Вау!» (то есть слово Wow заключено в одинарные кавычки). Если вы выберете следующую строку, редактор Visual Basic отреагирует. Ошибка «Ошибка компиляции: Ожидается: выражение» не так полезна, но строка, которая генерирует ошибку, становится красной, чтобы сообщить вам, что у вас есть синтаксическая ошибка в этой строке, и в результате эта программа не будет запущена.
Выберите ОК и снова измените текст на «Вау!».
Ошибки времени выполнения обнаружить труднее, потому что синтаксис программирования выглядит правильно, но код не работает, когда VBA пытается его выполнить.
Например, откройте редактор Visual Basic и измените имя свойства Value на ValueX в макросе, намеренно вводя ошибку времени выполнения, поскольку объект Range не имеет свойства с именем ValueX. Вернитесь к документу Excel, откройте диалоговое окно Macros и снова запустите Macro1. Вы должны увидеть окно сообщения Visual Basic, в котором объясняется ошибка времени выполнения с текстом: «Объект не поддерживает это свойство метода.»Хотя этот текст понятен, выберите Debug , чтобы узнать больше.
Когда вы возвращаетесь в редактор Visual Basic, он находится в специальном режиме отладки, в котором желтым цветом отображается строка кода, в которой произошел сбой. Как и ожидалось, выделена строка, содержащая свойство ValueX.
Вы можете вносить изменения в работающий код VBA, поэтому измените ValueX обратно на Value и нажмите маленькую зеленую кнопку воспроизведения под меню Debug . Программа должна снова запуститься в обычном режиме.
Хорошая идея — научиться более целенаправленно использовать отладчик для более длинных и сложных программ. Как минимум, узнайте, как устанавливать точки останова для остановки выполнения в точке, где вы хотите взглянуть на код, как добавлять часы, чтобы видеть значения различных переменных и свойств во время выполнения кода, и как пошагово выполнять код построчно. Все эти параметры доступны в меню Debug , и серьезные пользователи отладчика обычно запоминают соответствующие сочетания клавиш.
Скважина со справочными материалами
Чтобы открыть справочник разработчика, встроенный в справку Office, откройте справку из любого приложения Office, выбрав вопросительный знак на ленте или нажав клавишу F1. Затем справа от кнопки Search выберите стрелку раскрывающегося списка, чтобы отфильтровать содержимое. Выберите Справочник разработчика . Если вы не видите оглавление на левой панели, выберите маленький значок книги, чтобы открыть его, а затем разверните оттуда ссылку на объектную модель.
Рис. 5. Фильтрация в справке разработчика применяется ко всем приложениям Office
Время, потраченное на просмотр справочника по объектной модели, окупается. Поняв основы синтаксиса VBA и объектную модель приложения Office, с которым вы работаете, вы переходите от догадок к методическому программированию.
Конечно, Центр разработчиков Microsoft Office — отличный портал для статей, советов и информации сообщества.
Поиск в форумах и группах
Все программисты иногда застревают, даже прочитав каждую справочную статью, которую они могут найти, и теряют сон по ночам, думая о различных способах решения проблемы.К счастью, в Интернете появилось сообщество разработчиков, которые помогают друг другу решать проблемы программирования.
При поиске в Интернете «форума разработчиков офисных приложений» обнаруживается несколько групп обсуждения. Вы можете выполнить поиск по «офисному развитию» или описанию своей проблемы, чтобы найти форумы, сообщения в блогах и статьи.
Если вы сделали все возможное, чтобы решить проблему, не бойтесь задать свой вопрос на форуме разработчиков. На этих форумах приветствуются сообщения от новых программистов, и многие опытные разработчики рады помочь.
При публикации сообщений на форуме разработчиков следует соблюдать следующие правила этикета:
Прежде чем публиковать сообщения, поищите на сайте ответы на часто задаваемые вопросы или рекомендации, которым участники хотят, чтобы вы следовали. Убедитесь, что вы публикуете контент, который соответствует этим правилам, и в правильном разделе форума.
Включите ясный и полный образец кода и рассмотрите возможность редактирования кода, чтобы прояснить его для других, если он является частью более длинного раздела кода.
Четко и кратко опишите вашу проблему и кратко опишите все шаги, которые вы предприняли для ее решения. Найдите время, чтобы написать свой пост как можно лучше, особенно если вы взволнованы или торопитесь. Представьте ситуацию так, чтобы читатели впервые прочитали постановку задачи.
Будьте вежливы и выразите признательность.
Дальнейшее программирование
Хотя эта статья короткая и дает лишь поверхностное представление о VBA и программировании, мы надеемся, что ее достаточно, чтобы вы начали.
В этом разделе кратко обсуждаются еще несколько ключевых тем.
Переменные
В простых примерах этой статьи вы управляли объектами, которые приложение уже создало. Возможно, вы захотите создать свои собственные объекты для хранения значений или ссылок на другие объекты для временного использования в вашем приложении. Они называются переменными.
Чтобы использовать переменную в VBA, необходимо указать VBA, какой тип объекта представляет переменная, с помощью оператора Dim .Затем вы устанавливаете его значение и используете его для установки других переменных или свойств.
Dim MyStringVariable As String
MyStringVariable = "Вау!"
Рабочие листы (1) .Range ("A1"). Value = MyStringVariable
Разветвление и зацикливание
Простые программы в этой статье выполняются по одной строке сверху вниз. Реальная сила в программировании исходит от опций, которые вы должны определить, какие строки кода выполнять, на основе одного или нескольких условий, которые вы укажете.Вы можете расширить эти возможности еще больше, если можете повторять операцию много раз. Например, следующий код расширяет Macro1.
Подмакрос1 ()
Если Worksheets (1) .Range ("A1"). Value = "Да!" потом
Dim i как целое число
Для i = от 2 до 10
Рабочие листы (1) .Range ("A" & i) .Value = "OK!" & I
Далее я
Еще
MsgBox «Поместите Да! В ячейку A1»
Конец, если
Конец подписки
Введите или вставьте код в редактор Visual Basic, а затем запустите его.Следуйте инструкциям в появившемся окне сообщения и измените текст в ячейке A1 из Wow! к Да! и запустите его еще раз, чтобы увидеть возможности зацикливания. Этот фрагмент кода демонстрирует переменные, ветвление и цикл. Внимательно прочтите его после того, как увидите его в действии, и попытайтесь определить, что происходит при выполнении каждой строки.
Все мои приложения Office: пример кода
Вот несколько сценариев, которые стоит попробовать; каждый из них решает реальную проблему Office.
Создать электронную почту в Outlook
Sub MakeMessage ()
Тусклое сообщение OutlookMessage как Outlook.MailItem
Установите OutlookMessage = Application.CreateItem (olMailItem)
OutlookMessage.Subject = "Hello World!"
OutlookMessage.Display
Установите OutlookMessage = Nothing
Конец подписки
Имейте в виду, что есть ситуации, в которых вы можете автоматизировать электронную почту в Outlook; вы также можете использовать шаблоны.
Удалить пустые строки на листе Excel
Sub DeleteEmptyRows ()
SelectedRange = Selection.Rows.Count
ActiveCell.Offset (0, 0). Выбрать
Для i = 1 To SelectedRange
Если ActiveCell.Value = "" Тогда
Selection.EntireRow.Delete
Еще
ActiveCell.Offset (1, 0) .Select
Конец, если
Далее я
Конец подписки
Имейте в виду, что вы можете выбрать столбец ячеек и запустить этот макрос, чтобы удалить все строки в выбранном столбце, содержащие пустую ячейку.
Удалить пустые текстовые поля в PowerPoint
Sub RemoveEmptyTextBoxes ()
Dim SlideObj как слайд
Dim ShapeObj As Shape
Dim ShapeIndex As Integer
Для каждого SlideObj в ActivePresentation.Слайды
Для ShapeIndex = SlideObj.Shapes.Count To 1 Step -1
Установите ShapeObj = SlideObj.Shapes (ShapeIndex)
Если ShapeObj.Type = msoTextBox Тогда
Если Trim (ShapeObj.TextFrame.TextRange.Text) = "" Тогда
ShapeObj.Delete
Конец, если
Конец, если
Следующий ShapeIndex
Следующий SlideObj
Конец подписки
Имейте в виду, что этот код просматривает все слайды и удаляет все текстовые поля, в которых нет текста. Переменная count уменьшается, а не увеличивается, потому что каждый раз, когда код удаляет объект, он удаляет этот объект из коллекции, что уменьшает счетчик.
Копирование контакта из Outlook в Word
Sub CopyCurrentContact ()
Dim OutlookObj как объект
Dim InspectorObj как объект
Dim ItemObj как объект
Установите OutlookObj = CreateObject ("Outlook.Application")
Установите InspectorObj = OutlookObj.ActiveInspector
Установите ItemObj = InspectorObj.CurrentItem
Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & "from" & ItemObj.CompanyName)
Конец подписки
Имейте в виду, что этот код копирует текущий открытый контакт в Outlook в открытый документ Word.Этот код работает, только если в Outlook есть контакт, открытый для проверки.
Поддержка и отзывы
У вас есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.
Excel VBA Tutorial — Как написать код в электронной таблице с помощью Visual Basic
Это руководство по написанию кода в электронных таблицах Excel с использованием Visual Basic для приложений (VBA).
Excel — один из самых популярных продуктов Microsoft. В 2016 году генеральный директор Microsoft сказал: «Подумайте о мире без Excel. Для меня это просто невозможно». Что ж, возможно, мир не может мыслить без Excel.
- В 1996 году было более 30 миллионов пользователей Microsoft Excel (источник).
- Сегодня примерно 750 миллионов пользователей Microsoft Excel. Это немного больше чем население Европы, и в 25 раз больше пользователей, чем было в 1996 году.
Мы одна большая счастливая семья!
В этом руководстве вы узнаете о VBA и о том, как писать код в электронной таблице Excel с помощью Visual Basic .
Предварительные требования
Вам не нужен опыт программирования, чтобы понять это руководство. Однако вам потребуются:
- Базовое или среднее знакомство с Microsoft Excel
- Если вы хотите следовать примерам VBA в этой статье, вам потребуется доступ к Microsoft Excel, желательно последней версии (2019), но Excel 2016 и Excel 2013 будет работать нормально.
- Готовность пробовать новое
Цели обучения
В ходе этой статьи вы узнаете:
- Что такое VBA
- Почему вам следует использовать VBA
- Как настроить в Excel для записи VBA
- Как решить некоторые реальные проблемы с помощью VBA
Важные концепции
Вот некоторые важные концепции, с которыми вы должны быть знакомы, чтобы полностью понять это руководство.
Объекты : Excel является объектно-ориентированным, что означает, что все является объектом — окно Excel, рабочая книга, лист, диаграмма, ячейка. VBA позволяет пользователям манипулировать объектами и выполнять действия с ними в Excel.
Если у вас нет опыта объектно-ориентированного программирования и это совершенно новая концепция, уделите секунду тому, чтобы понять это!
Процедуры : процедура — это фрагмент кода VBA, написанный в редакторе Visual Basic, который выполняет задачу.Иногда это также называют макросом (подробнее о макросах ниже). Существует два типа процедур:
- Подпрограммы: группа операторов VBA, которая выполняет одно или несколько действий
- Функции: группа операторов VBA, которая выполняет одно или несколько действий, и возвращает одно или несколько значений
Примечание. : у вас могут быть функции, работающие внутри подпрограмм. Увидишь позже.
Макросы : Если вы потратили какое-то время на изучение более сложных функций Excel, вы, вероятно, встречали понятие «макрос.«Пользователи Excel могут записывать макросы, состоящие из пользовательских команд / нажатий клавиш / щелчков, и воспроизводить их с молниеносной скоростью для выполнения повторяющихся задач. Записанные макросы генерируют код VBA, который затем можно изучить. На самом деле довольно интересно записать простой макрос, а затем посмотреть на код VBA.
Имейте в виду, что иногда проще и быстрее записать макрос, чем вручную кодировать процедуру VBA.
Например, вы работаете в сфере управления проектами. Раз в неделю вы должны превратить необработанный экспортированный отчет из вашей системы управления проектами в красиво оформленный чистый отчет для руководства.Названия проектов с превышением бюджета необходимо выделить жирным красным шрифтом. Вы можете записать изменения форматирования как макрос и запускать его всякий раз, когда вам нужно внести изменения.
Visual Basic для приложений — это язык программирования, разработанный Microsoft. Каждая программа в пакете Microsoft Office поставляется с языком VBA без каких-либо дополнительных затрат. VBA позволяет пользователям Microsoft Office создавать небольшие программы, которые работают с программами Microsoft Office.
Думайте о VBA как о печи для пиццы в ресторане.Excel — это ресторан. Кухня оснащена стандартной коммерческой техникой, такой как большие холодильники, плиты и обычные духовки — все это стандартные функции Excel.
А что, если вы хотите приготовить пиццу на дровах ? Невозможно сделать это в стандартной печи для выпечки. VBA — это печь для пиццы.
Ням.
Потому что пицца в дровах самая лучшая!
А если серьезно.
Многие люди проводят много времени в Excel как часть своей работы.Время в Excel тоже движется по-другому. В зависимости от обстоятельств 10 минут в Excel могут показаться вечностью, если вы не можете делать то, что вам нужно, или 10 часов могут пролететь очень быстро, если все идет хорошо. Тогда вы должны спросить себя, , зачем я трачу 10 часов в Excel?
Иногда эти дни неизбежны. Но если вы проводите 8-10 часов каждый день в Excel, выполняя повторяющиеся задачи, повторяя множество одних и тех же процессов, пытаясь очистить файл после других пользователей или даже обновляя другие файлы после внесения изменений в файл Excel, процедура VBA может быть решением для вас.
Вам следует рассмотреть возможность использования VBA, если вам необходимо:
- Автоматизировать повторяющиеся задачи
- Создавать простые способы взаимодействия пользователей с вашими таблицами
- Манипулировать большими объемами данных
Вкладка разработчика
Чтобы писать VBA, вы » Вам нужно будет добавить вкладку «Разработчик» на ленту, чтобы вы увидели такую ленту.
Чтобы добавить вкладку «Разработчик» на ленту:
- На вкладке «Файл» выберите «Параметры»> «Настроить ленту».
- В разделе «Настроить ленту» и в разделе «Основные вкладки» установите флажок Разработчик.
После того, как вы отобразите вкладку, вкладка «Разработчик» останется видимой, если вы не снимете флажок или не переустановите Excel. Дополнительные сведения см. В справочной документации Microsoft.
Редактор VBA
Перейдите на вкладку «Разработчик» и нажмите кнопку Visual Basic. Появится новое окно — это редактор Visual Basic. Для использования в этом руководстве вам просто нужно быть знакомым с панелями Project Explorer и Property Properties.
Во-первых, давайте создадим файл, с которым мы сможем поиграть.
- Откройте новый файл Excel
- Сохраните его как книгу с поддержкой макросов (.xlsm)
- Выберите вкладку «Разработчик»
- Откройте редактор VBA
Давайте поработаем и рассмотрим несколько простых примеров, которые помогут вам писать код в электронной таблице с помощью Visual Basic.
Пример № 1: Отображение сообщения, когда пользователи открывают книгу Excel
В редакторе VBA выберите Вставить -> Новый модуль
Запишите этот код в окно модуля (не вставляйте!):
Sub Auto_Open ( )
MsgBox («Добро пожаловать в рабочую книгу XYZ.»)
Концевой переводник
Сохраните, закройте книгу и снова откройте книгу. Этот диалог должен отобразиться.
Да да!
Как он это делает?
В зависимости от вашего знакомства с программированием у вас могут быть некоторые догадки. Это не особенно сложно, но происходит довольно много:
- Sub (сокращение от «Subroutine»): помните с самого начала, «группа операторов VBA, которые выполняют одно или несколько действий».
- Auto_Open: это специальная подпрограмма.Он автоматически запускает ваш код при открытии файла Excel — это событие, запускающее процедуру. Auto_Open будет запускаться только при открытии книги вручную; он не будет запускаться, если книга открывается с помощью кода из другой книги (Workbook_Open сделает это, узнайте больше о разнице между ними).
- По умолчанию доступ к подпрограмме является публичным. Это означает, что любой другой модуль может использовать эту подпрограмму. Все примеры в этом руководстве будут общедоступными подпрограммами. При необходимости вы можете объявить подпрограммы частными.Это может понадобиться в некоторых ситуациях. Узнайте больше о модификаторах доступа к подпрограммам.
- msgBox: это функция — группа операторов VBA, которая выполняет одно или несколько действий и возвращает значение. Возвращаемое значение — сообщение «Добро пожаловать в книгу XYZ».
Короче говоря, это простая подпрограмма, которая содержит функцию.
Когда я смогу это использовать?
Возможно, у вас есть очень важный файл, к которому редко обращаются (скажем, раз в квартал), но который автоматически обновляется ежедневно другой процедурой VBA.Когда к нему обращаются, многие люди из разных отделов компании.
- Проблема: в большинстве случаев, когда пользователи обращаются к файлу, они не понимают, для чего нужен этот файл (почему он существует), как он так часто обновляется, кто его поддерживает и как им следует с ним взаимодействовать. У новых сотрудников всегда есть масса вопросов, и вы должны задавать их снова и снова.
- Решение: создайте пользовательское сообщение, содержащее краткий ответ на каждый из этих часто задаваемых вопросов.
Примеры из реального мира
- Используйте функцию MsgBox для отображения сообщения, когда происходит какое-либо событие: пользователь закрывает книгу Excel, пользователь печатает, новый лист добавляется в книгу и т. Д.
- Используйте функцию MsgBox для отображать сообщение, когда пользователю необходимо выполнить условие перед закрытием книги Excel
- Используйте функцию InputBox для получения информации от пользователя
Пример № 2: Разрешить пользователю выполнить другую процедуру
В редакторе VBA выберите Вставить -> Новый модуль
Напишите этот код в окне модуля (не вставляйте!):
Sub UserReportQuery ()
Dim UserInput As Long
Dim Answer As Integer
UserInput = vbYesNo
Answer = MsgBox («Обработать XYZ Report? «, UserInput)
Если Answer = vbYes, то ProcessReport
End Sub
Sub ProcessReport ()
MsgBox («Спасибо за обработку отчета XYZ.»)
Концевой переводник
Сохраните и вернитесь на вкладку «Разработчик» в Excel и выберите опцию «Кнопка». Щелкните ячейку и назначьте ей макрос UserReportQuery.
Теперь нажмите кнопку. Должно появиться следующее сообщение:
Нажмите «Да» или нажмите Enter.
Еще раз, тада!
Обратите внимание, что вторичная подпрограмма ProcessReport может быть или . Я продемонстрирую больше возможностей в примере №3. Но сначала …
Как он это делает?
Этот пример основан на предыдущем примере и содержит довольно много новых элементов.Давайте рассмотрим новый материал:
- Dim UserInput As Long: Dim — это сокращение от «измерение» и позволяет объявлять имена переменных. В этом случае UserInput — это имя переменной, а Long — тип данных. На простом английском языке эта строка означает «Вот переменная с именем« UserInput », и это переменная типа Long».
- Тусклый ответ как целое число: объявляет другую переменную с именем «Ответ» с типом данных Целое число. Узнайте больше о типах данных здесь.
- UserInput = vbYesNo: присваивает значение переменной.В этом случае vbYesNo, который отображает кнопки Да и Нет. Существует типов кнопок , подробнее см. Здесь.
- Ответ = MsgBox («Обработать отчет XYZ?», UserInput): назначает значение переменной Answer как функции MsgBox и переменной UserInput. Да, переменная внутри переменной.
- If Answer = vbYes Then ProcessReport: это «оператор If», условный оператор, который позволяет нам сказать, истинно ли x, а затем сделать y. В этом случае, если пользователь выбрал «Да», выполните подпрограмму ProcessReport.
Когда я смогу это использовать?
Это можно использовать множеством способов. Ценность и универсальность этой функции в большей степени определяется тем, что делает вторичная подпрограмма.
Например, у вас есть файл, который используется для создания трех разных еженедельных отчетов. Эти отчеты имеют совершенно разные форматы.
- Проблема: каждый раз, когда необходимо создать один из этих отчетов, пользователь открывает файл и меняет форматирование и диаграммы; так далее и так далее.Этот файл интенсивно редактируется не реже 3 раз в неделю, и каждое редактирование занимает не менее 30 минут.
- Решение: создайте по одной кнопке для каждого типа отчета, которая автоматически переформатирует необходимые компоненты отчетов и генерирует необходимые диаграммы.
Примеры из реального мира
- Создание диалогового окна для автоматического заполнения пользователем определенной информации на нескольких листах
- Используйте функцию InputBox для получения информации от пользователя, которая затем заполняется на нескольких листах
Пример № 3: Добавление чисел в диапазон с помощью цикла For-Next
Циклы For очень полезны, если вам нужно выполнять повторяющиеся задачи для определенного диапазона значений — массивов или диапазонов ячеек.Говоря простым языком, цикл гласит: «Для каждого x делайте y».
В редакторе VBA выберите Insert -> New Module
Запишите этот код в окне модуля (не вставляйте!):
Sub LoopExample ()
Dim X As Integer
For X = 1 to 100
Range («A» & X) .Value = X
Next X
End Sub
Сохраните и вернитесь на вкладку «Разработчик» в Excel и нажмите кнопку «Макросы». Запустите макрос LoopExample.
Это должно произойти:
И т.д., до 100-й строки.
Как он это делает?
- Dim X As Integer: объявляет переменную X как целочисленный тип данных.
- For X = 1 To 100: это начало цикла For. Проще говоря, он сообщает циклу повторяться до тех пор, пока X = 100. X — это счетчик . Цикл будет выполняться до тех пор, пока X = 100, выполнится последний раз, а затем остановится.
- Range («A» & X) .Value = X: объявляет диапазон цикла и то, что поместить в этот диапазон. Поскольку изначально X = 1, первой ячейкой будет A1, после чего цикл поместит X в эту ячейку.
- Следующий X: это говорит, что цикл снова запускается
Когда я могу это использовать?
Цикл For-Next — одна из самых мощных функций VBA; существует множество возможных вариантов использования. Это более сложный пример, который потребует нескольких уровней логики, но он передает мир возможностей в циклах For-Next.
Возможно, у вас есть список всех продуктов, продаваемых в вашей пекарне, в столбце A, тип продукта в столбце B (торты, пончики или кексы), стоимость ингредиентов в столбце C и среднерыночная стоимость каждого продукта. введите другой лист.
Вам необходимо выяснить, какой должна быть розничная цена каждого продукта. Вы думаете, что это должна быть стоимость ингредиентов плюс 20%, но также на 1,2% ниже средней по рынку, если это возможно. Цикл For-Next позволит вам выполнить такой расчет.
Примеры из реального мира
- Используйте цикл с вложенным оператором if для добавления определенных значений в отдельный массив, только если они соответствуют определенным условиям
- Выполните математические вычисления для каждого значения в диапазоне, например.грамм. вычислить дополнительные расходы и добавить их к значению
- Перебрать каждый символ в строке и извлечь все числа
- Случайным образом выбрать несколько значений из массива
Теперь, когда мы поговорили о пицце, маффинах и о-да , как писать код VBA в электронных таблицах Excel, давайте проведем обучающую проверку. Посмотрим, сможешь ли ты ответить на эти вопросы.
- Что такое VBA?
- Как мне настроить, чтобы начать использовать VBA в Excel?
- Почему и когда вам следует использовать VBA?
- Какие проблемы я мог бы решить с помощью VBA?
Если у вас есть четкое представление о том, как вы могли бы ответить на эти вопросы, значит, это было успешно.
Независимо от того, являетесь ли вы случайным пользователем или опытным пользователем, я надеюсь, что это руководство предоставило полезную информацию о том, чего можно достичь с помощью небольшого количества кода в таблицах Excel.
Удачного кодирования!
Учебные ресурсы
Немного обо мне
Я Хлоя Такер, художник и разработчик из Портленда, штат Орегон. Как бывший педагог, я постоянно ищу точки пересечения обучения и преподавания, технологий и искусства. Свяжитесь со мной в Твиттере @_chloetucker и зайдите на мой сайт в chloe.разработчик
Учебное пособие поExcel VBA — Максимальное руководство по Excel VBA
Добро пожаловать в окончательное руководство по Excel VBA (Visual Basic для приложений)! Вы пройдете путь от нулевого уровня VBA до героя VBA . Это руководство по VBA предназначено не только для того, чтобы научить вас писать макросы VBA в Excel –, это общее введение в VBA . Однако некоторые разделы, как вы заметите, действительно нацелены на Excel (например, раздел «Рабочие книги и рабочие листы»).
Учебное пособие по редактору Visual Basic
Чтобы начать программирование на VBA, вам необходимо получить доступ к вкладке ленты разработчика в Excel, чтобы открыть среду разработчика VBA (VBE). Прочтите статью, чтобы узнать, как:
Вы узнаете:
- Включение ленты разработчика Excel Вкладка
- Прохождение Windows VBE
- Ярлыки, как открыть окно VBA
Изучите редактор Visual Basic
Как записывать макросы
Запись макросов — отличный способ протестировать и научиться писать новый код.Просто запишите последовательность шагов и посмотрите, как выглядит выходной код, а не гуглите.
Вы узнаете:
- Запишите свой первый макрос Excel
- Запустить записанный макрос
- Просмотрите сгенерированный код
Научитесь записывать макрос
Как отлаживать VBA
Код отладки — это процесс построчного выполнения кода, часто используемый для понимания процесса, а также для выявления и устранения ошибок времени выполнения макроса. Умение отлаживать код VBA в Excel VBE является ключевым навыком.
Вы узнаете:
- Как выполнить Запуск , Перерыв или Сбросить свой код
- Узнайте, что такое точки останова и как их использовать
- Посмотрите, как запустить код шаг за шагом и различные ярлыки отладки
Научитесь отлаживать VBA
Функции и процедуры VBA
Чтобы выполнить код VBA, вам нужно начать с VBA Sub (процедура). С другой стороны, функции VBA позволяют обрабатывать и вводить данные, а также возвращать и выводить данные, которые можно использовать для других целей.
Вы узнаете:
- Создайте свой первый макрос VBA Hello World с помощью VBA Sub
- Изучите основы подпрограмм VBA, а также их отличия от функций VBA
- Поймите, как передавать аргументы подфункции
Изучите подпрограммы VBA, функции
Переменные VBA
Для обработки данных их нужно где-то хранить. В этом руководстве вы узнаете, как использовать оператор VBA Dim для объявления переменных VBA и всех типов данных, доступных в VBA (строки, числа и т. Д.).).
Вы узнаете:
- Доступные типы данных в VBA
- Как объявлять и определять переменные
- Константы и переменные
- Частные и общедоступные переменные
Выучить переменные VBA
Условия VBA — если… Иначе
Принимать решения сложно, но необходимо в программировании. Оператор VBA If… Then… Else является основным условным оператором для принятия простых логических решений в вашем коде VBA.
Вы узнаете:
- Выполняется оператор If… Else для выполнения базовых условий кода
- логических операторов, таких как
- Функция Iif
Изучите VBA, если условия
Чехол для VBA Select
Оператор If в VBA отлично подходит для написания нескольких условий. Однако в некоторых случаях необходимо перечислить множество сценариев на основе значений конкретных переменных. Оператор VBA Select Case экономит много времени по сравнению с VBA If.
Вы узнаете:
- Оператор Switch… Case для выполнения нескольких условий на основе одной переменной
- Корпус Статмент
Learn VBA Select Case
Использование циклов VBA: For, ForEach
VBA Циклы For необходимы для многократного выполнения области кода, перечисления по таблицам или выполнения кода в простом цикле.
Вы узнаете:
- Оператор For… Next для выполнения итераций на основе переменной
- Оператор ForEach… Next выполняет итерацию коллекции
- For vs ForEach и когда следует использовать каждый из них
Изучите VBA для циклов
Использование циклов VBA: делать пока, делать до
Циклы VBA For позволяют запускать цикл для определенного количества итераций.В случаях, когда циклы необходимо запускать до тех пор, пока не будет выполнено условие (Выполнить до тех пор, пока не будет выполнено условие) или необходимо запустить цикл, пока выполняется условие (Выполнить пока), прочтите руководство.
Вы узнаете:
- Do… while и Do… до циклов
- Как выйти / продолжить цикл Do… While
Обучение циклам «Пока / пока»
Excel Диапазон VBA
Узнайте, как изменить значения ячеек в Excel, изменить формат диапазона Excel и т. Д. Перейдите к руководству, чтобы узнать все о том, как взаимодействовать в вашем макросе VBA с листом Excel.
Узнать диапазон VBA
Форматирование ячеек Excel
В этом руководстве вы узнаете, как форматировать ячейки Excel — изменять их размер, цвет фона, границы, стиль и многое другое.
Изучите формат ячеек VBA
Пользовательская форма VBA
UserForms позволяют создавать собственные всплывающие окна для взаимодействия пользователей, аналогичные окнам сообщений.
Learn VBA UserForms
Excel VBA Tutorial — javatpoint
VBA означает Visual Basic для приложений и язык программирования на основе событий от Microsoft.Сейчас он преимущественно используется с приложениями Microsoft Office, такими как MS Excel, MS-Word и MS-Access.
Это руководство поможет вам изучить основы Excel VBA. Каждый из разделов содержит связанные темы с простыми примерами.
Что такое VBA
VBA означает Visual Basic для приложений . И язык программирования на основе событий от Microsoft с приложениями Microsoft Office, такими как MSExcel , MS-Word и MS-Access .
VBA позволяет автоматизировать различные действия в Excel, такие как создание отчетов, подготовка диаграмм и графиков, выполнение вычислений и т. Д. Это действие автоматизации также известно как Macro .
VBA помогает создавать индивидуальные приложения и решения для расширения возможностей этих приложений.
Преимущество этого средства состоит в том, что вам не нужно устанавливать визуальные основы на рабочем столе. И установка Office в конечном итоге поможет вам в достижении цели.Кроме того, вы можете создавать очень мощные инструменты в MS Excel, используя линейное программирование.
VBA можно использовать во всех офисных версиях, от MS-Office 97 до MS-Office 2013 и с любыми доступными последними версиями. Среди VBA наиболее популярен Excel VBA.
VBA — это язык высокого уровня. VBA — это подмножество Visual Basic 6.0 BASIC означает B для начинающих A ll-Purpose S символ I инструкция C ode.
Почему VBA?
Некоторые моменты, которые вам понятны, зачем использовать VBA, например:
- VBA использует простые английские операторы для написания инструкций.
- Создание пользовательского интерфейса представляет собой перетаскивание и выравнивание элементов управления графического пользовательского интерфейса в VBA.
- VBA очень прост в освоении и требует базовых навыков программирования.
- VBA расширяет функциональные возможности Excel, позволяя заставить Excel работать в соответствии с вашими потребностями.
Применение VBA
Вы думаете, зачем использовать VBA в Excel, поскольку сам MS-Excel предоставляет множество встроенных функций.
MS-Excel предоставляет только основные встроенные функции, которых может быть недостаточно для выполнения сложных вычислений. В таких условиях VBA становится наиболее прозрачным решением.
Например, . Используя встроенные формулы Excel, сложно рассчитать ежемесячный платеж по ссуде. Но легко запрограммировать VBA для такого рода вычислений.
Основы VBA
Во-первых, вам нужно знать основы, прежде чем начинать или писать какой-либо код. Ниже приведены некоторые основы:
Переменная: Переменные — это ячейки памяти. А для работы с VBA вам потребуется объявлять переменные.
Например: Предположим (2x + 5y), где x = 1 и y = 2. В данном выражении x и y являются переменными или им могут быть присвоены любые числа, то есть 3 и 4, соответственно.
Правила создания переменных
- Не используйте зарезервированные слова: Зарезервированные слова — это те слова, которые имеют особое значение в VBA, поэтому вы не можете использовать их в качестве имен переменных.
- Имя переменной не может содержать пробел: Вы не можете определить имя переменной с пробелом, например, последний номер. Вы можете использовать LastNumber или Last_Number .
- Используйте описательные имена: Используйте описательные имена, такие как цена, количество, промежуточная сумма и т. Д., Это упростит понимание вашего кода VBA.
Арифметические операторы: Мы используем правило (BODMAS) в скобках деления, умножения, сложения и вычитания при работе с выражением, которое использует несколько различных арифметических операторов.
- (+) для добавления
- (-) для вычитания
- (*) для умножения
- (/) для подразделения
Логический оператор: Концепция логического оператора также применяется при работе с VBA, например.
- Если операторы
- И
- ИЛИ
- НЕ
- ИСТИНА
- ЛОЖЬ
Необходимое условие
Чтобы изучить VBA, вы должны установить MS Office и, в основном, MS Excel на вашем компьютере.
Аудитория
Наше руководство по VBA предназначено для начинающих, чтобы помочь им понять основы VBA. Это руководство предоставит достаточно знаний о VBA, с помощью которых вы сможете перейти на более высокий уровень знаний.
Проблема
Мы заверяем вас, что вы не найдете никаких проблем с этим руководством по VBA. Но если есть ошибка, опубликуйте проблему в контактной форме.
10 фактов о программировании на VBA в Excel | Автор: Дин Бланк
Вот три способа повысить скорость ваших программ VBA:
ScreenUpdating
Одним из существенных препятствий для производительности программ VBA является обновление экрана.Когда VBA обновляет данные на листе, обновляется изображение экрана. Чтобы повысить производительность, вы можете отключить обновление экрана, установив для свойства приложения Excel значение False. В конце макроса вы можете снова включить обновление экрана, установив для него значение True. См. Пример ниже:
Sub ScreenUpdating_Example () ‘Отключить обновление экрана
Application.ScreenUpdating = False 'Do Something
Range (" A1 "). Скопируйте
Range (" B4 ").Вставить 'Включить обновление экрана
Application.ScreenUpdating = True End Sub
Calculation
Как правило, Excel пересчитывает ячейку или диапазон ячеек, когда зависимое значение этой ячейки или диапазона изменяется в другой ячейке. В результате ваша книга может пересчитываться слишком часто, что может снизить производительность. См. Пример ниже, чтобы отключить и включить автоматические вычисления:
Sub Calculation_Example () ‘Disable Automatic CalculationОбратите внимание, если вы отключаете автоматические вычисления, и ваш макрос полагается на значения обновляемых ячеек, вы можете вручную обновить ячейки с помощью метода Calculate. Бывший.
Application.Calculation = xlCalculationManual 'Сделать что-нибудь
Диапазон ("A1"). Скопировать диапазон
("B4"). Вставить ' Включить автоматический расчет
Application.Calculation = xlCalculationAutomatic End Sub
ActiveWorksheet.Calculate
Массивы
Вы можете столкнуться с ситуацией, когда вам нужно изменить данные в более чем 100,0000 строках! Если вы решите использовать цикл For-Next для просмотра каждой ячейки в диапазоне, это будет медленным, потому что вы постоянно обращаетесь к электронной таблице Excel (независимо от того, читаете ли вы / записываете значения ячеек или форматируете ячейки).Вместо циклического перебора строк вы можете оптимизировать производительность, выгружая значения диапазона в массив, а затем перебирая его в цикле для изменения данных.
В приведенном ниже примере цикл For-Loop используется для перебора каждой ячейки в диапазоне от A2 до A1000, что не является оптимальным решением. В диапазоне от A2 до A1000 мы меняем все экземпляры значения «ожидает» на «завершено». Это решение заняло 0,5 секунды на моем компьютере:
Sub forloop_example () For i = 2 To 1000:
If Cells (i, 1).Value = "pending" Then
Cells (i, 1) .Value = "complete"
End If
NextEnd Sub
В более оптимальном решении ниже мы сбрасываем значения диапазона от A2 до A1000 в массив под названием «myarray» и перебираем массив, чтобы изменить все вхождения слова «ожидающий» на «завершено». Затем мы устанавливаем диапазон значений равным массиву. Это решение заняло всего 0,0078 секунды на моем компьютере:
Sub array_example () Dim myarray As Variant
myarray = Range ("A2: A1000").