Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.



Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.

Prezzo: € 0.0.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Creare un'aggiunta a MS Excel - seconda parte

Questa lezione, consultata da 3689 utenti, è stata giudicata di contenuti sufficienti di pessimi contenuti , con un'esposizione perfettamente comprensibile e con un livello di approfondimento ottimo da 73 votanti.


Il codice dell'aggiunta

Nel corso di questo articolo si studierà la struttura di un'aggiunta ad un'applicazione Office, mentre nel prossimo (l'ultimo) verrà visto come far diventare la generica sessione Office, una vera e propria applicazione Excel in modo da poter sfruttare pienamente tutti gli articoli dell'area "Visual Basic per Excel" e permettere all'aggiunta di reagire agli eventi provocati dall'utente sul foglio di calcolo, di lavoro e sull'applicazione Excel.

Fatta la premessa riguardante la differenza tra l'utilizzo della libreria di Office e quella di una qualsiasi applicazione del pacchetto Microsoft, si può ritornare al codice.
Nelle dichiarazioni generali del modulo Connect si andrà quindi a dichiarare un oggetto generico (lo si può denominare appOffice).
Che senso ha tale operazione? Come già visto nell'articolo precedente, una volta collegata l'aggiunta ad Excel, il sistema passa all'evento OnConnection il parametro (Application) che indica quale applicazione è stata integrata.
Per tale motivo se all'interno del codice dell'evento OnConnection si può scrivere:

MsgBox Application

una finestra di messaggio mostrerà che l'aggiunta è integrata ad Excel ossia che il parametro Application corrisponde a MS Excel.
Ma siccome il parametro è strettamente legato all'evento connessione, risulta pressoché impossibile utilizzarlo in qualsiasi altra sottoprocedura del modulo Connect.
Se esempio nella routine dell'evento OnDisconnection si ripete la stessa linea di codice:

MsgBox Application

il risultato mostrato dalla finestra di messaggio sarà una stringa vuota "" proprio perché all'interno della routine Application non è definito.
Dichiarando l'oggetto generico appOffice e definendolo (ossia dandogli un valore) all'interno della sottoprocedura OnConnection ci si può riferire all'applicazione Excel in qualunque punto del modulo Connect.
Dunque, il codice finora visto si modifica in questo modo:

Dim appOffice As Object
Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
ByVal AddInInst As Object, custom() As Variant)
On Error Resume Next
Set appOffice = Application 'applicazione passata dal sistema alla routine 'attraverso il parametro Application
End Sub

Per dimostrare ulteriormente come i parametri vengano passati alla sottoprocedura OnConnection, si può dare un'occhiata anche al parametro AddInInst che indica il riferimento all'aggiunta. Combinando l'oggetto AddInInst e l'oggetto Application, si può programmare l'apertura di una finestra di messaggio alla connessione dell'aggiunta:

MsgBox "Caricamento di " & AddInInst & " integrata in " & Application & " _ effettuato."

Il risultato sarà del tipo:

Siccome questo è il primo risultato effettivamente visibile, conviene fare una parentesi: non è sufficiente salvare il progetto perché questo si aggiunga ad Excel.
E' necessario creare un file .dll e salvarlo in una cartella qualsiasi. Il procedimento non necessita di registrazione manuale dell'aggiunta: alla creazione della .dll l'applicazione sviluppata si aggiungerà automaticamente alla lista degli add-in di Excel.
Per ricapitolare, salvare l'intero progetto e successivamente selezionare la voce Crea MyAddIn.dll dalla lista File del menu principale di Visual Basic. Aprendo Excel si potrà quindi visualizzare la finestra di messaggio a cui si accennava poco sopra.
Nota: in alcuni casi può capitare una chiusura non corretta di Excel. In tale eventualità l'aggiunta non verrà scollegata correttamente e pertanto, al momento di un successivo salvataggio della dll si visualizzerà il seguente messaggio di errore:

L'aggiunta infatti risulta ancora connessa ed attiva e pertanto non è possibile modificarla.
Per ovviare al problema chiudere l'applicazione Excel residente in memoria (utilizzando il Task Manager o qualsiasi altro mezzo a disposizione) e salvare nuovamente la dll.

