# Interprete interno di macro

Gli oggetti [](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 sono accessibili mediante automazione dall'interno di QlikView tramite il motore di script incorporato.

## Richiamo delle macro

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Internal_Macro_Interpreter.htm)Le macro scritte in VBScript o JScript all'interno di un documento QlikView possono essere richiamate nei seguenti modi:

### Eventi di documento:

* Una macro può essere eseguita dopo aver aperto un documento QlikView.
* Una macro può essere eseguita dopo la riesecuzione dello script.
* Una macro può essere eseguita dopo il comando Riduci i dati.
* Una macro può essere eseguita dopo la selezione di un qualsiasi campo nel documento.
* Una macro può essere eseguita quando il valore di una qualsiasi variabile del documento cambia.

Le macro richiamate dagli eventi di documento vengono create dalla pagina Proprietà documento: Eventi di avvio.

### Eventi di foglio:

* Una macro può essere eseguita dopo l'attivazione di un foglio.
* Una macro può essere eseguita quando un foglio viene disattivato.

Le macro richiamate dagli eventi di documento vengono create dalla pagina Proprietà foglio: Eventi di avvio.

### Eventi di oggetti di lavoro:

* Una macro può essere eseguita dopo che un oggetto di lavoro viene attivato.
* Una macro può essere eseguita quando viene disattivato un oggetto di lavoro.

Le macro richiamate dagli eventi di oggetti di lavoro vengono create dalla pagina Proprietà foglio: Eventi di avvio.

### Eventi di pulsanti:

* Un pulsante può essere definito come un pulsante macro.

Una macro richiamata da un evento del pulsante macro viene creata dalla pagina Azioni relativa al pulsante.

### Eventi di campo:

* Una macro può essere eseguita dopo che è stata effettuata una selezione in un campo specificato.
* Una macro può essere eseguita quando si esegue una selezione in un qualsiasi campo logicamente associato a un campo specifico.
* Una macro può essere eseguita quando si bloccano le selezioni in un campo specifico.
* Una macro può essere eseguita quando vengono sbloccate le selezioni in un campo specifico.

Le macro richiamate dagli eventi di campo vengono create dalla pagina Proprietà documento: Eventi di avvio.

### Eventi di variabili:

* Una macro può essere eseguita quando nuovi valori vengono immessi direttamente dalle variabili di script specificate.
* Una macro può essere eseguita quando il valore della variabile associata viene modificato dal cambiamento in altre variabili o nello stato logico del documento.

Le macro richiamate dagli eventi di variabile vengono create dalla pagina Proprietà documento: Eventi di avvio.

### Editor di macro:

Le macro vengono create e modificate nella finestra di dialogo Modifica modulo indipendentemente dal loro metodo di attivazione.

Esempi:

In questa sezione viene fornito un utile esempio di una macro VBScript che può risultare utile.

`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`

## Funzioni di librerie speciali per JScript

Mentre le funzioni VBScript standard e le funzioni InputBox e MsgBox possono essere utilizzate liberamente nelle macro VBScript, nessuna funzione direttamente corrispondente è disponibile quando si utilizza JScript. A questo scopo è stata aggiunta una libreria speciale qvlib che consente tali azioni. Le funzioni sono mostrate nell'esempio seguente.

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

Le funzioni qvlib sono effettivamente utilizzabili anche nelle macro VBScript, come mostrato nel seguente esempio, ma in questo caso è possibile utilizzare anche le funzioni VBScript generiche InputBox eMsgBox.

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

## Ulteriori informazioni

* [Proprietà documento: Trigger](https://help.qlik.com/it-IT/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Document_Properties_Triggers.htm)
* [Proprietà foglio: Trigger](https://help.qlik.com/it-IT/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Sheet_Properties_Triggers.htm)
* [Azioni](https://help.qlik.com/it-IT/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Actions.htm)
* [Variabili di script](https://help.qlik.com/it-IT/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm)