Excel vba это: Начало работы с VBA в Office
Справочник по Visual Basic для приложений (VBA) в Office
-
- Чтение занимает 2 мин
В этой статье
Office Visual Basic для приложений (VBA) — это основанный на событиях язык программирования, позволяющий расширять приложения Office.Office Visual Basic for Applications (VBA) is an event-driven programming language that enables you to extend Office applications.
Программирование на VBA в OfficeVBA programming in Office
Эта справочная информация предназначена для опытных пользователей Office, желающих ознакомиться с VBA и получить некоторую информацию о том, как программирование может помочь им настроить Office.This reference is for experienced Office users who want to learn about VBA and who want some insight into how programming can help them to customize Office.
Набор приложений Office имеет полный набор функций.The Office suite of applications has a full set of features. Существует множество разных способов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями.There are many different ways to author, format, and manipulate documents, email, databases, forms, spreadsheets, and presentations.
Мощное программирование VBA в Office заключается в том, что практически все операции, которые можно выполнять с помощью мыши, клавиатуры или диалогового окна, можно автоматизировать с помощью VBA.The great power of VBA programming in Office is that nearly every operation that you can perform with a mouse, keyboard, or a dialog box can also be automated by using VBA. Если действие можно выполнить с помощью VBA, значит в дальнейшем его можно легко осуществлять сотни раз.Further, if it can be done once with VBA, it can be done just as easily a hundred times. На самом деле Автоматизация повторяющихся задач является одним из наиболее распространенных способов использования VBA в Office.In fact, the automation of repetitive tasks is one of the most common uses of VBA in Office.
Помимо возможности написания скрипта VBA для ускорения повседневных задач, VBA можно использовать для добавления новых функций в приложения Office или создания запросов и взаимодействия с пользователем ваших документов в соответствии с потребностями вашей организации.Beyond the power of scripting VBA to accelerate every-day tasks, you can use VBA to add new functionality to Office applications or to prompt and interact with the user of your documents in ways that are specific to your business needs. Например, можно написать код VBA, выводящий всплывающее сообщение, которое напоминает пользователям о необходимости сохранения документа на определенном сетевом диске при первой попытке его сохранения.For example, you could write some VBA code that displays a pop up message that reminds users to save a document to a particular network drive the first time they try to save it.
См. такжеSee also
Поддержка и обратная связьSupport and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Справочник по языку Visual Basic
-
- Чтение занимает 2 мин
В этой статье
Содержит документацию, посвященную языку Visual Basic, в том числе сведения обо всех его методах, свойствах, инструкциях, функциях, операторах и объектах.Provides documentation about Visual Basic the language: all its methods, properties, statements, functions, operators, and objects.
Примечание
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах?Interested in developing solutions that extend the Office experience across multiple platforms? Ознакомьтесь с новой моделью надстроек Office.Check out the new Office Add-ins model. У надстроек Office мало места по сравнению с надстройками и решениями VSTO, которые можно создавать с помощью практически любой технологии веб-программирования, например HTML5, JavaScript, CSS3 и XML.Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
См. такжеSee also
Поддержка и обратная связьSupport and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Операторы и встроенные функции VBA
Операторы Excel VBA
При написании кода VBA в Excel набор встроенных операторов используют на каждом шагу. Эти операторы делятся на математические, строковые, операторы сравнения и логические. Далее мы подробно рассмотрим каждую группу операторов.
Математические операторы
Основные математические операторы VBA перечислены в таблице ниже.
В правом столбце таблицы указан приоритет операторов, принятый по умолчанию при отсутствии скобок. Добавляя в выражение скобки, можно изменять порядок выполнения операторов VBA по своему желанию.
Оператор | Действие | Приоритет (1 – высший; 5 – низший) |
---|---|---|
^ | Оператор возведения в степень | 1 |
* | Оператор умножения | 2 |
/ | Оператор деления | 2 |
\ | Оператор деления без остатка – возвращает результат деления двух чисел без остатка. Например, 7\4 возвратит результат 1 | 3 |
Mod | Оператор модуля (остатка) – возвращает остаток от деления двух чисел. Например, 8 Mod 3 возвратит результат 2. | 4 |
+ | Оператор сложения | 5 |
– | Оператор вычитания | 5 |
Строковые операторы
Основной строковый оператор в Excel VBA – это оператор конкатенации & (слияние):
Оператор | Действие |
---|---|
& | Оператор конкатенации. К примеру, выражение “A” & “B” возвратит результат AB. |
Операторы сравнения
Операторы сравнения используются для сравнения двух чисел или строк и возвращают логическое значение типа Boolean (True или False). Основные операторы сравнения Excel VBA перечислены в этой таблице:
Оператор | Действие |
---|---|
= | Равно |
<> | Не равно |
< | Меньше |
> | Больше |
<= | Меньше либо равно |
>= | Больше либо равно |
Логические операторы
Логические операторы, как и операторы сравнения, возвращают логическое значение типа Boolean (True или False). Основные логические операторы Excel VBA перечислены в таблице ниже:
Оператор | Действие |
---|---|
And | Операция конъюнкции, логический оператор И. Например, выражение A And B возвратит True, если A и B оба равны True, в противном случае возвратит False. |
Or | Операция дизъюнкции, логический оператор ИЛИ. Например, выражение A Or B возвратит True, если A или B равны True, и возвратит False, если A и B оба равны False. |
Not | Операция отрицания, логический оператор НЕ. Например, выражение Not A возвратит True, если A равно False, или возвратит False, если A равно True. |
В приведённой выше таблице перечислены не все логические операторы, доступные в VBA. Полный список логических операторов можно найти на сайте Visual Basic Developer Center.
Встроенные функции
В VBA доступно множество встроенных функций, которые могут быть использованы при написании кода. Ниже перечислены некоторые из наиболее часто используемых:
Функция | Действие | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Abs | Возвращает абсолютную величину заданного числа. Пример:
| ||||||||||||||||||||||
Chr | Возвращает символ ANSI, соответствующий числовому значению параметра. Пример:
| ||||||||||||||||||||||
Date | Возвращает текущую системную дату. | ||||||||||||||||||||||
DateAdd | Добавляет определённый временной интервал к заданной дате. Синтаксис функции:
Где аргумент интервал определяет тип временного интервала, добавляемого к заданной дате в количестве, указанном в аргументе число. Аргумент интервал может принимать одно из следующих значений:
Пример:
| ||||||||||||||||||||||
DateDiff | Вычисляет количество определённых временных интервалов между двумя заданными датами. Пример:
| ||||||||||||||||||||||
Day | Возвращает целое число, соответствующее дню месяца в заданной дате. Пример: Day(“29/01/2015”) возвращает число 29. | ||||||||||||||||||||||
Hour | Возвращает целое число, соответствующее количеству часов в заданном времени. Пример: Hour(“22:45:00”) возвращает число 22. | ||||||||||||||||||||||
InStr | Принимает в качестве аргументов целое число и две строки. Возвращает позицию вхождения второй строки внутри первой, начиная поиск с позиции, заданной целым числом. Пример:
Примечание: Аргумент-число может быть не задан, в таком случае поиск начинается с первого символа строки, заданной во втором аргументе функции. | ||||||||||||||||||||||
Int | Возвращает целую часть заданного числа. Пример: Int(5.79) возвращает результат 5. | ||||||||||||||||||||||
Isdate | Возвращает True, если заданное значение является датой, или False – если датой не является. Пример:
| ||||||||||||||||||||||
IsError | Возвращает True, если заданное значение является ошибкой, или False – если ошибкой не является. | ||||||||||||||||||||||
IsMissing | В качестве аргумента функции передаётся имя необязательного аргумента процедуры. IsMissing возвращает True, если для рассматриваемого аргумента процедуры не передано значение. | ||||||||||||||||||||||
IsNumeric | Возвращает True, если заданное значение может быть рассмотрено как число, в противном случае возвращает False. | ||||||||||||||||||||||
Left | Возвращает заданное количество символов от начала переданной строки. Синтаксис функции вот такой:
где строка – это исходная строка, а длина – количество возвращаемых символов, считая от начала строки. Пример:
| ||||||||||||||||||||||
Len | Возвращает количество символов в строке. Пример: Len(“абвгдеж”) возвращает число 7. | ||||||||||||||||||||||
Month | Возвращает целое число, соответствующее месяцу в заданной дате. Пример: Month(“29/01/2015”) возвращает значение 1. | ||||||||||||||||||||||
Mid | Возвращает заданное количество символов из середины переданной строки. Синтаксис функции: Mid(строка, начало, длина) где строка – это исходная строка, начало – позиция начала извлекаемой строки, длина – количество символов, которые требуется извлечь. Пример:
| ||||||||||||||||||||||
Minute | Возвращает целое число, соответствующее количеству минут в заданном времени.Пример: Minute(“22:45:15”) возвращает значение 45. | ||||||||||||||||||||||
Now | Возвращает текущую системную дату и время. | ||||||||||||||||||||||
Right | Возвращает заданное количество символов от конца переданной строки. Синтаксис функции: Right(строка, длина) Где строка – это исходная строка, а длина – это количество символов, которые надо извлечь, считая от конца заданной строки. Пример:
| ||||||||||||||||||||||
Second | Возвращает целое число, соответствующее количеству секунд в заданном времени. Пример: Second(“22:45:15”) возвращает значение 15. | ||||||||||||||||||||||
Sqr | Возвращает квадратный корень числовой величины, переданной в аргументе. Пример:
| ||||||||||||||||||||||
Time | Возвращает текущее системное время. | ||||||||||||||||||||||
Ubound | Возвращает верхний индекс измерения заданного массива. Примечание: Для многомерных массивов в качестве необязательного аргумента может быть указано, индекс какого именно измерения нужо возвратить. Если не указано, то по умолчанию равно 1. | ||||||||||||||||||||||
Year | Возвращает целое число, соответствующее году в заданной дате.Пример: Year(“29/01/2015”) возвращает значение 2015. |
Данный список включает в себя только избранные наиболее часто употребляемые встроенные функции Excel Visual Basic. Исчерпывающий список функций VBA, доступных для использования в макросах Excel, можно найти на сайте Visual Basic Developer Center.
Оцените качество статьи. Нам важно ваше мнение:
Excel vba что такое
VBA Excel: примеры программ. Макросы в Excel
Смотрите такжеСервис — НастройкаМакрорекордер записывает только те нам кнопкаDim могут оказаться неверными упомянуть ещё одинВозвращает верхний индекс измеренияInStr(1, «Вот искомое слово»,оба равныSubSub взглянуть на особенностиКроме того, полный список в описании формата. от 1 до приступать к рассмотрениюНемногие знают, что первая
Что такое VBA
(Tools — Customize) действия, которые выполняютсяРедактор Visual Basicможно использовать ключевое и неожиданными, а очень важный момент. заданного массива.
«слово»)Trueключевое слово не, то в выделенном и отличия этих встроенных функций VBAи пр. 11, то пишем: конкретных примеров программ версия популярного продуктаи перейдите на
в пределах окна(Visual Basic Editor) слово найти причину ошибок Если мы объявляемПримечание:возвращает число 13., в противном случае вставлено, то по диапазоне ячеек будет двух типов процедур. с примерами можноИзучение свойств этих функцийFor i = 1 VBA Excel. Лучше Microsoft Excel появилась вкладку Microsoft Excel. Как:Private будет гораздо сложнее.Возможно переменную, но не
Объекты, коллекции, свойства и методы
Для многомерных массивовInStr(14, «Вот искомое слово, возвратит умолчанию для процедуры установлен размер шрифта, Далее приведены краткие найти на сайте и их применение to 10 step всего начать с в 1985 году.Команды (Commands) только вы закрываете
К сожалению, интерфейс редактора, которое укажет на также, что макрос присваиваем ей какое-либо в качестве необязательного а вот ещеFalse устанавливается свойство заданный пользователем. обсуждения процедур VBA
Visual Basic Developer позволит значительно расширить 1 Next. самых элементарных кодов. С тех пор. В категории Excel или переключаетесь VBA и файлы
то, что данная будет «успешно» выполнен. значение, то она аргумента может быть искомое слово», «слово»).
PublicСледующая процедура похожа наFunction Centre. сферу применения «Эксель».Здесь step — шаг.Задача: написать программу, которая он пережил несколькоМакросы в другую программу справки не переводятся переменная предназначена для В результате ошибка инициализируется значением по указано, индекс какого
возвращает число 38.Or(то есть она только что рассмотренную,
Как начать
иВ Excel Visual BasicПопробуем перейти к решению В данном случае будет копировать значение модификаций и востребован
легко найти веселый — запись останавливается. компанией Microsoft на использования только в останется незамеченной и
- умолчанию: именно измерения нужоПримечание:Операция дизъюнкции, логический оператор будет доступна везде
- но на этот
- Sub набор команд, выполняющий более сложных задач.
- он равен двум. содержимое одной ячейки
у миллионов пользователей
желтый «колобок» -
Макрорекордер может записать только
русский язык, поэтому
текущем модуле. работа продолжится с• текстовые строки возвратить. Если неАргумент-число может бытьИЛИ в данном проекте раз, вместо изменения
и показаны простые определённую задачу, помещается Например: По умолчанию отсутствие и затем записывать по всему миру.Настраиваемую кнопку те действия, для с английскими командамиДля объявления констант также неверными данными! — инициализируются пустыми указано, то по не задан, в
Макросы в Excel
. Например, выражение VBA). В этом размера, применяется полужирное примеры. в процедуруДан бумажный документ отчета этого слова в в другую. При этом многие(Custom button) которых есть команды в меню и можно использовать ключевыеВ связи с этим, строками; умолчанию равно 1. таком случае поискA Or B состоит отличие от начертание шрифта в
Пример 1
Редактор VBA распознаёт процедуруFunction фактического уровня издержек цикле означает, чтоДля этого:
работают лишь с
- :
- меню или кнопки
- окнах придется смириться:
- слова
неверный тип данных• числа —Year начинается с первоговозвратит объявления переменных, которые выделенном диапазоне ячеек.Function(Функция) или
предприятия. Требуется: шаг единичный.открывают вкладку «Вид»; малой толикой возможностейПеретащите ее к себе в Excel. ПрограммистМакросы (т.е. наборы командPublic желательно обнаруживать и
значением 0;
- Возвращает целое число, соответствующее символа строки, заданной
- True по умолчанию бывают
- Это пример процедуры, когда встречает группуSub
разработать его шаблонную частьПолученные результаты нужно сохранятьпереходят на пиктограмму «Макросы»; этого табличного процессора
на панель инструментов же может написать на языке VBA)и как можно раньше• переменные типа году в заданной во втором аргументе, еслиPrivateSub команд, заключённую между
(Подпрограмма). Главное отличие посредством табличного процессора в ячейки сжмут на «Запись макроса»; и даже не и затем щелкните макрос, который делает хранятся в программныхPrivate исправлять такие ошибкиBoolean дате.Пример:
функции.A., которой не передаются вот такими открывающим между процедурами «Эксель»;
Пример 2
номером (i,1). Тогдазаполняют открывшуюся форму. догадываются, как им
по ней правой то, что Excel модулях. В любой, но не вместо в коде. По— False;Year(«29/01/2015»)IntилиЕсли нужно завершить выполнение
никакие аргументы: и закрывающим операторами:Functionсоставить программу VBA, которая при каждом запускеДля простоты в поле могло бы облегчить кнопкой мыши. В никогда не умел
книге Excel мы ключевого слова этим причинам при• даты —возвращает значение 2015.Возвращает целую часть заданногоB
VBA процедуры
Sub Format_Centered_And_Bold() Selection.HorizontalAlignment
Function … End
и
будет запрашивать исходные
цикла с увеличением «Имя макроса» оставляют жизнь умение программирования контекстом меню можно (сортировку по цвету,
можем создать любоеConst
написании макроса VBA 30 декабря 1899.Данный список включает в числа.
равныFunction = xlCenter Selection.VerticalAlignment Function
Sub данные для ее
i на величину «Макрос1», а в
Что такое vba в excel
VBA Excel: примеры программ. Макросы в Excel
Смотрите такжелегко найти веселый макрос, который делает модуль может содержать книгу Excel сПример:Пример:Or автоматически в ходе привязанных к текущей используется, как стандартное перед ним процедураi коллекцией готовых встроенных Они значительно расширяют нас интересуют значения этой возможности табличныйНемногие знают, что первая
Что такое VBA
желтый «колобок» - то, что Excel любое количество макросов. поддержкой макросов. ДляSqr(4)InStr(1, «Вот искомое слово»,Операция дизъюнкции, логический оператор
выполнения программы. Окно книге. Изначально в в Excel (например,Subизменения будут утрачены. функций, которые можно стандартные возможности «Эксель». для 10 ячеек. процессор Microsoft саморазвивается, версия популярного продуктаНастраиваемую кнопку
никогда не умел Доступ ко всем этого нажмитевозвращает значение 2; «слово»)ИЛИLocals него входят:Ctrl+C, когда встречает группуSub AddToCells(ByRef i As использовать при написании Так, функция WeekdayName Код выглядит следующим подстраиваясь под требования Microsoft Excel появилась(Custom button) (сортировку по цвету, модулям осуществляется сCtrl+SSqr(16)возвращает число 13.
Объекты, коллекции, свойства и методы
. Например, выражениеочень полезно приОбъект). Если выбрать уже команд, заключённую между Integer) … End кода. возвращает название (полное образом. конкретного пользователя. Разобравшись в 1985 году.: например или что-то
помощью окна Projectи в окневозвращает значение 4.InStr(14, «Вот искомое слово,A Or B отладке кода VBA.ЭтаКнига существующее сочетание клавиш, вот такими открывающим Sub
Список этих функций можно или частичное) дняFor i = 1 с тем, как С тех порПеретащите ее к себе подобное). Explorer в левом
с предупреждениемTime а вот ещевозвратитОкно(ThisWorkbook), привязанный к
то оно будет и закрывающим операторами:В этом случае целочисленный посмотреть в редакторе недели по его to 10 Next создавать модули для он пережил несколько на панель инструментовЕсли во время записи верхнем углу редактораСледующие компоненты невозможно сохранитьВозвращает текущее системное время. искомое слово», «слово»)True
Watches книге Excel; переназначено макросу, иSub … End
Как начать
аргумент VBA: номеру. Еще болееКоманда переводится на «человеческий» написания макросов, можно модификаций и востребован
и затем щелкните макроса макрорекордером вы (если его не в книге безUbound
- возвращает число 38., еслитакже очень помогаетОбъекты в результате пользователь
- Sub
- iОткройте рабочую книгу Excel полезной является Timer.
- язык, как «Повторять приступать к рассмотрению
у миллионов пользователей
по ней правой
ошиблись — ошибка
видно, нажмите CTRL+R).
поддержки макросовВозвращает верхний индекс измеренияПримечание:A при отладке кодаЛист может запустить выполнениеРассмотрим пример простой VBA
передан по ссылке. и запустите редактор Он выдает число от 1 до конкретных примеров программ по всему миру. кнопкой мыши. В будет записана. Однако Программные модули бывают(The following features заданного массива.Аргумент-число может бытьили VBA, так как
Макросы в Excel
(Sheet), привязанные к макроса случайно. процедуры После выхода из VBA (нажмите для секунд, которые прошли 10 с шагом VBA Excel. Лучше При этом многие контекстом меню можно смело можете давить нескольких типов для cannot be savedПримечание: не задан, вB в нём можно каждому листу текущейВ части 2 данногоSub
Пример 1
процедуры этого с полуночи до один». всего начать с
работают лишь с
- назначить кнопке макрос,
- на кнопку отмены
- разных ситуаций:
- in macro-free workbook)
Для многомерных массивов таком случае поискравны увидеть значение, тип рабочей книги Excel. самоучителя обсуждалась тема, задача которой –SubAlt+F11
конкретного момента дня.Если ставится задача получить самых элементарных кодов. малой толикой возможностей выбрать другой значок последнего действия (Undo)Обычные модули нажмите в качестве необязательного
начинается с первого
- True и контекст любого
- Самостоятельно в проект можно области действия переменных
- изменить форматирование выделенноговсе сделанные с), и затем нажмите
Функции для преобразования числового столбец с квадратами,Задача: написать программу, которая этого табличного процессора
и имя: — во время- используются вНет аргумента может быть символа строки, заданной, и возвратит отслеживаемого выражения, которое добавить объекты и констант и диапазона ячеек. Вi
F2 аргумента в разные например, всех нечетных будет копировать значение и даже неКнопка на панели быстрого записи макроса макрорекордером большинстве случаев, когда(No). указано, индекс какого во втором аргументеFalse
задаст пользователь. ЧтобыUserform роль ключевых слов ячейках устанавливается выравниваниеизменения будут сохранены. системы счисления. Например,
Пример 2
чисел из диапазона содержимое одной ячейки догадываются, как им
доступа в Excel она не просто речь идет оОткроется диалоговое окно именно измерения нужо функции., если открыть окно,Public
по центру (и в переменной, котораяВ выпадающем списке в Oct выдает в от 1 до и затем записывать могло бы облегчить 2007 и новее возрвращает Вас в
макросах. Для созданияСохранение документа возвратить. Если неIntAWatchesModule
и
по вертикали, и
была передана процедуре
верхней левой части
восьмеричное представление числа.
11, то пишем: в другую. жизнь умение программированияЩелкните правой кнопкой мыши предыдущее состояние, но
такого модуля выберите(Save as). В
указано, то поВозвращает целую часть заданногои, нажмите
иPrivate по горизонтали) иSub
экрана выберите библиотекуФункции форматирования. Важнейшей из
For i = 1Для этого: в Excel.
по панели быстрого
и стирает последнюю
в меню выпадающем списке умолчанию равно 1. числа.BWatch WindowClass Module. Эти ключевые слова
размер шрифта изменяется.VBA
VBA Excel. Пользовательская функция (синтаксис, компоненты)
Создание пользовательской функции в VBA Excel, ее синтаксис и компоненты. Описание пользовательской функции и ее аргументов. Метод Application.MacroOptions.
Пользовательская функция – это процедура VBA, которая производит заданные вычисления и возвращает полученный результат. Используется для вставки в ячейки рабочего листа Excel или для вызова из других процедур.
Объявление пользовательской функции
Синтаксис функции
[Static] Function Имя ([СписокАргументов])[As ТипДанных] [Операторы] [Имя = выражение] [Exit Function] [Операторы] [Имя = выражение] End Function |
Компоненты функции
- Static — необязательное ключевое слово, указывающее на то, что значения переменных, объявленных в функции, сохраняются между ее вызовами.
- Имя — обязательный компонент, имя пользовательской функции.
- СписокАргументов — необязательный компонент, одна или более переменных, представляющих аргументы, которые передаются в функцию. Аргументы заключаются в скобки и разделяются между собой запятыми.
- Операторы — необязательный компонент, блок операторов (инструкций).
- Имя = выражение — необязательный* компонент, присвоение имени функции значения выражения или переменной. Обычно, значение присваивается функции непосредственно перед выходом из нее.
- Exit Function — необязательный компонент, принудительный выход из функции, если ей уже присвоено окончательное значение.
*Один из компонентов Имя = выражение следует считать обязательным, так как если не присвоить функции значения, смысл ее использования теряется.
Видимость функции
Видимость пользовательской функции определяется необязательными ключевыми словами Public и Private, которые могут быть указаны перед оператором Function (или Static, в случае его использования).
Ключевое слово Public указывает на то, что функция будет доступна для вызова из других процедур во всех модулях открытых книг Excel. Функция, объявленная как Public, отображается в диалоговом окне Мастера функций.
Ключевое слово Private указывает на то, что функция будет доступна для вызова из других процедур только в пределах программного модуля, в котором она находится. Функция, объявленная как Private, не отображается в диалоговом окне Мастера функций, но ее можно ввести в ячейку вручную.
Если ключевое слово Public или Private не указано, функция считается по умолчанию объявленной, как Public.
Чтобы пользовательская функция всегда была доступна во всех открытых книгах Excel, сохраните ее в Личной книге макросов без объявления видимости или как Public. Но если вы планируете передать рабочую книгу с пользовательской функцией на другой компьютер, код функции должен быть в программном модуле передаваемой книги.
Пример пользовательской функции
Для примера мы рассмотрим простейшую пользовательскую функцию, которой в следующем параграфе добавим описание. Называется функция «Деление», объявлена с типом данных Variant, так как ее возвращаемое значение может быть и числом, и текстом. Аргументы функции – Делимое и Делитель – тоже объявлены как Variant, так как в ячейках Excel могут быть числовые значения разных типов, и функция IsNumeric тоже проверяет разные типы данных и требует, чтобы ее аргументы были объявлены как Variant.
Function Деление(Делимое As Variant, Делитель As Variant) As Variant If IsNumeric(Делимое) = False Or IsNumeric(Делитель) = False Then Деление = «Ошибка: Делимое и Делитель должны быть числами!» Exit Function ElseIf Делитель = 0 Then Деление = «Ошибка: деление на ноль!» Exit Function Else Деление = Делимое / Делитель End If End Function |
Эта функция выполняет деление значений двух ячеек рабочего листа Excel. Перед делением проверяются два блока условий:
- Если делимое или делитель не являются числом, функция возвращает значение: «Ошибка: Делимое и Делитель должны быть числами!», и производится принудительный выход из функции оператором Exit Function.
- Если делитель равен нулю, функция возвращает значение: «Ошибка: деление на ноль!», и производится принудительный выход из функции оператором Exit Function.
Если проверяемые условия не выполняются (возвращают значение False) производится деление чисел и функция возвращает частное (результат деления).
Вы можете скопировать к себе в стандартный модуль эту функцию и она станет доступна в разделе «Определенные пользователем» Мастера функций. Попробуйте вставить функцию «Деление» в ячейку рабочего листа с помощью Мастера и поэкспериментируйте с ней.
Практического смысла функция «Деление» не имеет, но она хорошо демонстрирует как объявляются, создаются и работают пользовательские функции в VBA Excel. А еще она поможет продемонстрировать, как добавлять к функциям и аргументам описания. С полноценной пользовательской функцией вы можете ознакомиться здесь.
Добавление описания функции
В списке функций, выводимом Мастером, невозможно добавить или отредактировать их описание. Список макросов позволяет добавлять процедурам описание, но в нем нет функций. Проблема решается следующим образом:
- Запустите Мастер функций, посмотрите, как отображается имя нужной функции и закройте его.
- Откройте список макросов и в поле «Имя макроса» впишите имя пользовательской функции.
- Нажмите кнопку «Параметры» и в открывшемся окне добавьте или отредактируйте описание.
- Нажмите кнопку «OK», затем в окне списка макросов – «Отмена». Описание готово!
Добавление описания на примере функции «Деление»:
Добавление описания пользовательской функции
Описание функции «Деление» в диалоговом окне Мастера функций «Аргументы функции»:
Описание пользовательской функции в окне «Аргументы функции»
С помощью окна «Список макросов» можно добавить описание самой функции, а ее аргументам нельзя. Но это можно сделать, используя метод Application.MacroOptions.
Метод Application.MacroOptions
Метод Application.MacroOptions позволяет добавить пользовательской функции описание, назначить сочетание клавиш, указать категорию, добавить описания аргументов и добавить или изменить другие параметры. Давайте рассмотрим возможности этого метода, используемые чаще всего.
Пример кода с методом Application.MacroOptions:
Sub ИмяПодпрограммы() Application.MacroOptions _ Macro:=»ИмяФункции», _ Description:=»Описание функции», _ Category:=»Название категории», _ ArgumentDescriptions:=Array(«Описание 1», «Описание 2», «Описание 3», …) End Sub |
- ИмяПодпрограммы — любое уникальное имя, подходящее для наименования процедур.
- ИмяФункции — имя функции, параметры которой добавляются или изменяются.
- Описание функции — описание функции, которое добавляется или изменяется.
- Название категории — название категории в которую будет помещена функция. Если параметр Category отсутствует, пользовательская функция будет записана в раздел по умолчанию – «Определенные пользователем». Если указанное Название категории соответствует одному из названий стандартного списка, функция будет записана в него. Если такого Названия категории нет в списке, будет создан новый раздел с этим названием и функция будет помещена в него.
- “Описание 1”, “Описание 2”, “Описание 3”, … — описания аргументов в том порядке, как они расположены в объявлении пользовательской функции.
Эта подпрограмма запускается один раз, после чего ее можно удалить или использовать как шаблон для корректировки параметров других пользовательских функций.
Сейчас с помощью метода Application.MacroOptions попробуем изменить описание пользовательской функции «Деление» и добавить описания аргументов.
Sub ИзменениеОписания() Application.MacroOptions _ Macro:=»Деление», _ Description:=»Описание функции Деление изменено методом Application.MacroOptions», _ ArgumentDescriptions:=Array(«- любое числовое значение», «- числовое значение, кроме нуля») End Sub |
После однократного запуска этой подпрограммы получаем следующий результат:
Новое описание пользовательской функции и ее второго аргумента
Метод Application.MacroOptions не работает в Личной книге макросов, но и здесь можно найти решение. Добавьте описания к пользовательским функциям и их аргументам в обычной книге Excel, затем экспортируйте модуль с функциями в любой каталог на жестком диске и оттуда импортируйте в Личную книгу макросов. Все описания сохранятся.
Глоссарий VBA | Microsoft Docs
-
- Чтение занимает 4 мин
В этой статье
Глоссарий терминов для Visual Basic для приложений (VBA).Glossary of terms for Visual Basic for Applications (VBA).
accelerator key (быстрая клавиша)accelerator key
Один символ, используемый в качестве ярлыка для выбора объекта.A single character used as a shortcut for selecting an object. Нажатие клавиши ALT, за которым следует клавиша вызова, дает фокус объекту и инициирует одно или несколько событий, связанных с объектом.Pressing the ALT key, followed by the accelerator key gives focus to the object and initiates one or more events associated with the object. События, вызванные определенными событиями или событиями, отличаются от одного объекта к другому.The specific event or events initiated varies from one object to another. Если код связан с событием, он обрабатывается при инициации события.If code is associated with an event, it is processed when the event is initiated. Также называется сочетание клавиш, сочетание клавиш, сочетание клавиш.Also called keyboard accelerator, shortcut key, keyboard shortcut.
background color (цвет фона)background color
Цвет клиентской области пустого окна или экрана, на которой выполняется рисование и отображение цветов.The color of the client region of an empty window or display screen, on which all drawing and color display takes place.
свободногоbound
Описывает элемент управления, содержимое которого связано с определенным источником данных, например ячейкой или диапазоном ячеек на листе.Describes a control whose contents are associated with a particular data source, such as a cell or cell range in a worksheet.
зашифрованclear
Для изменения установки на off (выкл) или удаления значения.To change a setting to «off» or remove a value.
client region (клиентская область)client region
Часть окна, в которой приложение отображает выходные данные, например текст или графику.The portion of a window where an application displays output such as text or graphics.
context ID (контекстный идентификатор)context ID
Уникальное число или строка, соответствующие определенному объекту в приложении.A unique number or string that corresponds to a specific object in an application. Контекстные идентификаторы используются для создания связей между приложением и соответствующими разделами справки.Context IDs are used to create links between the application and corresponding Help topics.
control group (группа элементов)control group
Набор элементов управления, связанных концептуально или логически.A set of controls that are conceptually or logically related. Элементы управления, связанные концептуально, как правило, отображаются вместе, но не обязательно влияют друг на друга.Controls that are conceptually related are usually viewed together but do not necessarily affect each other. Элементы управления, связанные логически, влияют друг на друга.Controls that are logically related affect each other. Например, выбор одного из группы переключателей присваивает всем другим переключателям значение False.For example, setting one button in a group of option buttons sets the value of all other buttons in the group to False.
control tip (подсказка элемента)control tip
Краткая фраза, описывающая элемент управления, страницуили вкладку. Всплывающая подсказка отображается, когда пользователь ненадолго удерживает указатель мыши на элементе управления без нажатия кнопки мыши.A brief phrase that describes a control, a Page, or a Tab. The control tip appears when the user briefly holds the mouse pointer over a control without clicking. Подсказки элементов управления подобны объектам ToolTip.A control tip is similar to a ToolTip. Приложение Microsoft Forms предоставляет объекты ToolTip разработчикам во время создания приложения, а разработчики предоставляют подсказки элементов управления конечным пользователям во время работы приложения.Microsoft Forms provides ToolTips to developers at design time, while developers provide control tips to end-users at run time.
установленcursor
Часть программы, возвращающая строки данных приложению.A piece of software that returns rows of data to the application. Указатель обозначает текущую позицию в наборе результатов.A cursor on a result set indicates the current position in the result set.
повторноcycle
Перемещение по группе объектов в определенном порядке.To move through a group of objects in a defined order.
data format (формат данных)data format
Структура или внешний вид модуля данных, например файла, базы данных и ее записей, ячейки на листе или текста в документе.The structure or appearance of a unit of data, such as a file, a database record, a cell in a spreadsheet, or text in a word-processing document.
источник данныхdata source
Местоположение данных, с которыми связан элемент управления, например, ячейка на листе.The location of data to which a control is bound, for example, a cell in a worksheet. Текущее значение источника данных может храниться в свойстве value элемента управления.The current value of the data source can be stored in the Value property of a control. Однако элемент управления не сохраняет данные; в нем отображаются только сведения, хранящиеся в источнике данных.However, the control does not store the data; it only displays the information that is stored in the data source.
dominant control (основной элемент управления)dominant control
Ориентир для команд Align (Выровнять) и Make Same Size (Сделать одного размера) в меню Format (Формат).A reference for the Align command and Make Same Size command on the Format menu. При выравнивании элементов управления выбранные элементы выравниваются относительно основного.When aligning controls, the selected controls align to the dominant control. При изменении размеров элементов управления выбранным элементам присваиваются размеры основного.When sizing controls, the selected controls are assigned the dimensions of the dominant control. Основной элемент управления обозначается белыми маркерами.The dominant control is indicated by white sizing handles. Остальные элементы обозначаются черными маркерами.The sizing handles of the other selected controls are black.
drop source (источник перетаскивания)drop source
Выбранный текст или объект, который перемещается в ходе операции перетаскивания.The selected text or object that is dragged in a drag-and-drop operation.
enumerated constant (перечисляемая константа)enumerated constant
Дополнительные сведения о перечисляемых элементах данных можно найти в описании свойства, метода или события, использующего перечисление.You can find additional information for an enumerated data item in the description of the property, method, or event that uses the enumeration.
foreground color (цвет переднего плана)foreground color
Цвет, выбранный для рисования и отображения текста на экране.The color that is currently selected for drawing or displaying text on screen. На монохромных экранах цветом переднего плана является цвет точечного рисунка или другого изображения.In monochrome displays, the foreground color is the color of a bitmap or other graphic.
grid block (блок сетки)grid block
Пространство между двумя соседними точками сетки.The space between two adjacent grid points.
Редактор метода ввода (IME)Input Method Editor (IME)
Приложение, которое переводит введенные данные в символа языка DBCS, например японского или китайского.An application that translates what you type into characters of a DBCS language, such as Japanese or Chinese. Как и пользовательские типы, IME отображает возможные эквиваленты.As the user types, the IME displays possible equivalents. Пользователь выбирает наиболее подходящий вариант.The user selects the most appropriate entry.
inherited property (унаследованное свойство)inherited property
Свойство, получившее характеристики другого класса.A property that has acquired the characteristics of another class.
keyboard state (состояние клавиатуры)keyboard state
Возвращаемое значение, обозначающее нажатые клавиши и состояние модификаторов SHIFT, CTRL и ALT.A return value that identifies which keys are pressed and whether the keyboard modifiers SHIFT, CTRL, and ALT are pressed.
OLE container control (контейнер OLE)OLE container control
Элемент управления Visual Basic, используемый для связи и встраивания объектов из других приложений в приложениях Visual Basic.A Visual Basic control that is used to link and embed objects from other applications in a Visual Basic application.
OLE status code (код состояния OLE)OLE status code
Часть структуры данных, содержащая номер ошибки и возвращающая сведения о ее условиях.The error number portion of a data structure that returns information for error conditions. Структура данных определяется связыванием и встраиванием объектов.The data structure is defined by Object Linking and Embedding.
наглядplaceholder
Символ, маскирующий или скрывающий другой символ из соображений безопасности.A character that masks or hides another character for security reasons. Например, при вводе пароля вместо каждого введенного символа на экране отображается знак звездочки.For example, when a user types a password, an asterisk is displayed on the screen to take the place of each character typed.
property page (страница свойств)property page
Сгруппированный список свойств, представленный в виде страницы с вкладками на листе свойств.A grouping of properties presented as a tabbed page of a property sheet.
RGBRGB
Система значений цвета, используемая для описания цветов в виде смеси красного (R), зеленого (G) и синего (B).A color value system used to describe colors as a mixture of red (R), green (G), and blue (B). Цвет определяется как набор из трех целых чисел (R, G, B), где каждый диапазон целых чисел — от 0-255.The color is defined as a set of three integers (R,G,B) where each integer ranges from 0-255. Значение 0 обозначает полное отсутствие цветового компонента.A value of 0 indicates a total absence of a color component. Значение 255 обозначает наибольшую интенсивность цветового компонента.A value of 255 indicates the highest intensity of a color component.
system colors (системные цвета)system colors
Цвета, определенные операционной системой для конкретного типа монитора и видеоадаптера.Colors that are defined by the operating system for a specific type of monitor and video adapter. В операционной системе Windows каждый цвет ассоциируется с определенной частью пользовательского интерфейса, например заголовком окна или меню.In Windows, each color is associated with a specific part of the user interface, such as a window title or a menu.
targettarget
Объект, на который перетаскивается другой объект.An object onto which the user drops the object being dragged.
прозрачtransparent
Указывает на то, что фон объекта невидимый.Describes the background of the object if the background is not visible. Вместо фона отображается то, что находится за объектом, например изображение, используемое как фон приложения.Instead of the background, you see whatever is behind the object, for example, an image or picture used as a backdrop in your application. Для установки прозрачности фона используется свойство BackStyle.Use the BackStyle property to make the background transparent.
Несвязанныйunbound
Описывает элемент управления, не привязанный к ячейке на листе.Describes a control that is not related to a worksheet cell. Напротив, связанный элемент управления является источником данных для ячейки листа, предоставляющим доступ к отображению и редактированию значения элемента.In contrast, a bound control is a data source for a worksheet cell that provides access to display and edit the value of a control.
См. такжеSee also
Поддержка и обратная связьSupport and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Логические операторы VBA: AND, OR, NOT
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- Database Testing
- Назад
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества
- 000300030003 SoapUI
- Управление тестированием
- TestLink
SAP
- Назад
- ABAP
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- FICO
- 000 HRM
- 000 HRM
- MM Pay
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- SAP Tutorials
- Web
- Web
- AngularJS
- ASP.Net
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
js
- Perl
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 0003 COBOL
- 000 Compiler
- 9000 Встроенный
- 000 9000 Compiler
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сети
- Операционная система
- 0003
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
- MongoDB
- N
0003
0003
.
Логические операторы Excel VBA — Простые макросы Excel
Логический оператор И | Логический оператор Or | Логический оператор Not
Три наиболее часто используемых логических оператора в Excel VBA : And, Or и Not. Как всегда, мы будем использовать простые примеры, чтобы прояснить ситуацию.
Логический оператор
и
Поместите командную кнопку на лист и добавьте следующие строки кода:
Dim score1 As Integer, score2 As Integer, result As String
score1 = Range («A1»).Стоимость
score2 = Range («B1»). Значение
Если score1> = 60 And score2> 1 Тогда
result = «pass»
Else
result = «fail»
End If
Диапазон («C1»). Значение = результат
Объяснение: если оценка1 больше или равна 60 и оценка2 больше 1, Excel VBA возвращает успешно, иначе Excel VBA возвращает ошибку.
Результат при нажатии кнопки команды на листе:
Заключение: Excel VBA возвращает ошибку, потому что score2 не больше 1.
Логический оператор
или
Поместите командную кнопку на лист и добавьте следующие строки кода:
Dim score1 как целое число, score2 как целое число, результат как строка
score1 = Range («A1»).
score2 = Range («B1»). Значение
Если score1> = 60 или score2> 1 Тогда
result = «pass»
Else
result = «fail»
End If
Диапазон («C1»). Значение = результат
Объяснение: если оценка1 больше или равна 60 или оценка2 больше 1, Excel VBA возвращает успешно, иначе Excel VBA возвращает ошибку.
Результат при нажатии кнопки команды на листе:
Заключение: Excel VBA возвращает успешно, поскольку score1 больше или равен 60.
Логический оператор Not
Поместите командную кнопку на лист и добавьте следующие строки кода:
Dim score1 как целое число, score2 как целое число, результат как строка
score1 = Range («A1»).
score2 = Range («B1»). Значение
Если score1> = 60 And Not score2 = 1 Then
result = «pass»
Else
result = «fail»
End If
Диапазон («C1»).Значение = результат
Объяснение: если оценка1 больше или равна 60, а оценка2 равна , а не , равной 1, Excel VBA возвращает успешно, иначе Excel VBA возвращает ошибку.
Результат при нажатии кнопки команды на листе:
Заключение: Excel VBA возвращает ошибку, потому что score2 равен 1.
.
Excel VBA Переменные, типы данных и константы
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- Database Testing
- J2000 Тестирование базы данных
- Назад
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества (ALM)
- Центр качества (ALM)
- Управление тестированием
- TestLink
SAP
- Назад
- ABAP
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- QM4000
- QM4
- Заработная плата
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- Учебники SAP
- Apache
- AngularJS
- ASP.Net
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
js
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 0003 COBOL
- 000 Compiler
- 9000 Встроенный
- 000 9000 Compiler
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сети
- Операционная система
- 0003
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
0003
0003
0003
.
Excel, функция VBA и подпрограмма
Функция | Sub
Разница между функцией и подпрограммой в Excel VBA заключается в том, что функция может возвращать значение, а подпрограмма — нет. Функции и подпрограммы становятся очень полезными по мере увеличения размера программы.
Функция
Если вы хотите, чтобы Excel VBA выполнял задачу, возвращающую результат, вы можете использовать функцию. Поместите функцию в модуль (в редакторе Visual Basic щелкните Вставить, Модуль).Например, функция с именем Area.
Функциональная область (x как двойная, y как двойная) как двойная
Площадь = x * y
Конечная функция
Объяснение: Эта функция имеет два аргумента (типа Double) и возвращаемый тип (часть после As также имеет тип Double). Вы можете использовать имя функции (Area) в своем коде, чтобы указать, какой результат вы хотите вернуть (здесь x * y).
Теперь вы можете обратиться к этой функции (другими словами, вызвать функцию) из другого места в коде, просто используя имя функции и задав значение для каждого аргумента.
Поместите командную кнопку на лист и добавьте следующие строки кода:
Dim z As Double
z = Area (3, 5) + 2
MsgBox z
Объяснение: Функция возвращает значение, поэтому вы должны «поймать» это значение в своем коде. Для этого вы можете использовать другую переменную (z). Затем вы можете добавить еще одно значение к этой переменной (если хотите). Наконец, отобразите значение с помощью MsgBox.
Результат при нажатии кнопки команды на листе:
Sub
Если вы хотите, чтобы Excel VBA выполнял какие-либо действия, вы можете использовать подпрограмму.Поместите подпрограмму в модуль (в редакторе Visual Basic щелкните Вставить, Модуль). Например, подписка с названием Area.
Дополнительная область (x как двойная, y как двойная)
MsgBox x * y
End Sub
Объяснение: У этой подпрограммы есть два аргумента (типа Double). У него нет возвращаемого типа! Вы можете ссылаться на эту подпрограмму (вызвать подпрограмму) откуда-нибудь еще в своем коде, просто используя имя подпрограммы и задав значение для каждого аргумента.
Поместите командную кнопку на лист и добавьте следующую строку кода:
Площадь 3, 5
Результат при нажатии кнопки команды на листе:
Вы видите разницу между функцией и сабом? Функция вернула значение 15.Мы добавили к этому результату значение 2 и отобразили окончательный результат. Когда мы вызывали подпрограмму, у нас больше не было контроля над результатом (15), потому что подпрограмма не может возвращать значение!
.