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 Возвращает абсолютную величину заданного числа.

Пример:

  • Abs(-20) возвращает значение 20;
  • Abs(20) возвращает значение 20.
Chr Возвращает символ ANSI, соответствующий числовому значению параметра.

Пример:

  • Chr(10) возвращает перенос строки;
  • Chr(97) возвращает символ a.
Date Возвращает текущую системную дату.
DateAdd Добавляет определённый временной интервал к заданной дате. Синтаксис функции:

DateAdd(интервал, число, дата)

Где аргумент интервал определяет тип временного интервала, добавляемого к заданной дате в количестве, указанном в аргументе число.

Аргумент интервал может принимать одно из следующих значений:

Интервал Значение
yyyy год
q квартал
m месяц
y день года
d день
w день недели
ww неделя
h час
n минута
s секунда

Пример:

  • DateAdd(“d”, 32, “01/01/2015”) добавляет 32 дня к дате 01/01/2015 и, таким образом, возвращает дату 02/02/2015.
  • DateAdd(“ww”, 36, “01/01/2015”) добавляет 36 недель к дате 01/01/2015 и возвращает дату 09/09/2015.
DateDiff Вычисляет количество определённых временных интервалов между двумя заданными датами.

Пример:

  • DateDiff(“d”, “01/01/2015”, “02/02/2015”) вычисляет количество дней между датами 01/01/2015 и 02/02/2015, возвращает результат 32.
  • DateDiff(“ww”, “01/01/2015”, “03/03/2016”) вычисляет количество недель между датами 01/01/2015 и 03/03/2016, возвращает результат 61.
Day Возвращает целое число, соответствующее дню месяца в заданной дате.

Пример: Day(“29/01/2015”) возвращает число 29.

Hour Возвращает целое число, соответствующее количеству часов в заданном времени.

Пример: Hour(“22:45:00”) возвращает число 22.

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

Пример:

  • InStr(1, “Вот искомое слово”, “слово”) возвращает число 13.
  • InStr(14, “Вот искомое слово, а вот еще искомое слово”, “слово”) возвращает число 38.

Примечание: Аргумент-число может быть не задан, в таком случае поиск начинается с первого символа строки, заданной во втором аргументе функции.

Int Возвращает целую часть заданного числа.

Пример: Int(5.79) возвращает результат 5.

Isdate Возвращает True, если заданное значение является датой, или False – если датой не является.

Пример:

  • IsDate(“01/01/2015”) возвращает True;
  • IsDate(100) возвращает False.
IsError Возвращает True, если заданное значение является ошибкой, или False – если ошибкой не является.
IsMissing В качестве аргумента функции передаётся имя необязательного аргумента процедуры. IsMissing возвращает True, если для рассматриваемого аргумента процедуры не передано значение.
IsNumeric Возвращает True, если заданное значение может быть рассмотрено как число, в противном случае возвращает False.
Left Возвращает заданное количество символов от начала переданной строки. Синтаксис функции вот такой:

Left(строка, длина)

где строка – это исходная строка, а длина – количество возвращаемых символов, считая от начала строки.

Пример:

  • Left(“абвгдежзиклмн”, 4) возвращает строку “абвг”;
  • Left(“абвгдежзиклмн”, 1) возвращает строку “а”.
Len Возвращает количество символов в строке.

Пример: Len(“абвгдеж”) возвращает число 7.

Month Возвращает целое число, соответствующее месяцу в заданной дате.

Пример: Month(“29/01/2015”) возвращает значение 1.

Mid Возвращает заданное количество символов из середины переданной строки. Синтаксис функции:

Mid(строка, начало, длина)

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

Пример:

  • Mid(“абвгдежзиклмн”, 4, 5)
    возвращает строку “гдежз”;
  • Mid(“абвгдежзиклмн”, 10, 2) возвращает строку “кл”.
Minute Возвращает целое число, соответствующее количеству минут в заданном времени.Пример: Minute(“22:45:15”) возвращает значение 45.
Now Возвращает текущую системную дату и время.
Right Возвращает заданное количество символов от конца переданной строки. Синтаксис функции:

Right(строка, длина)

Где строка – это исходная строка, а длина – это количество символов, которые надо извлечь, считая от конца заданной строки.

Пример:

  • Right(“абвгдежзиклмн”, 4) возвращает строку “клмн”;
  • Right(“абвгдежзиклмн”, 1)
    возвращает строку “н”.
Second Возвращает целое число, соответствующее количеству секунд в заданном времени.

Пример: Second(“22:45:15”) возвращает значение 15.

Sqr Возвращает квадратный корень числовой величины, переданной в аргументе.

Пример:

  • Sqr(4) возвращает значение 2;
  • Sqr(16) возвращает значение 4.
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, «Вот искомое слово»,​оба равны​Sub​Sub​ взглянуть на особенности​Кроме того, полный список​ в описании формата.​ от 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)​и​ как можно раньше​• переменные типа​ году в заданной​ во втором аргументе​, если​Private​Sub​ команд, заключённую между​

​(Подпрограмма). Главное отличие​ посредством табличного процессора​ в ячейки с​жмут на «Запись макроса»;​ и даже не​ и затем щелкните​ макрос, который делает​ хранятся в программных​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+S​Sqr(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.​ самоучителя обсуждалась тема​, задача которой –​Sub​Alt+F11​

​ конкретного момента дня.​Если ставится задача получить​ самых элементарных кодов.​ малой толикой возможностей​ выбрать другой значок​ последнего действия (Undo)​Обычные модули​ нажмите​ в качестве необязательного​

​ начинается с первого​

  • ​True​ и контекст любого​
  • ​Самостоятельно в проект можно​ области действия переменных​
  • ​ изменить форматирование выделенного​все сделанные с​), и затем нажмите​

​Функции для преобразования числового​ столбец с квадратами,​Задача: написать программу, которая​ этого табличного процессора​

​ и имя:​ — во время​- используются в​Нет​ аргумента может быть​ символа строки, заданной​, и возвратит​ отслеживаемого выражения, которое​ добавить объекты​ и констант и​ диапазона ячеек. В​i​

​F2​ аргумента в разные​ например, всех нечетных​ будет копировать значение​ и даже не​Кнопка на панели быстрого​ записи макроса макрорекордером​ большинстве случаев, когда​(No).​ указано, индекс какого​ во втором аргументе​False​

​ задаст пользователь. Чтобы​Userform​ роль ключевых слов​ ячейках устанавливается выравнивание​изменения будут сохранены​.​ системы счисления. Например,​

Пример 2

​ чисел из диапазона​ содержимое одной ячейки​ догадываются, как им​

​ доступа в Excel​ она не просто​ речь идет о​Откроется диалоговое окно​ именно измерения нужо​ функции.​, если​ открыть окно​,​Public​

​ по центру (и​ в переменной, которая​В выпадающем списке в​ Oct выдает в​ от 1 до​ и затем записывать​ могло бы облегчить​ 2007 и новее​ возрвращает Вас в​

​ макросах. Для создания​Сохранение документа​ возвратить. Если не​Int​A​Watches​Module​

​и​

​ по вертикали, и​

​ была передана процедуре​

​ верхней левой части​

​ восьмеричное представление числа.​

​ 11, то пишем:​ в другую.​ жизнь умение программирования​Щелкните правой кнопкой мыши​ предыдущее состояние, но​

​ такого модуля выберите​(Save as). В​

​ указано, то по​Возвращает целую часть заданного​и​, нажмите​

​и​Private​ по горизонтали) и​Sub​

​ экрана выберите библиотеку​Функции форматирования. Важнейшей из​

​For i = 1​Для этого:​ в Excel.​

​ по панели быстрого​

​ и стирает последнюю​

​ в меню​ выпадающем списке​ умолчанию равно 1.​ числа.​B​Watch Window​Class 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
    • 000
    • SQL
    • 000 0003 SQL 000 0003 SQL 000
    • UML
    • VB.Net
    • VBScript
    • Веб-службы
    • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • 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
        • Хранилище данных
        • 0003
        • HBOps
        • 0003
        • HBOps
        • MicroStrategy
        • MongoDB
        • N
    .

    Логические операторы 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
          • Perl
          • Назад
          • PHP
          • PL / SQL
          • PostgreSQL
          • Python
          • ReactJS
          • Ruby & Rails
          • Scala
          • SQL
          • 000
          • SQL
          • 000 0003 SQL 000 0003 SQL 000
          • UML
          • VB.Net
          • VBScript
          • Веб-службы
          • WPF
      • Обязательно учите!

          • Назад
          • Бухгалтерский учет
          • Алгоритмы
          • 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
            • Хранилище данных
            • 0003
            • HBOps
            • 0003
            • HBOps
            • 0003
            • MicroStrategy
        .

        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), потому что подпрограмма не может возвращать значение!

        .
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *