Inserire un pulsante nella barra standard di outlook (VBA)

In questo articolo, vedremo come in Visual Basic Application é possibile aggiungere un pulsante nella barra degli strumenti di Outlook 2003.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Inserire un pulsante nella barra standard di outlook (VBA)
 
Introduzione:
In questo articolo, vedremo come aggiungere nella barra di outlook un pulsante (Figura 1), in particolare nella barra standard, il pulsante esegue a sua volta del codice il tutto tramite il linguaggio Visual Basic Application (VBA).
Figura 1
Apertura del VBA Editor.
Il codice per la creazione del pulsante verrà inserito nell’evento di startup, ossia quando si avvia outlook, si noti che la protezione delle macro, dev’essere impostata in modo che venga eseguito il codice (protezione media con un messaggio a video di richiesta se eseguire o no il codice macro) .
Per aprire l’ambiente vba, dal menu strumenti, selezionare la voce macro e successivamente la voce Visual Basic Editor, verrà aperta la finestra di VBA, a questo punto selezionare nella casella combinata la voce application mentre nella casella combinata degli eventi (quella di destra) la voce startup.
 
Codice per la creazione del pulsante.
Si dichiara a livello di progetto, un oggetto di tipo CommandBarButton tramite la parola chiave withevents possiamo impostare il relativo evento di tale oggetto. Quest’oggetto rappresenta un pulsante della barra dei comandi di outlook.
Di seguito si riporta un esempio di codice:
 
Dim WithEvents objPulsante As CommandBarButton
 
Nell’evento startup dell’oggetto application, inseriamo il codice per la creazione di un pulsante. In particolare un oggetto di tipo Outlook.Application per la gestione dell’applicativo outlook, un oggetto di tipo Office.CommandBar per la gestione delle barre e l’oggetto creato in precedenza.
 
Di seguito si riporta un frammento di codice di esempio:
 
Private Sub Application_Startup()
'oggetto outlook
Dim ObjApp As New Outlook.Application
 
'oggetto barra
Dim ObjBarra As Office.CommandBar
 
'imposto la barra
Set ObjBarra = ObjApp.ActiveExplorer.CommandBars.Item("Standard")
 
Set objPulsante = ObjBarra.Controls.Add(, , , 1, True)
'imposto l'icona
objPulsante.FaceId = 59
'imposto il testo
objPulsante.Caption = "Pulsante"
'imposto lo stile del pulsante (immagine e testo)
objPulsante.Style = msoButtonIconAndCaption
 
End Sub
 
Tramite la proprietà item, impostiamo la barra in cui inserire il pulsante, il metodo add della proprietà control dell’oggetto commandbar permette di aggiungere un nuovo pulsante alla barra impostata in precedenza. Il metodo accetta diversi argomenti, in questo caso, abbiamo impostato la posizione in cui il pulsante verrà inserito e la durata, ossia che una volta chiuso outlook il pulsante verrà cancellato (ma al prossimo avvio, verrà creato)
Dopo aver inizializzato l’oggetto commandbarbutton, impostiamo le varie proprietà, quale faceid per impostare un immagine al pulsante, la proprietà caption il quale  inserisce del testo, mentre tramite la proprietà style viene impostata lo stile (immagine e testo)
 
Il codice per la creazione del pulsante è terminato, ora non resta che scrivere il codice quando si fa click su tale pulsante, nella casella degli oggetti, viene visualizzato il nome del nostro oggetto pulsante (objpulsante) facciamo click sulla casella combinata degli eventi (quella di sinistra) e selezioniamo l’evento “Click”.
Di seguito si riporta un esempio di codice.
 
Private Sub objPulsante_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
MsgBox ("Testo a scelta")
 
End Sub