domenica 8 novembre 2020

MS Outlook: Inserire un emoji in un'email tramite VBA

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

Emoji Torta di compleanno
FIG 1 - Emoji Torta di compleanno

Codice UTF-16 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;
    Outlook - Microsoft Visual Basic, Applications Edition
    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);
    Microsoft Word 16.0 Object Library
    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;
    Outlook - Personalizzazione barra multifunzione
    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;
    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.

    Visualizza notifiche per tutte le macro
    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.
Macro inserimento Emoji/Testo
FIG 8 - Macro inserimento Emoji/Testo








Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.