In Outlook, tramite VBA, è possibile inserire determinate emoji, simboli o testi all'interno del messaggio di posta elettronica. In questo articolo verrà mostrato passo passo come raggiungere tale scopo. Per poter inserire il testo o l'oggetto desiderato a partire dalla posizione del cursore verrà utilizzato Word Object model.
Per le emoji verrà utilizzato il metodo ChrW che restituisce il carattere associato al codice carattere specificato. Al metodo va passato il codice UTF-16 (Unicode Transformation Format 16 bit: una codifica di caratteri Unicode in sequenze di numeri a 16-bit) relativo all'emoji che si vuole inserire. I codici UTF-16 delle emoji possono essere trovati su molti siti online tra cui The Ultimate Emoji Guide.
Prima di poter poter utilizzare i codici con il metodo ChrW bisogna andare a sostituire i caratteri 0x presenti nel codice UTF-16 con &H.
Ad esempio:
Supponiamo di voler inserire l'emoji di una torta di compleanno. Ricerchiamola sul sito The Ultimate Emoji Guide (o su uno dei tanti siti online che forniscono i codici UTF-16) e apriamo la relativa pagina. I codici UTF-16 relativi a tale emoji sono
0xD83C e 0xDF82
per poterli utilizzare con il metodo ChrW dobbiamo sostituire 0x con &H quindi i codici diventano
&HD83C e &DF82
|
FIG 1 - Emoji Torta di compleanno |
|
FIG 2 - Codice UTF-16 Torta di compleanno |
Vediamo passo passo come procedere:
- Avviare Outlook;
- Avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11;
- Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, selezionare ThisOutlookSession;
|
FIG 3- Outlook - Microsoft Visual Basic, Applications Edition |
- Copiare e incollare il seguente script;
Dim strCode As String
Sub InserisciTesto()
strCode = "Testo inserito tramite VBA "
Inserisci
End Sub
Sub InserisciFantasma()
strCode = ChrW(&HD83D) & ChrW(&HDC7B)
Inserisci
End Sub
Sub InserisciTorta()
strCode = ChrW(&HD83C) & ChrW(&HDF82)
Inserisci
End Sub
Private Sub Inserisci()
Dim objItem As Object
Dim objInsp As Outlook.Inspector
Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim objSel As Word.Selection
Set objItem = Application.ActiveInspector.currentItem
Set objInsp = objItem.GetInspector
Set objDoc = objInsp.WordEditor
Set objWord = objDoc.Application
Set objSel = objWord.Selection
objSel.InsertBefore strCode
objSel.Move wdCharacter, 1
Set objItem = Nothing
Set objInsp = Nothing
Set objDoc = Nothing
Set objWord = Nothing
Set objSel = Nothing
End Sub
- Dal menu Strumenti->Riferimenti selezionare Microsoft Word 16.0 Object Library e cliccare su OK (16.0 rappresenta la versione di Office);
|
FIG 4 - Microsoft Word 16.0 Object Library |
- Salvare lo script cliccando sull'apposita icona e ritornare alla finestra di Outlook;
- Dal menu File->Opzioni selezionare Personalizzazione barra multifunzione;
- Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK;
|
FIG 5 - Outlook, Personalizzazione barra multifunzione |
- Per questioni di sicurezza le macro sono disattivate, pertanto dobbiamo procedere alla loro abilitazione. Dalla scheda Sviluppo cliccare su Sicurezza macro;
|
FIG 6 - Sicurezza macro |
- Dalla finestra Centro protezione, nella sezione Impostazioni macro, selezionare Visualizza notifiche per tutte le macro. In questo modo quando si tenta di avviare la Macro verrà richiesto se attivarla o meno.
|
FIG 7 - Visualizza notifiche per tutte le macro |
Nel codice abbiamo creato tre procedure:
- InserisciTesto, inserisce il testo "Testo inserito tramite VBA" all'interno del messaggio;
- InserisciFantasma, inserisce l'emoji di un fantasma;
- InserisciTorta, inserisce l'emoji della torta.
Per inserire le nostre emoji o il nostro testo, nella creazione di un nuovo messaggio basta selezionare il menu Sviluppo quindi cliccare su Macro e, una volta accettata l'attivazione, selezionare una delle 3 procedure indicate.
|
FIG 8 - Macro inserimento Emoji/Testo |