Codifica VBA Excel: lavorare con una finestra di codice

Codifica VBA Excel: lavorare con una finestra di codice

Man mano che acquisisci padronanza con Excel VBA, trascorri molto tempo a lavorare nelle finestre del codice. Le macro registrate vengono archiviate in un modulo ed è possibile digitare il codice VBA di Excel direttamente in un modulo VBA.

Ridurre al minimo e massimizzare le finestre del codice VBA

Se hai diversi progetti aperti, il VBE potrebbe avere molte finestre di codice in un dato momento.

Codifica VBA Excel: lavorare con una finestra di codice

Il sovraccarico della finestra del codice non è un bel vedere.

Le finestre del codice sono molto simili alle finestre della cartella di lavoro in Excel. Puoi minimizzarli, massimizzarli, ridimensionarli, nasconderli, riorganizzarli e così via. La maggior parte delle persone trova molto più facile massimizzare la finestra del codice su cui stanno lavorando. In questo modo puoi vedere più codice e non farti distrarre.

Per ingrandire una finestra del codice, fai clic sul pulsante Ingrandisci sulla sua barra del titolo (accanto alla X). Oppure fai doppio clic sulla sua barra del titolo per ingrandirla. Per ripristinare una finestra del codice alle sue dimensioni originali, fare clic sul pulsante Ripristina. Quando una finestra è ingrandita, la sua barra del titolo non è visibile, quindi troverai il pulsante Ripristina sotto la barra del titolo VBE.

A volte, potresti voler avere due o più finestre di codice visibili. Ad esempio, potresti voler confrontare il codice in due moduli o copiare il codice da un modulo all'altro. Puoi organizzare le finestre manualmente o scegliere Finestra → Affianca orizzontalmente o Finestra → Affianca verticalmente per disporle automaticamente.

Puoi passare rapidamente da una finestra del codice all'altra premendo Ctrl+F6. Se ripeti quella combinazione di tasti, continui a scorrere tutte le finestre di codice aperte. Premendo Ctrl+Shift+F6 si scorrono le finestre in ordine inverso. (Per ulteriori informazioni, dai un'occhiata a queste scorciatoie da tastiera VBA di Excel .)

Ridurre al minimo una finestra del codice lo toglie di mezzo. Puoi anche fare clic sul pulsante Chiudi della finestra (che visualizza una X) sulla barra del titolo di una finestra del codice per chiudere la finestra. (La chiusura di una finestra la nasconde; non perderai nulla.) Per riaprirla, fai semplicemente doppio clic sull'oggetto appropriato nella finestra Progetto. A proposito, lavorare con queste finestre di codice sembra più difficile di quanto non sia in realtà.

Creazione di un modulo VBA

In generale, un modulo VBA di Excel può contenere tre tipi di codice:

  • Dichiarazioni: una o più dichiarazioni informative fornite a VBA. Ad esempio, puoi dichiarare il tipo di dati per le variabili che intendi utilizzare o impostare alcune altre opzioni a livello di modulo. Le dichiarazioni sono fondamentalmente dichiarazioni di pulizia. In realtà non vengono giustiziati.
  • Sottoprocedure: un insieme di istruzioni di programmazione che, una volta eseguite, eseguono alcune azioni.
  • Procedure di funzione: un insieme di istruzioni di programmazione che restituisce un singolo valore (concettualmente simile a una funzione del foglio di lavoro, come SUM).

Un singolo modulo VBA può memorizzare un numero qualsiasi di procedure Sub, procedure Function e dichiarazioni. Bene, c'è un limite - circa 64.000 caratteri per modulo. È improbabile che ti avvicini al raggiungimento del limite di 64.000 caratteri. Ma se lo hai fatto, la soluzione è semplice: basta inserire un nuovo modulo.

Il modo in cui organizzi un modulo VBA dipende completamente da te. Alcune persone preferiscono mantenere tutto il loro codice VBA per un'applicazione in un singolo modulo VBA; ad altri piace dividere il codice in più moduli. È una scelta personale, proprio come disporre i mobili.

Ottenere il codice VBA in un modulo

Un modulo VBA vuoto è come il cibo finto che vedi nelle vetrine di alcuni ristoranti cinesi; sembra buono ma non fa molto per te. Prima di poter fare qualcosa di significativo, devi avere del codice VBA nel modulo VBA. Puoi ottenere il codice VBA in un modulo VBA in tre modi:

  • Inserisci direttamente il codice.
  • Usa il registratore di macro di Excel per registrare le tue azioni e convertirle in codice VBA.
  • Copia il codice da un modulo e incollalo in un altro.

Inserimento diretto del codice VBA di Excel

A volte, il percorso migliore è quello più diretto. L'inserimento diretto del codice implica... beh, l'inserimento diretto del codice. In altre parole, digiti il ​​codice utilizzando la tastiera. L'immissione e la modifica del testo in un modulo VBA funziona come ci si potrebbe aspettare. Puoi selezionare, copiare, tagliare, incollare e fare altre cose sul testo.

Usa il tasto Tab per far rientrare alcune righe per rendere il tuo codice più facile da leggere. Il rientro non è necessario, ma è una buona abitudine da acquisire. Mentre studi la codifica VBA di Excel, capirai perché il rientro delle righe di codice è utile.

Una singola riga di codice VBA può durare tutto il tempo necessario. Tuttavia, potresti voler utilizzare i caratteri di continuazione della riga per suddividere lunghe righe di codice. Per continuare una singola riga di codice (nota anche come istruzione) da una riga alla successiva, termina la prima riga con uno spazio seguito da un carattere di sottolineatura (_). Quindi continua l'istruzione sulla riga successiva. E non dimenticare lo spazio. Un carattere di sottolineatura che non è preceduto da uno spazio non funzionerà.

Ecco un esempio di una singola istruzione divisa in tre righe:

Selezione.Chiave di ordinamento1:=Intervallo("A1"), _
  Ordine1:=xlAscendente, Intestazione:=xlIndovina, _
  Orientamento:=xlTopToBottom

Questa istruzione funzionerebbe esattamente allo stesso modo se fosse inserita in una singola riga (senza caratteri di continuazione della riga). Notare che la seconda e la terza riga di questa istruzione sono rientrate. Il rientro è facoltativo, ma aiuta a chiarire il fatto che queste righe non sono istruzioni separate.

Gli ingegneri in camice bianco che hanno progettato il VBE hanno previsto che le persone avrebbero commesso errori. Pertanto, il VBE ha più livelli di annullamento e ripetizione. Se hai eliminato un'istruzione che non avresti dovuto, fai clic sul pulsante Annulla sulla barra degli strumenti (o premi Ctrl+Z) finché l'istruzione non viene visualizzata di nuovo. Dopo aver annullato, puoi fare clic sul pulsante Ripristina per eseguire le modifiche che hai annullato.

Sei pronto per inserire un codice reale? Prova i seguenti passaggi:

Crea una nuova cartella di lavoro in Excel.

Premi Alt+F11 per attivare il VBE.

Fare clic sul nome della nuova cartella di lavoro nella finestra Progetto.

Scegli Inserisci → Modulo per inserire un modulo VBA nel progetto.

Digita il seguente codice nel modulo:

Sub GuessName()
Msg = "Il tuo nome è " & Application.UserName & "?"
Risposta = MsgBox(Msg, vbSìNo)
If Ans = vbNo Then MsgBox "Oh, non importa."
If Ans = vbYes Then MsgBox "Devo essere un sensitivo!"
Fine sottotitolo

Posiziona il cursore ovunque all'interno del testo digitato e premi F5 per eseguire la procedura.

F5 è una scorciatoia per Esegui → Esegui Sub/UserForm. Se hai inserito il codice correttamente, Excel esegue la procedura e puoi rispondere alla semplice finestra di dialogo. Il testo nella finestra di dialogo sarà diverso dal testo mostrato qui.

Codifica VBA Excel: lavorare con una finestra di codice

La procedura GuessName visualizza questa finestra di dialogo.

When you enter the code listed in Step 5, you might notice that the VBE makes some adjustments to the text you enter. For example, after you type the Sub statement, the VBE automatically inserts the End Sub statement. And if you omit the space before or after an equal sign, the VBE inserts the space for you. Also, the VBE changes the color and capitalization of some text. This is all perfectly normal. It’s just the VBE’s way of keeping things neat and readable.

If you followed the previous steps, you just wrote a VBA Sub procedure, also known as a macro. When you press F5, Excel executes the code and follows the instructions. In other words, Excel evaluates each statement and does what you told it to do. (Don’t let this newfound power go to your head.) You can execute this macro any number of times — although it tends to lose its appeal after a few dozen times.

For the record, this simple Excel macro uses the following concepts:

  • Defining a Sub procedure (the first line)
  • Assigning values to variables (Msg and Ans)
  • Concatenating (joining) a string (using the & operator)
  • Using a built-in VBA function (MsgBox)
  • Using built-in VBA constants (vbYesNo, vbNo, and vbYes)
  • Using an If-Then construct (twice)
  • Ending a Sub procedure (the last line)

Using the Excel VBA macro recorder

Another way you can get code into a VBA module is by recording your actions, using the Excel macro recorder.

By the way, there is absolutely no way you can record the GuessName procedure shown above. You can record only things that you can do directly in Excel. Displaying a message box is not in Excel’s normal repertoire. (It’s a VBA thing.) The macro recorder is useful, but in many cases, you’ll probably need to enter at least some code manually.

Here’s a step-by-step example that shows how to record a macro that inserts a new worksheet and hides all but the first ten rows and all but the first ten columns. If you want to try this example, start with a new, blank Excel workbook and follow these steps:

Activate a worksheet in the workbook.

Any Excel worksheet will do.

Click the Developer tab, and make sure that Use Relative References is not highlighted.

This macro is recorded using Absolute References.

Choose Developer → Code → Record Macro, or click the icon next to the Ready indicator on the left end of the status bar.

Excel displays its Record Macro dialog box.

In the Record Macro dialog box, name the macro TenByTen, specify that you want the macro stored in This Workbook, and press Shift+T for the shortcut key.

The macro can be executed when you press Ctrl+Shift+T.

Click OK to start recording. Excel automatically inserts a new VBA module into the project that corresponds to the active workbook.

From this point on, Excel converts your actions to VBA code. While you’re recording, the icon in the status bar turns into a small square. This is a reminder that the macro recorder is running. You can also click that icon to stop the macro recorder.

Click the New Sheet icon to the right of the last sheet tab.

Excel inserts a new worksheet.

Select the entire Column K (the 11th column) and press Ctrl+Shift+right arrow; then right-click any selected column and choose Hide from the shortcut menu.

Excel hides all of the selected columns.

Select the entire Row 11 and press Ctrl+Shift+down arrow; then right-click any selected row and choose Hide from the shortcut menu.

Excel hides all of the selected columns.

Select cell A1.

Choose Developer → Code → Stop Recording, or click the Stop Recording button on the status bar (the small square). Excel stops recording your actions.

Per visualizzare questa macro appena registrata, premere Alt+F11 per attivare il VBE. Individua il nome della cartella di lavoro nella finestra Progetto. Vedete che il progetto ha un nuovo modulo elencato. Il nome del modulo dipende dalla presenza o meno di altri moduli nella cartella di lavoro quando hai iniziato a registrare la macro. In caso contrario, il modulo si chiama Module1. È possibile fare doppio clic sul modulo per visualizzare la finestra Codice per il modulo.

Ecco il codice generato dalle tue azioni:

Sotto dieci per dieci()
'
'Macro TenByTen
'
' Scorciatoia da tastiera: Ctrl+Shift+T
'
  Fogli.Aggiungi dopo:=Foglio attivo
  Colonne("K:K").Seleziona
  Intervallo(Selezione, Selezione.End(xlToRight)).Seleziona
  Selection.EntireColumn.Hidden = True
  Righe("11:11").Seleziona
  Intervallo(Selezione, Selezione.Fine(xlGiù)).Seleziona
  Selection.EntireRow.Hidden = True
  Intervallo("A1").Seleziona
Fine sottotitolo

Per provare questa macro, attiva qualsiasi foglio di lavoro e premi il tasto di scelta rapida assegnato al passaggio 4: Ctrl+Shift+T.

Se non hai assegnato un tasto di scelta rapida alla macro, non preoccuparti. Ecco come visualizzare un elenco di tutte le macro disponibili ed eseguire quella desiderata:

Scegli Sviluppatore → Codice → Macro. I fan della tastiera possono premere Alt+F8.

Uno di questi metodi visualizza una finestra di dialogo che elenca tutte le macro disponibili.

