# 내부 매크로 해석기

[](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 매크로에서는 표준 VBScript 함수인 InputBox 및 MsgBox를 자유롭게 사용할 수 있지만 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/ko-KR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Document_Properties_Triggers.htm)
* [시트 속성: 트리거](https://help.qlik.com/ko-KR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Sheet_Properties_Triggers.htm)
* [동작](https://help.qlik.com/ko-KR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Actions.htm)
* [스크립트 변수](https://help.qlik.com/ko-KR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm)