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