L'oggetto Balloon

Possiamo aggiungere un tocco di classe alle nostre applicazioni usando al posto di MsgBox il fumetto dell'assistente di Office. Nel prossimo esempio vediamo come utilizzarlo.
Sub Assistente()
    Dim Ass As Office.Balloon
    Set Ass = Assistant.NewBalloon
    With Ass
        .Icon = msoIconAlertInfo
        .Heading = "Utilizzo dell'assistente"
        .Text = "Ecco un esempio di utilizzo dell'assistente"
        .Labels(1).Text = "elenco di voci - 1"
        .Labels(2).Text = "elenco di voci - 2"
        .CheckBoxes(1).Text = "Casella di controllo"
        .BalloonType = msoBalloonTypeNumbers
        .Mode = msoModeModeless
        .Callback = "Prova"
        .Button = msoButtonSetOK
        .Show
    End With
End Sub

Sub Prova(Ass As Balloon, lbtn As Long, _
 lPriv As Long)
    Assistant.Animation = msoAnimationEmptyTrash
    Ass.Close
End Sub
    
L'oggetto "Assistant" rappresenta l'Assistente di Microsoft Office, mentre l'oggetto "Balloon" rappresenta il fumetto nel quale l'Assistente di Office visualizza le informazioni. La proprietÓ "NewBalloon" crea una nuova istanza dell' oggetto Balloon. Le prime 2 righe dichiarano una nuova istanza del fumetto dell'assistente di Office e lo assegna alla variabile "Ass".
All'interno del blocco With sono definite le proprietÓ del fumetto.
  • La proprietÓ Icon definisce l'icona in alto a destra del fumetto.
  • La proprietÓ Heading definisce l'intestazione del fumetto.
  • La proprietÓ Text definisce il testo del fumetto.
  • Le proprietÓ Labels definiscono una serie di voci di elenco all'interno del fumetto. La voce compare ogni volta che aggiungiamo un valore alla proprietÓ text di Labels e ne sono permesse un massimo di 5.
  • La proprietÓ CheckBox definisce una casella di controllo all'interno del fumetto. La casella compare ogni volta che aggiungiamo un valore alla proprietÓ text e ne sono permesse un massimo di 5.
  • La proprietÓ BalloonType indica il tipo di elenco delle Labels.
  • La proprietÓ Mode imposta il comportamento del fumetto. Sono possibili 3 opzioni.
    • Modal blocca l'elaborazione finchŔ non viene chiuso il fumetto.
    • AutoDown il fumetto viene chiuso automaticamente quando clicco un qualsiasi punto dello schermo.
    • Modeless posso continuare a lavorare col fumetto aperto devo impostare callback che indica cosa deve fare quando chiudo.
  • La proprietÓ Button indica che tipo di pulsanti visualizzare nella parte inferiore del fumetto.
  • La proprietÓ Show mostra il fumetto.
Nel nostro esempio abbiamo utilizzato un fumetto di tipo Modeless. A differenza delle altre, questa tipologia necessita della proprietÓ di CallBack che indica la routine che viene chiamata dopo la chiusura del fumetto. La funzione richiamata da CallBack deve contenere il metodo Close dell'oggetto Balloon creato nel modulo chiamante. L'istanza dell'oggetto Balloon viene passato come parametro alla routine chiamata. Nel nostro caso specifico abbiamo inserito l'istruzione Animation riferita all'oggetto Assistant la quale genera un'animazione dell'oggetto Assistente di Office.
Se l'assistente Ŕ in stato non attivo, quindi non disponibile, non riusciremo a visualizzare il nostro messaggio tramite il fumetto. Per ovviare a questo possiamo attivare l'assistente dalla voce "Mostra l'assistente di Office" del men¨ "?". Tuttavia nello scrivere un'applicazione che utilizzi l'oggetto Balloon, sorge la necessitÓ di testare applicativamente, tramite routine VBA, lo stato dell'assistente. La proprietÓ "On" testa se lo stato dell'assistente Ŕ abilitato. Se la proprietÓ Ŕ True possiamo gestire il fumetto altrimenti Ŕ possibile visualizzare le informazioni tramite MsgBox. Se l'assistente non Ŕ visibile nel monitor non Ŕ detto che sia disattivato. Pu˛ essere solamente nascosto, nel qual caso il il messaggio Ŕ tranquillamente visualizzabile dal fumetto. Lo stato nascosto Ŕ dato dalla proprietÓ "Visible".
La routine "Messaggi" imposta le informazioni da visualizzare e le passa alla routine "MessaggiAssistente" che in base al valore della proprietÓ "On" visualizza una MsgBox o il fumetto dell'Assistente.
Sub Messaggi()
    MessaggiAssistente "Eccomi", "Se l'assistente Ŕ" & _ 
    "disattivato vedi una finestra di messaggio"
End Sub

Sub MessaggiAssistente(Testo As String, _ 
	Descrizione As String)
    If Assistant.On = True Then  
       Dim Ass As Office.Balloon
       Set Ass = Assistant.NewBalloon
       With Ass
          .Icon = msoIconAlertInfo
          .Heading = Testo
          .Text = Descrizione
          .Button = msoButtonSetOK
          .Show
       End With
    Else
       MsgBox Descrizione, vbInformation, Testo
    End If
End Sub

    

Cognolato Studio ę 2005