Dopo aver visto le funzioni della variabile oggetto Application è necessario ritornare all'effetto principale dell'aggiunta: l'inserimento di un pulsante nella toolbar di Excel.
Per fare riferimento all'oggetto toolbar di Office è necessario estrarlo dalla libreria di Office, nella quale prende il nome di CommandBar.
Ed un suo singolo elemento, un pulsante generico della toolbar prende il nome di CommandBarButton.
Per questo motivo si può inserire nelle dichiarazioni generali del modulo Connect la dichiarazione di un generico pulsante di una generica toolbar di una generica applicazione Office:

Dim WithEvents Pulsante As Office.CommandBarButton

dove WithEvents è una parola chiave che indica alla variabile oggetto Pulsante che dovrà reagire agli eventi generati da un oggetto esterno (in questo caso di CommandBarButton che è esterno in quanto facente parte di della libreria Office, esterna rispetto a Visual Basic).
Una volta dichiarata la variabile oggetto Pulsante, è necessario definirla.

Set Pulsante = Application.CommandBars("Standard").Controls.Add(1)

Ulteriore parentesi: l'oggetto CommandBar è composto da più elementi quante sono le barre degli strumenti dell'applicazione Office.
Per rendersi conto di questa affermazione basta semplicemente dare una scorsa alla lista tramite la voce "Barre degli strumenti" dal menu "Visualizza":

Indicando la dicitura Standard nella linea di codice appena vista, si indica che variabile oggetto Pulsante sarà un elemento della barra degli strumenti Standard (vedere la figura del pulsante inserito nella barra, pubblicato nell'articolo precedente).
Una volta che è stato definito l'oggetto Pulsante, è possibile assegnargli le proprietà tipiche di un pulsante di una toolbar: il nome, il testo visualizzato al passaggio del mouse e così via.
Iniziando dal nome si può scrivere:

With Pulsante
.Caption = "Visual Basic Italia"

in secondo luogo si può definire lo stile del pulsante stesso in base ad alcuni valori:

msoButtonAutomatic: adatta il proprio stile a quello del resto dei pulsanti della toolbar;
msoButtonIcon imposta il pulsante come icona;
msoButtonCaption: imposta il pulsante come solo testo;
msoButtonWrapCaption: imposta il pulsante come solo testo adattando le dimensioni alla lunghezza del testo;
msoButtonIconAndCaption: imposta il pulsante come testo ed icona affiancati;
msoButtonIconAndCaptionBelow: imposta il pulsante come icona con testo allineato in basso;
msoButtonIconAndWrapCaption: imposta il pulsante come icona e testo adattando le dimensioni alla lunghezza del testo;
msoButtonIconAndWrapCaptionBelow: imposta il pulsante come icona con testo allineato in basso adattando le dimensioni alla lunghezza del testo;

.Style = msoButtonCaption

In aggiunta si può determinare se il pulsante è abilitato o meno:

.Enabled = True '(False)

Nel caso in cui il pulsante sia disabilitato si otterrà un risultato del tipo:

e così via. Le proprietà dell'oggetto CommandBarButton sono così tante che vanno al di là dello scopo di questo singolo articolo.
L'ultima caratteristica che si analizzerà è l'associazione tra pulsante ed aggiunta. Attraverso la proprietà OnAction si determina quale aggiunta (o macro) chiamare in causa nel caso di pressione del pulsante:

.OnAction = "!<" & AddInInst.ProgId & ">"
End With

Adesso scorrere la combobox degli oggetti nella finestra di progettazione di Visual Basic. Si vedrà che all'oggetto Pulsante è associata nella ComboBox accanto l'evento Click.
Questo rappresenta chiaramente l'eventualità in cui l'utente clicchi sul pulsante. In tal caso non si farà altro che visualizzare la form di cui si compone il progetto:

Private Sub Pulsante_Click(ByVal Ctrl As Office.CommandBarButton, _
CancelDefault As Boolean)
frmAddIn.Show
End Sub

L'ultima considerazione dev'essere fatta riguardo alla rimozione dell'aggiunta. In tale eventualità il pulsante dovrà essere eliminato dalla toolbar, mentre l'aggiunta verrà rimossa in modo automatico:

Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _
AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
On Error Resume Next
Pulsante.Delete
Set Pulsante = Nothing
Set appOffice = Nothing
End Sub

Col metodo Delete si impone al pulsante di lasciare la propria posizione nella toolbar. Con le due righe di codice successive si svuota la memoria utilizzata fino ad allora per memorizzare la variabile oggetto pulsante e l'applicazione Office.