# Внутренний преобразователь макросов

Объекты [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Internal_Macro_Interpreter.htm) [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Internal_Macro_Interpreter.htm)QlikView доступны из QlikView с помощью автоматизации посредством встроенного обработчика скриптов.

## Вызов макросов

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Internal_Macro_Interpreter.htm)Макросы, написанные в VBScript или JScript, в документе QlikView могут вызываться несколькими различными способами:

### События документа:

* Макрос можно запустить после открытия документа QlikView.
* Макрос можно запустить после повторного выполнения скрипта.
* Макрос можно запустить после команды Сокращение данных.
* Макрос можно запустить после выбора в поле документа.
* Макрос можно запустить после изменения значения переменной в документе.

Макросы, которые вызываются из событий документа, создаются на странице Свойства документа: Триггеры.

### События листа:

* Макрос можно запустить после включения листа.
* Макрос можно запустить после выключения листа.

Макросы, которые вызываются из событий листа, создаются на странице Свойства листа: Триггеры.

### События объекта листа:

* Макрос можно запустить после включения объекта листа.
* Макрос можно запустить после выключения объекта листа.

Макросы, которые вызываются из событий объекта листа, создаются на странице Свойства листа: Триггеры.

### События кнопки:

* Кнопку можно определить в виде кнопки макроса.

Макрос, который вызывается из события кнопки макроса, создается на странице кнопки Действия.

### События поля:

* Макрос можно запустить при выборе в указанном поле.
* Макрос можно запустить после совершения выбора в любом поле, которое логически ассоциируется с указанным полем.
* Макрос можно запустить после блокирования выборок в указанном поле.
* Макрос можно запустить после разблокирования выборок в указанном поле.

Макросы, которые вызываются из событий поля, создаются на странице Свойства документа: Триггеры.

### События переменной:

* Макрос можно запустить после ввода нового значения в указанную переменную скрипта.
* Макрос можно запустить, если значение указанной переменной изменяется в результате изменений в других переменных или в логическом состоянии документа.

Макросы, которые вызываются из событий переменной, создаются на странице Свойства документа: Триггеры.

### Редактор макросов:

Вне зависимости от способа запуска макросы создаются и редактируются в диалоговом окне Редактор макросов.

Примеры:

В этом разделе приводятся примеры макроса VBScript, которые могут оказаться полезными.

`Using VBScript Input Boxes for User Interaction` `rem ** Clear selections, ask for product, **` `rem ** select that product, **` `rem ** go to sheet "Market", **` `rem ** show pivot table "Sales" **` `Sub ChooseValue` `Set q = ActiveDocument` `q.ClearAll (false)` `Set f = q.Fields("Model Name")` `x = inputbox ("Enter product")` `f.Select(x)` `set s = q.Sheets("Market")` `s.Activate` `s.SheetObjects("Sales").Activate` `end sub`

## Особые библиотечные функции для JScript

Там, где стандартные функции VBScript InputBox и MsgBox могут использоваться свободно в макросе VBScript, при использовании JScript прямой эквивалент недоступен. Для этих целей добавлена особая библиотека qvlib. Функции показаны в нижеприведенных примерах.

`// JScript` `function Test()` `{` `personName = qvlib.InputBox("What is you name?")` `msg = "Hello " + personName + " !"` `qvlib.MsgBox(msg)` `}`

Функции qvlib на самом деле работают и в макросах VBScript, как показано в следующих примерах, но в этом случае можно также использовать универсальные функции VBScript InputBox и MsgBox.

`rem VBScript` `sub TestModule` `name = qvlib.InputBox("What is your name?")` `msg = "Hello "` `msg = msg + name + " !"` `qvlib.MsgBox(msg)` `end sub`

## Подробнее

* [Свойства документа: Триггеры](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Document_Properties_Triggers.htm)
* [Свойства листа: Триггеры](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Sheet_Properties_Triggers.htm)
* [Действия](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Actions.htm)
* [Переменные скрипта](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm)