- 08/14/2019
- 25 minuti per leggere
-
- o
- R
- L
- m
- O
-
+4
si è di fronte a una ripetizione di ripulire di cinquanta tabelle in Word? Si desidera che un particolare documento richieda all’utente l’input quando si apre?, Hai difficoltà a capire come ottenere i contatti da Microsoft Outlook in un foglio di calcolo di Microsoft Excel in modo efficiente?
È possibile eseguire queste attività e realizzare molto di più utilizzando Visual Basic for Applications (VBA) per Office—un linguaggio di programmazione semplice, ma potente che è possibile utilizzare per estendere le applicazioni di Office.
Questo articolo è per gli utenti esperti di Office che vogliono conoscere VBA e che vogliono alcune informazioni su come la programmazione può aiutarli a personalizzare Office.
La suite di applicazioni per ufficio ha un ricco set di funzionalità., Esistono molti modi diversi per creare, formattare e manipolare documenti, e-mail, database, moduli, fogli di calcolo e presentazioni. La grande potenza della programmazione VBA in Office è che quasi tutte le operazioni che è possibile eseguire con un mouse, una tastiera o una finestra di dialogo possono essere eseguite anche utilizzando VBA. Inoltre, se può essere fatto una volta con VBA, può essere fatto altrettanto facilmente cento volte. (In effetti, l’automazione delle attività ripetitive è uno degli usi più comuni di VBA in ufficio.,)
Oltre alla potenza di scripting VBA per accelerare le attività quotidiane, è possibile utilizzare VBA per aggiungere nuove funzionalità alle applicazioni di Office o per richiedere e interagire con l’utente dei documenti in modi specifici per le esigenze aziendali. Ad esempio, è possibile scrivere un codice VBA che visualizza un messaggio pop-up che ricorda agli utenti di salvare un documento su una particolare unità di rete la prima volta che tentano di salvarlo.
Questo articolo esplora alcuni dei motivi principali per sfruttare la potenza della programmazione VBA., Esplora il linguaggio VBA e gli strumenti pronti all’uso che puoi utilizzare per lavorare con le tue soluzioni. Infine, include alcuni suggerimenti e modi per evitare alcune frustrazioni di programmazione comuni e passi falsi.
Nota
Interessato a sviluppare soluzioni che estendono l’esperienza di Office su più piattaforme? Scopri il nuovo modello di componenti aggiuntivi di Office. I componenti aggiuntivi di Office hanno un ingombro ridotto rispetto ai componenti aggiuntivi e alle soluzioni VSTO e puoi crearli utilizzando quasi tutte le tecnologie di programmazione Web, come HTML5, JavaScript, CSS3 e XML.,
Quando usare VBA e perché
Ci sono diversi motivi principali per considerare la programmazione VBA in Office.
Automazione e ripetizione
VBA è efficace ed efficiente quando si tratta di soluzioni ripetitive a problemi di formattazione o correzione. Ad esempio, hai mai cambiato lo stile del paragrafo nella parte superiore di ogni pagina in Word? Hai mai dovuto riformattare più tabelle che sono state incollate da Excel in un documento Word o in un’e-mail di Outlook? Avete mai dovuto fare lo stesso cambiamento in più contatti di Outlook?,
Se hai una modifica che devi apportare più di dieci o venti volte, potrebbe valere la pena automatizzarla con VBA. Se si tratta di un cambiamento che devi fare centinaia di volte, certamente vale la pena considerare. Quasi tutte le modifiche di formattazione o modifica che puoi fare a mano, possono essere eseguite in VBA.
Estensioni per l’interazione con l’utente
A volte si desidera incoraggiare o costringere gli utenti a interagire con l’applicazione o il documento di Office in un modo particolare che non fa parte dell’applicazione standard., Ad esempio, potresti chiedere agli utenti di eseguire alcune azioni particolari quando aprono, salvano o stampano un documento.
Interazione tra le applicazioni di Office
È necessario copiare tutti i contatti da Outlook a Word e quindi formattarli in un modo particolare? Oppure, avete bisogno di spostare i dati da Excel a una serie di diapositive di PowerPoint? A volte semplice copia e incolla non fa quello che vuoi che faccia, o è troppo lento., È possibile utilizzare la programmazione VBA per interagire con i dettagli di due o più applicazioni Office contemporaneamente e quindi modificare il contenuto di un’applicazione in base al contenuto di un’altra.
Fare le cose in un altro modo
La programmazione VBA è una soluzione potente, ma non è sempre l’approccio ottimale. A volte ha senso usare altri modi per raggiungere i tuoi obiettivi.
La domanda critica da porre è se esiste un modo più semplice. Prima di iniziare un progetto VBA, considerare gli strumenti integrati e le funzionalità standard., Ad esempio, se si dispone di un’attività di modifica o layout che richiede molto tempo, è consigliabile utilizzare stili o tasti di scelta rapida per risolvere il problema. Puoi eseguire l’attività una volta e quindi usare CTRL + Y (Ripeti) per ripeterla? È possibile creare un nuovo documento con il formato o il modello corretto e quindi copiare il contenuto in quel nuovo documento?
Le applicazioni Office sono potenti; la soluzione di cui hai bisogno potrebbe già esserci. Prendetevi del tempo per saperne di più su Office prima di saltare in programmazione.
Prima di iniziare un progetto VBA, assicurarsi di avere il tempo di lavorare con VBA., La programmazione richiede attenzione e può essere imprevedibile. Soprattutto come principiante, non rivolgersi mai alla programmazione a meno che non si abbia il tempo di lavorare con attenzione. Cercando di scrivere uno “script rapido” per risolvere un problema quando una scadenza incombe può provocare una situazione molto stressante. Se siete di fretta, si potrebbe desiderare di utilizzare metodi convenzionali, anche se sono monotoni e ripetitivi.
VBA Programming 101
Usare il codice per fare in modo che le applicazioni facciano cose
Potresti pensare che scrivere codice sia misterioso o difficile, ma i principi di base usano il ragionamento quotidiano e sono abbastanza accessibili., Le applicazioni di Microsoft Office sono create in modo tale da esporre oggetti chiamati oggetti che possono ricevere istruzioni, più o meno allo stesso modo in cui un telefono è progettato con pulsanti che si utilizzano per interagire con il telefono. Quando si preme un pulsante, il telefono riconosce le istruzioni e include il numero corrispondente nella sequenza che si sta componendo. Nella programmazione, si interagisce con l’applicazione inviando istruzioni a vari oggetti nell’applicazione. Questi oggetti sono espansivi, ma hanno i loro limiti., Essi possono fare solo ciò che sono progettati per fare, e faranno solo ciò che si istruiscono a fare.
Ad esempio, si consideri l’utente che apre un documento in Word, apporta alcune modifiche, salva il documento e quindi lo chiude. Nel mondo della programmazione VBA, Word espone un oggetto Documento. Utilizzando il codice VBA, è possibile istruire l’oggetto Documento per fare cose come Aprire, Salvare o Chiudere.
La sezione seguente illustra come gli oggetti sono organizzati e descritti.,
Il modello a oggetti
Gli sviluppatori organizzano gli oggetti di programmazione in una gerarchia, e tale gerarchia è chiamata il modello a oggetti dell’applicazione. Word, ad esempio, ha un oggetto Applicazione di livello superiore che contiene un oggetto Documento. L’oggetto Documento contiene oggetti Paragrafo e così via. I modelli di oggetti rispecchiano approssimativamente ciò che vedi nell’interfaccia utente. Sono una mappa concettuale dell’applicazione e delle sue capacità.
La definizione di un oggetto è chiamata classe, quindi potresti vedere questi due termini usati in modo intercambiabile., Tecnicamente, una classe è la descrizione o il modello utilizzato per creare o istanziare un oggetto.
Una volta che un oggetto esiste, è possibile manipolarlo impostando le sue proprietà e chiamando i suoi metodi. Se si pensa all’oggetto come un nome, le proprietà sono gli aggettivi che descrivono il nome e i metodi sono i verbi che animano il nome. La modifica di una proprietà modifica la qualità dell’aspetto o del comportamento dell’oggetto. La chiamata a uno dei metodi dell’oggetto fa sì che l’oggetto esegua alcune azioni.,
Il codice VBA in questo articolo viene eseguito su un’applicazione Open Office in cui molti degli oggetti manipolati dal codice sono già operativi; ad esempio, l’applicazione stessa, il foglio di lavoro in Excel, il documento in Word, la presentazione in PowerPoint, gli oggetti Explorer e Folder in Outlook. Una volta che si conosce il layout di base del modello a oggetti e alcune proprietà chiave dell’applicazione che danno accesso al suo stato corrente, è possibile iniziare a estendere e manipolare l’applicazione di Office con VBA in Office.,
Metodi
In Word, ad esempio, è possibile modificare le proprietà e richiamare i metodi del documento Word corrente utilizzando la proprietà ActiveDocument dell’oggetto Application. Questa proprietà ActiveDocument restituisce un riferimento all’oggetto Document attualmente attivo nell’applicazione Word. “Restituisce un riferimento a “significa” ti dà accesso a.”
Il seguente codice fa esattamente quello che dice; cioè, salva il documento attivo nell’applicazione.,
Application.ActiveDocument.Save
Leggere il codice da sinistra a destra, ” In questa applicazione, con il documento a cui fa riferimento ActiveDocument, richiamare il metodo Save.”Tieni presente che Save è la forma più semplice di metodo; non richiede istruzioni dettagliate da parte tua. Si indica a un oggetto documento di salvare e non richiede più input da voi.
Se un metodo richiede più informazioni, questi dettagli sono chiamati parametri. Il codice seguente esegue il metodo SaveAs, che richiede un nuovo nome per il file.,
Application.ActiveDocument.SaveAs ("New Document Name.docx")
I valori elencati tra parentesi dopo il nome di un metodo sono i parametri. Qui, il nuovo nome per il file è un parametro per il metodo SaveAs.
Proprietà
Si utilizza la stessa sintassi per impostare una proprietà che si utilizza per leggere una proprietà. Il seguente codice esegue un metodo per selezionare la cella A1 in Excel e quindi impostare una proprietà per inserire qualcosa in quella cella.
Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"
La prima sfida nella programmazione VBA è quella di avere un’idea del modello a oggetti di ogni applicazione Office e di leggere l’oggetto, il metodo e la sintassi della proprietà., I modelli di oggetti sono simili in tutte le applicazioni di Office, ma ognuno è specifico per il tipo di documenti e oggetti che manipola.
Nella prima riga del frammento di codice, c’è l’oggetto Application, Excel questa volta, e quindi ActiveSheet, che fornisce l’accesso al foglio di lavoro attivo. Dopo questo è un termine non così familiare, Range, che significa ” definire un intervallo di celle in questo modo.”Il codice indica a Range di crearsi con solo A1 come set di celle definito. In altre parole, la prima riga di codice definisce un oggetto, l’Intervallo e esegue un metodo per selezionarlo., Il risultato viene automaticamente memorizzato in un’altra proprietà dell’applicazione chiamata Selezione.
La seconda riga di codice imposta la proprietà Value di Selection sul testo “Hello World” e quel valore appare nella cella A1.
Il codice VBA più semplice che si scrive potrebbe semplicemente accedere agli oggetti nell’applicazione Office con cui si sta lavorando e impostare le proprietà. Ad esempio, è possibile ottenere l’accesso alle righe in una tabella in Word e modificarne la formattazione nello script VBA.,
Sembra semplice, ma può essere incredibilmente utile; una volta che puoi scrivere quel codice, puoi sfruttare tutta la potenza della programmazione per apportare le stesse modifiche in diverse tabelle o documenti, o renderle secondo una logica o una condizione. Per un computer, fare 1000 modifiche non è diverso dal fare 10, quindi c’è un’economia di scala qui con documenti e problemi più grandi, ed è qui che VBA può davvero brillare e risparmiare tempo.,
Macro e l’editor di Visual Basic
Ora che sai qualcosa su come le applicazioni di Office espongono i loro modelli di oggetti, probabilmente sei ansioso di provare a chiamare i metodi dell’oggetto, impostare le proprietà dell’oggetto e rispondere agli eventi dell’oggetto. Per fare ciò, è necessario scrivere il codice in un luogo e in un modo che Office può capire; in genere, utilizzando l’editor di Visual Basic. Sebbene sia installato di default, molti utenti non sanno che è disponibile fino a quando non è abilitato sulla barra multifunzione.
Tutte le applicazioni di Office utilizzano la barra multifunzione., Una scheda sulla barra multifunzione è la scheda Sviluppatore, in cui si accede all’editor di Visual Basic e ad altri strumenti di sviluppo. Poiché Office non visualizza la scheda Sviluppatore per impostazione predefinita, è necessario abilitarla utilizzando la seguente procedura:
Per abilitare la scheda Sviluppatore
-
Nella scheda File, scegliere Opzioni per aprire la finestra di dialogo Opzioni.
-
Scegliere Personalizza barra multifunzione sul lato sinistro della finestra di dialogo.
-
In Scegli comandi dal lato sinistro della finestra di dialogo, selezionare Comandi popolari.,
-
In Personalizza la barra multifunzione sul lato destro della finestra di dialogo, selezionare le schede principali nella casella di riepilogo a discesa, quindi selezionare la casella di controllo Sviluppatore.
-
Scegliere OK.
Nota
In Office 2007, è stata visualizzata la scheda Sviluppatore scegliendo il pulsante Office, scegliendo Opzioni e quindi selezionando la casella di controllo Mostra scheda sviluppatore nella barra multifunzione nella categoria Popolare della finestra di dialogo Opzioni.
Dopo aver attivato la scheda Sviluppatore, è facile trovare i pulsanti Visual Basic e Macro.
Figura 1., Pulsanti nella scheda Sviluppatore
Problemi di sicurezza
Per proteggere gli utenti di Office da virus e codice macro pericoloso, non è possibile salvare il codice macro in un documento di Office standard che utilizza un’estensione di file standard. Invece, è necessario salvare il codice in un file con un’estensione speciale. Ad esempio, non è possibile salvare le macro in un documento Word standard con un .estensione docx; invece, è necessario utilizzare un documento speciale Word Macro-Enabled con un .estensione docm.
Quando si apre un .,file docm, Office Security potrebbe comunque impedire l’esecuzione delle macro nel documento, con o senza dirlo. Esaminare le impostazioni e le opzioni nel Centro attendibilità di tutte le applicazioni di Office. L’impostazione predefinita disabilita l’esecuzione della macro, ma ti avvisa che le macro sono state disabilitate e ti dà la possibilità di riattivarle per quel documento.
È possibile designare cartelle specifiche in cui le macro possono essere eseguite creando posizioni attendibili, Documenti attendibili o Publisher attendibili., L’opzione più portatile è quella di utilizzare gli editori attendibili, che funziona con i documenti firmati digitalmente che si distribuiscono. Per ulteriori informazioni sulle impostazioni di sicurezza in una particolare applicazione Office, aprire la finestra di dialogo Opzioni, scegliere Centro attendibilità, quindi scegliere Impostazioni centro attendibilità.
Nota
Alcune applicazioni di Office, come Outlook, salvare le macro di default in un modello master sul computer locale., Sebbene tale strategia riduca i problemi di sicurezza locali sul proprio computer quando si eseguono le proprie macro, è necessaria una strategia di distribuzione se si desidera distribuire la macro.
Registrazione di una macro
Quando si sceglie il pulsante Macro nella scheda Sviluppatore, si apre la finestra di dialogo Macro, che consente di accedere a subroutine o macro VBA a cui è possibile accedere da un particolare documento o applicazione. Il pulsante Visual Basic apre l’editor Visual Basic, in cui si crea e si modifica il codice VBA.,
Un altro pulsante nella scheda Sviluppatore in Word ed Excel è il pulsante Registra macro, che genera automaticamente il codice VBA in grado di riprodurre le azioni eseguite nell’applicazione. Record Macro è uno strumento formidabile che è possibile utilizzare per saperne di più su VBA. La lettura del codice generato può darti informazioni su VBA e fornire un ponte stabile tra la tua conoscenza di Office come utente e la tua conoscenza come programmatore., L’unica avvertenza è che il codice generato può essere fonte di confusione perché l’editor di macro deve formulare alcune ipotesi sulle tue intenzioni e tali ipotesi non sono necessariamente accurate.
Per registrare una macro
-
Aprire Excel in una nuova cartella di lavoro e scegliere la scheda Sviluppatore nella barra multifunzione. Scegliere Registra macro e accettare tutte le impostazioni predefinite nella finestra di dialogo Registra macro, tra cui Macro1 come nome della macro e Questa cartella di lavoro come posizione.
-
Scegliere OK per iniziare a registrare la macro. Nota come il testo del pulsante cambia per interrompere la registrazione., Scegli quel pulsante nell’istante in cui completi le azioni che desideri registrare.
-
Scegli la cella B1 e digita la classica prima stringa del programmatore: Hello World. Smetti di digitare e guarda il pulsante Interrompi registrazione; è disattivato perché Excel ti sta aspettando per completare la digitazione del valore nella cella.
-
Scegliere la cella B2 per completare l’azione nella cella B1, quindi scegliere Interrompi registrazione.
-
Scegliere Macro nella scheda Sviluppatore, selezionare Macro1 se non è selezionata, quindi scegliere Modifica per visualizzare il codice da Macro1 nell’editor di Visual Basic.,
Figura 2. Codice macro in Visual Basic Editor
Guardando il codice
La macro che hai creato dovrebbe essere simile al seguente codice.
Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub
Tieni presente le somiglianze con il frammento di codice precedente che ha selezionato il testo nella cella A1 e le differenze. In questo codice, viene selezionata la cella B1 e quindi la stringa “Hello World” viene applicata alla cella che è stata resa attiva. Le virgolette attorno al testo specificano un valore stringa anziché un valore numerico.,
Ricorda come hai scelto la cella B2 per visualizzare nuovamente il pulsante di arresto della registrazione? Quell’azione si presenta anche come una riga di codice. Il registratore macro registra ogni battitura.
Le righe di codice che iniziano con un apostrofo e colorate di verde dall’editor sono commenti che spiegano il codice o ricordano a te e ad altri programmatori lo scopo del codice. VBA ignora qualsiasi riga, o parte di una riga, che inizia con una singola citazione. Scrivere commenti chiari e appropriati nel tuo codice è un argomento importante, ma quella discussione è fuori dallo scopo di questo articolo., I riferimenti successivi a questo codice nell’articolo non includono quelle quattro righe di commento.
Quando il registratore macro genera il codice, utilizza un algoritmo complesso per determinare i metodi e le proprietà desiderate. Se non riconosci una determinata proprietà, ci sono molte risorse disponibili per aiutarti. Ad esempio, nella macro registrata, il registratore di macro ha generato il codice che fa riferimento alla proprietà FormulaR1C1. Non sei sicuro di cosa significhi?
Nota
Tenere presente che l’oggetto Application è implicito in tutte le macro VBA., Il codice che hai registrato funziona con l’applicazione. all’inizio di ogni riga.
Utilizzando la Guida dello sviluppatore
Selezionare FormulaR1C1 nella macro registrata e premere F1. Il sistema della guida esegue una ricerca rapida, determina che gli argomenti appropriati si trovano nella sezione Sviluppatore di Excel della Guida di Excel ed elenca la proprietà FormulaR1C1. È possibile scegliere il link per saperne di più sulla proprietà, ma prima di farlo, essere a conoscenza del collegamento di riferimento modello a oggetti Excel vicino alla parte inferiore della finestra., Scegliere il collegamento per visualizzare un lungo elenco di oggetti che Excel utilizza nel suo modello a oggetti per descrivere i fogli di lavoro e i relativi componenti.
Scegli uno di questi per visualizzare le proprietà e i metodi che si applicano a quel particolare oggetto, insieme a riferimenti incrociati a diverse opzioni correlate. Molte voci di aiuto hanno anche brevi esempi di codice che possono aiutarti. Ad esempio, è possibile seguire i collegamenti nell’oggetto Bordi per vedere come impostare un bordo in VBA.
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
Modifica del codice
Il codice dei bordi appare diverso dalla macro registrata., Una cosa che può essere confusa con un modello a oggetti è che c’è più di un modo per affrontare un dato oggetto, la cella A1 in questo esempio.
A volte il modo migliore per imparare la programmazione è quello di apportare piccole modifiche ad un codice funzionante e vedere cosa succede di conseguenza. Prova ora. Aprire Macro1 nell’editor di Visual Basic e modificare il codice nel modo seguente.
Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub
Tip
Usa Copia e Incolla il più possibile quando lavori con il codice per evitare errori di battitura.,
Non è necessario salvare il codice per provarlo, quindi tornare al documento Excel, scegliere Macro nella scheda Sviluppatore, scegliere Macro1, quindi scegliere Esegui. Cella A1 ora contiene il testo Wow! e ha un bordo a doppia linea intorno ad esso.
Figura 3. Risultati della prima macro
Hai appena combinato la registrazione delle macro, la lettura della documentazione del modello a oggetti e la semplice programmazione per creare un programma VBA che faccia qualcosa. Felicitazioni!
Non ha funzionato? Continua a leggere per suggerimenti di debug in VBA.,
Suggerimenti e trucchi di programmazione
Inizia con esempi
La comunità VBA è molto grande; una ricerca sul Web può quasi sempre produrre un esempio di codice VBA che fa qualcosa di simile a quello che vuoi fare. Se non riesci a trovare un buon esempio, prova a suddividere l’attività in unità più piccole e cerca su ognuna di queste, o prova a pensare a un problema più comune, ma simile. Iniziare con un esempio può farti risparmiare ore di tempo.
Ciò non significa che il codice libero e ben congegnato sia sul Web in attesa che tu venga., In realtà, alcuni del codice che si trova potrebbe avere bug o errori. L’idea è che gli esempi che trovi online o nella documentazione VBA ti diano un vantaggio. Ricorda che l’apprendimento della programmazione richiede tempo e pensiero. Prima di avere una grande fretta di usare un’altra soluzione per risolvere il tuo problema, chiediti se VBA è la scelta giusta per questo problema.
Crea un problema più semplice
La programmazione può diventare complessa rapidamente. E ‘ fondamentale, soprattutto come un principiante, che si rompe il problema fino alle più piccole unità logiche possibili, quindi scrivere e testare ogni pezzo in isolamento., Se hai troppo codice di fronte a te e ti confondi o ti confondi, fermati e metti da parte il problema. Quando torni al problema, copia un piccolo pezzo del problema in un nuovo modulo, risolvi quel pezzo, fai funzionare il codice e testalo per assicurarti che funzioni. Quindi passare alla parte successiva.
Bug e debug
Esistono due tipi principali di errori di programmazione: errori di sintassi, che violano le regole grammaticali del linguaggio di programmazione, e errori di runtime, che sembrano sintatticamente corretti, ma falliscono quando VBA tenta di eseguire il codice.,
Sebbene possano essere frustranti da correggere, gli errori di sintassi sono facili da catturare; l’editor di Visual Basic emette un segnale acustico e lampeggia se si digita un errore di sintassi nel codice.
Ad esempio, i valori di stringa devono essere circondati da virgolette doppie in VBA. Per scoprire cosa succede quando si utilizzano virgolette singole, invece, tornare all’editor di Visual Basic e sostituire il ” Wow!”stringa nell’esempio di codice con’ Wow!'(cioè, la parola Wow racchiusa tra virgolette singole). Se si sceglie la riga successiva, l’editor di Visual Basic reagisce., L’errore “Compile error: Expected: expression” non è così utile, ma la riga che genera l’errore diventa rossa per dirti che hai un errore di sintassi in quella riga e, di conseguenza, questo programma non verrà eseguito.
Scegli OK e cambia il testo in ” Wow!”.
Gli errori di runtime sono più difficili da rilevare perché la sintassi di programmazione sembra corretta, ma il codice fallisce quando VBA tenta di eseguirlo.,
Ad esempio, aprire l’editor di Visual Basic e modificare il nome della proprietà Value in ValueX nella Macro, introducendo deliberatamente un errore di runtime poiché l’oggetto Range non ha una proprietà denominata ValueX. Tornare al documento Excel, aprire la finestra di dialogo Macro ed eseguire nuovamente Macro1. Dovresti vedere una finestra di messaggio di Visual Basic che spiega l’errore di runtime con il testo, “L’oggetto non supporta questa proprietà del metodo.”Anche se quel testo è chiaro, scegliere Debug per saperne di più.,
Quando si torna all’editor di Visual Basic, è in una modalità di debug speciale che utilizza un’evidenziazione gialla per mostrare la riga di codice che non è riuscita. Come previsto, viene evidenziata la riga che include la proprietà ValueX.
È possibile apportare modifiche al codice VBA in esecuzione, quindi modificare ValueX di nuovo al valore e scegliere il piccolo pulsante di riproduzione verde sotto il menu di debug. Il programma dovrebbe funzionare di nuovo normalmente.
È una buona idea imparare a usare il debugger in modo più deliberato per programmi più lunghi e complessi., Come minimo, impara a come impostare i punti di interruzione per interrompere l’esecuzione in un punto in cui vuoi dare un’occhiata al codice, come aggiungere orologi per vedere i valori di diverse variabili e proprietà mentre il codice viene eseguito e come passare attraverso il codice riga per riga. Queste opzioni sono tutte disponibili nel menu Debug e gli utenti di debugger gravi in genere memorizzano le scorciatoie da tastiera di accompagnamento.,
Utilizzo dei materiali di riferimento well
Per aprire il Riferimento sviluppatore integrato nella Guida di Office, aprire il riferimento della guida da qualsiasi applicazione di Office scegliendo il punto interrogativo nella barra multifunzione o premendo F1. Quindi, a destra del pulsante di ricerca, scegliere la freccia a discesa per filtrare il contenuto. Scegli Riferimento sviluppatore. Se non vedi il sommario nel pannello di sinistra, scegli l’icona del piccolo libro per aprirlo, quindi espandi il riferimento al modello a oggetti da lì.
Figura 5., Il filtro sulla Guida dello sviluppatore si applica a tutte le applicazioni Office
Il tempo trascorso a navigare nel riferimento del modello a oggetti paga. Dopo aver compreso le basi della sintassi VBA e il modello a oggetti per l’applicazione Office con cui si sta lavorando, si passa dalle congetture alla programmazione metodica.
Naturalmente il Microsoft Office Developer Center è un eccellente portale per articoli, suggerimenti e informazioni sulla comunità.,
Ricerca forum e gruppi
Tutti i programmatori si bloccano a volte, anche dopo aver letto ogni articolo di riferimento che possono trovare e perdere il sonno durante la notte pensando a diversi modi per risolvere un problema. Fortunatamente, Internet ha favorito una comunità di sviluppatori che si aiutano a vicenda a risolvere i problemi di programmazione.
Qualsiasi ricerca sul Web per “office developer forum” rivela diversi gruppi di discussione. Puoi cercare su “office development” o una descrizione del tuo problema per scoprire forum, post di blog e articoli.,
Se hai fatto tutto il possibile per risolvere un problema, non aver paura di pubblicare la tua domanda su un forum degli sviluppatori. Questi forum accolgono i post dei programmatori più recenti e molti degli sviluppatori esperti sono lieti di aiutare.
I seguenti sono alcuni punti di etichetta da seguire quando pubblichi su un forum per sviluppatori:
-
Prima di pubblicare, cerca sul sito una FAQ o le linee guida che i membri vogliono che tu segua. Assicurati di pubblicare contenuti coerenti con tali linee guida e nella sezione corretta del forum.,
-
Includi un esempio di codice chiaro e completo e considera di modificare il tuo codice per chiarirlo ad altri se fa parte di una sezione di codice più lunga.
-
Descrivi il tuo problema in modo chiaro e conciso e riassumi tutti i passaggi che hai preso per risolvere il problema. Prendetevi il tempo per scrivere il tuo post così come è possibile, soprattutto se siete agitati o in fretta. Presentare la situazione in un modo che abbia senso per i lettori la prima volta che leggono la dichiarazione del problema.
-
Sii educato ed esprimi il tuo apprezzamento.,
Andando oltre con la programmazione
Anche se questo articolo è breve e graffia solo la superficie di VBA e programmazione, si spera che sia sufficiente per iniziare.
Questa sezione discute brevemente alcuni altri argomenti chiave.
Variabili
Nei semplici esempi in questo articolo hai manipolato oggetti che l’applicazione aveva già creato. È possibile creare oggetti personalizzati per memorizzare valori o riferimenti ad altri oggetti da utilizzare temporaneamente nell’applicazione. Queste sono chiamate variabili.,
Per utilizzare una variabile in VBA, deve dire a VBA quale tipo di oggetto rappresenta la variabile utilizzando l’istruzione Dim. Si imposta quindi il suo valore e lo si utilizza per impostare altre variabili o proprietà.
Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable
Ramificazione e loop
I semplici programmi in questo articolo eseguono una riga alla volta, dall’alto verso il basso. Il vero potere nella programmazione deriva dalle opzioni che devi determinare quali righe di codice eseguire, in base a una o più condizioni specificate. È possibile estendere ulteriormente tali funzionalità quando è possibile ripetere un’operazione molte volte., Ad esempio, il seguente codice estende Macro1.
Digitare o incollare il codice nell’editor di Visual Basic e quindi eseguirlo. Seguire le istruzioni nella finestra di messaggio che appare e modificare il testo nella cella A1 da Wow! a Sì! ed eseguilo di nuovo per vedere il potere del looping. Questo frammento di codice mostra le variabili, la ramificazione e il ciclo. Leggilo attentamente dopo averlo visto in azione e prova a determinare cosa succede quando ogni riga viene eseguita.
Tutte le mie applicazioni di Office: codice di esempio
Ecco alcuni script da provare; ognuno risolve un problema di Office del mondo reale.,
Crea un’email in Outlook
Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub
Tieni presente che ci sono situazioni in cui potresti voler automatizzare l’email in Outlook; puoi anche utilizzare i modelli.
Elimina righe vuote in un foglio di lavoro Excel
Tieni presente che puoi selezionare una colonna di celle ed eseguire questa macro per eliminare tutte le righe nella colonna selezionata che hanno una cella vuota.
Elimina le caselle di testo vuote in PowerPoint
Sub RemoveEmptyTextBoxes() Dim SlideObj As Slide Dim ShapeObj As Shape Dim ShapeIndex As Integer For Each SlideObj In ActivePresentation.Slides For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1 Set ShapeObj = SlideObj.Shapes(ShapeIndex) If ShapeObj.Type = msoTextBox Then If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then ShapeObj.Delete End If End If Next ShapeIndex Next SlideObjEnd Sub
Tieni presente che questo codice scorre attraverso tutte le diapositive ed elimina tutte le caselle di testo che non hanno testo., La variabile count diminuisce invece degli incrementi perché ogni volta che il codice elimina un oggetto, rimuove quell’oggetto dalla raccolta, riducendo il conteggio.
Copiare un contatto da Outlook a Word
Sub CopyCurrentContact() Dim OutlookObj As Object Dim InspectorObj As Object Dim ItemObj As Object Set OutlookObj = CreateObject("Outlook.Application") Set InspectorObj = OutlookObj.ActiveInspector Set ItemObj = InspectorObj.CurrentItem Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)End Sub
Tenere presente che questo codice copia il contatto attualmente aperto in Outlook nel documento Word aperto. Questo codice funziona solo se c’è un contatto attualmente aperto per l’ispezione in Outlook.
Supporto e feedback
Hai domande o commenti su Office VBA o su questa documentazione?, Si prega di consultare Supporto e feedback di Office VBA per informazioni sui modi in cui è possibile ricevere supporto e fornire feedback.