Seleziona la macro nell'elenco (in questo caso, TenByTen).

Fare clic sul pulsante Esegui.

Excel esegue la macro e ottieni un nuovo foglio di lavoro con dieci righe visibili e dieci colonne visibili.

È possibile eseguire qualsiasi numero di comandi ed eseguire qualsiasi numero di azioni mentre il registratore di macro è in esecuzione. Excel traduce diligentemente le azioni del mouse e le sequenze di tasti in codice VBA.

E, naturalmente, puoi anche modificare la macro dopo averla registrata. Per testare le tue nuove abilità, prova a modificare la macro in modo che inserisca un foglio di lavoro con nove righe e colonne visibili, perfetto per un puzzle di Sudoku.

Copia del codice VBA

Il metodo finale per ottenere il codice in un modulo VBA è copiarlo da un altro modulo o da un altro luogo (come un sito Web). Ad esempio, una procedura Sub o Function scritta per un progetto potrebbe essere utile anche in un altro progetto. Invece di perdere tempo a reinserire il codice, puoi attivare il modulo e utilizzare le normali procedure di copia e incolla degli Appunti. (Probabilmente ti piacciono le scorciatoie da tastiera Ctrl+C per copiare e Ctrl+V per incollare.) Dopo aver incollato il codice in un modulo VBA, puoi modificare il codice se necessario.

A proposito, troverai molti esempi di codice VBA sul web. Se vuoi provarli, seleziona il codice nel tuo browser e premi Ctrl+C per copiarlo. Quindi attiva un modulo e premi Ctrl+V per incollarlo.

Quando copi il codice da un sito Web, a volte richiede alcune correzioni. Ad esempio, le virgolette possono essere "virgolette intelligenti" e devono essere convertite in semplici virgolette. E a volte, lunghe file si avvolgono. Le dichiarazioni errate sono facili da individuare nel VBE perché appaiono in rosso.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet è una piattaforma di lavoro dinamica che ti consente di gestire progetti, creare flussi di lavoro e collaborare con il tuo team.

SharePoint

SharePoint

SharePoint è un sistema di collaborazione basato sul Web che utilizza una varietà di applicazioni per flussi di lavoro, database di "elenco" e altri componenti Web, nonché funzionalità di sicurezza per fornire controllo ai gruppi aziendali che lavorano insieme.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar è un'applicazione per la visualizzazione del calendario sul tuo telefono, che ti aiuta a vedere rapidamente la data lunisolare sul tuo telefono, organizzando così il tuo lavoro importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook è un'applicazione aziendale e di produttività sviluppata da Microsoft Corporation.

Fare clic su

Fare clic su

ClickUp è una delle piattaforme di produttività più apprezzate per qualsiasi azienda. Grandi aziende come Google, Booking.com, San Diego Padres e Uber utilizzano ClickUp per aumentare la produttività sul posto di lavoro.

Visualizzatore PDF-XChange 2.5.322.10

Visualizzatore PDF-XChange 2.5.322.10

Il PDF è diventato un formato comunemente utilizzato per leggere, creare e inviare documenti di testo. A sua volta, c'è stato un aumento del numero di programmi utilizzati per questo tipo di documentazione. PDF-XChange Viewer fa parte di un numero crescente di visualizzatori PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice offre una suite completa di applicazioni Office che rivaleggiano con Microsoft 365, in particolare in Excel, PowerPoint e Word. Ti consente di gestire i tuoi progetti in modo più efficace e supporta diversi formati di file.

Scarica iTaxviewer 1.8.7

Scarica iTaxviewer 1.8.7

Il software iTaxViewer è il software di lettura di file XML più popolare oggi. Questo software è un'applicazione per la lettura delle dichiarazioni fiscali elettroniche in formato XML del Dipartimento Generale delle Imposte.

Lettore PDF Nitro

Lettore PDF Nitro

Nitro PDF Reader è un pratico editor PDF che copre tutte le attività di base che la maggior parte delle persone esegue ogni giorno con i documenti PDF.

Foxit Reader 12

Foxit Reader 12

Foxit Reader è principalmente un lettore PDF e consente anche di creare file PDF, firmarli, modificarli e aggiungere annotazioni. Funziona su sistemi operativi, ci sono plugin per vari programmi del pacchetto Microsoft Office.