Общие сведения о функциях в макросах (Microsoft Excel)
Вы уже знаете, что можете использовать подпрограммы в своих макросах. VBA также позволяет вам определять функции, которые можно использовать в ваших макросах. Разница между функциями и подпрограммами заключается в том, что функции могут возвращать значения, а подпрограммы — нет. Рассмотрим следующий макрос:
Sub Macro1() TooMany = TestFunc If TooMany Then MsgBox "Too many columns selected" End Sub
Function TestFunc() TestFunc = False If Selection.Columns.Count > 10 Then TestFunc = True End If End Function
Макрос (Macro1) вызывает функцию TestFunc. Эта функция возвращает либо значение False, либо True, в зависимости от выполняемого теста. Затем Macro1 воздействует на возвращенное значение. Обратите внимание, что имя функции может отображаться справа от знака равенства. Это делает функции очень мощными и важной частью любой программы. Внутри функции результат присваивается TestFunc, что является именем самой функции; это значение, возвращаемое функцией.
Как и в случае с подпрограммами, вы также можете передавать параметры своим функциям.
Это показано в следующем макросе:
Sub Macro1() A = 12.3456 MsgBox A & vbCrLf & RoundIt(A) End Sub
Function RoundIt(X) As Integer RoundIt = Int(X + 0.5) End Function
Этот простой макрос (Macro1) определяет число, а затем использует окно сообщения для его отображения и результата передачи числа в функцию RoundIt. Результатом будет 12.3456 и 12. Обратите внимание, что параметр следует передавать функции в круглых скобках. Также обратите внимание, что функция не использует то же имя переменной, которое было передано. Это связано с тем, что VBA переназначает значение X (то, что нужно функции), чтобы оно соответствовало значению A (то, что программа передает функции).
При передаче параметров функциям важно помнить, что ваша программа должна передавать то же количество параметров, которое ожидает функция, и параметры должны иметь совпадающие типы и в правильном порядке.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2259) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Understanding_Functions_in_Macros [Общие сведения о функциях в макросах]
.