Come configurare smartphone e PC. Portale informativo
  • casa
  • notizia
  • Programmi di esempio vba excel. Fondamenti di programmazione VBA e creazione di macro nelle applicazioni di Microsoft Office

Programmi di esempio vba excel. Fondamenti di programmazione VBA e creazione di macro nelle applicazioni di Microsoft Office

Abbiamo brevemente familiarizzato con la registrazione di una macro utilizzando un registratore Excel. Ora approfondiremo questa giungla e scriveremo un paio di semplici macro, ad esempio. In uno degli esempi, dimostreremo tradizionalmente come lavorare con una finestra di dialogo del tipo "Messaggio", in un altro espanderemo la nostra finestra di dialogo.

Esempio 1. Semplice messaggio di dialogo msgBox in VBA

Non deviamo dalle tradizioni dell'inizio di tutti gli esempi di programmazione. Scriviamo una macro che, una volta lanciata, ci darà una finestra di messaggio con la scritta "Hello World". Allo stesso tempo, prenderemo in considerazione l'utilizzo di finestre di dialogo personalizzate.

Ora scriveremo macro solo in modalità manuale, niente registratori!

Quindi, per creare una macro, devi aprire una finestra del tuo editor Visual Basic (VB) preferito. Per fare ciò, eseguiamo le seguenti azioni: Service-Macro-EditorVisivoDi base(Alt + F11).


Si aprirà la finestra dell'editor di MS Visual Basic.

Se non hai lasciato Windows, devi abilitarle. Per fare ciò, premi F4 - Apre la finestra delle proprietà ProprietàFinestra, e la scorciatoia da tastiera Ctrl + R - apre una finestra ProgettoEsploratore.È difficile lavorare senza queste finestre in futuro. Qualunque cosa! Fatto.

Cosa vediamo nella finestra Progetto? Questa finestra riflette proprio la stessa struttura del nostro libro. Oggetti libro - Foglio1, 2, 3, Questo libro. Studieremo questi oggetti in modo più dettagliato negli articoli successivi, ma per ora ritorno all'esempio.

Cosa è necessario fare per iniziare a scrivere il codice? Devi creare un modulo. Nota: in generale, in futuro consiglio di dividere il codice del gestore in diversi moduli. Questo renderà il codice più facile da capire e creerà un ordine nella struttura.

Creiamo un modulo: Inserisci - Modulo

Davanti a noi si è aperta una finestra del modulo vuoto, che ricorda un blocco note. Abbiamo già visto una finestra del genere quando abbiamo registrato la prima macro. Secondo le regole del "buon gusto" daremo un nome al nostro modulo, lo chiameremo " MacroBook". Per fare ciò, vai alla finestra delle proprietà e inserisci un nome nel campo (Nome)

Vai alla finestra di modifica del codice e scrivi quanto segue:

Pronto! Aprire la finestra della cartella di lavoro di Excel, fare clic su Alt + F8 e vediamo la nostra macro "Ciao"

Non resta che " Eseguire". Come risultato dell'operazione macro, riceveremo un messaggio della seguente forma e contenuto:

Esempio 2. Messaggio di dialogo esteso msgBox in VBA

Considera un altro tipo di messaggi di dialogo che contengono pulsanti aggiuntivi "Sì", "No", "Annulla"

Passiamo al codice della nostra macro "Hello" e aggiungiamo al comando msgbox a seguire:

MsgBox"Hello, World!", VbYesNoCancel, "My Macro"

Nota, quando inserisci una virgola dopo "Hello, World!", dovresti vedere un elenco di tutti i tipi di finestre di dialogo disponibili.

Sperimenta con ognuno per capire.

Eseguiamo la nostra macro

Ora abbiamo aperto una forma di messaggio completamente diversa.

È tutto per ora. Segui l'uscita di articoli e lezioni. Se hai domande, sarò felice di rispondere e, se necessario, scriverò un articolo con una spiegazione.

Video: Un esempio di come funziona msgbox in vba

Per cominciare, prendiamo come esempio una semplice procedura Sub VBA. È memorizzato in un modulo VBA e calcola la somma dei primi 100 numeri interi positivi. Al termine dei calcoli, la procedura visualizza un messaggio con il risultato.

Sub VBA_Demo ()
"Un esempio di una semplice procedura VBA
Dim Total As Long, i As Long
Totale = 0
Per i = 1 a 100
Totale = Totale + i
Avanti io
MsgBox Total
Fine sottotitolo

Scarica una nota nel formato o

Alcuni elementi del linguaggio popolare vengono utilizzati in questa procedura:

  • commento (riga che inizia con un apostrofo);
  • dichiarazione di dichiarazione di variabile (riga che inizia con la parola chiave Dim);
  • due variabili (Totale e i);
  • due operatori di assegnazione (Totale = 0 e Totale = Totale + i);
  • struttura ciclica (For – Next);
  • Funzione VBA (MsgBox).

Commenti (1)

Puoi utilizzare una nuova riga per il commento o inserire un commento dopo l'istruzione sulla stessa riga.

In alcuni casi, è necessario testare una procedura senza inserire un'istruzione o anche un intero set di istruzioni. Invece di cancellare l'istruzione corrispondente, è sufficiente trasformarla in un commento aggiungendo un apostrofo all'inizio della riga. Successivamente, VBA ignorerà le istruzioni durante l'esecuzione della procedura. Per convertire un commento in una dichiarazione, è sufficiente rimuovere l'apostrofo.

Variabili, tipi di dati e costanti

Variabileè una posizione di archiviazione denominata nella memoria del computer. Le variabili possono contenere dati di diverso tipo. Puoi usare lettere, numeri e un po' di punteggiatura nei nomi, ma devi sempre inserire prima una lettera nel nome di una variabile. VBA non fa distinzione tra maiuscole e minuscole nei nomi delle variabili. Non è possibile utilizzare spazi o punti nei nomi, ma è possibile separare le parole con caratteri di sottolineatura.

VBA utilizza molte parole riservate che non dovrebbero essere usate come nomi di variabili o procedure.

L'interprete VBA semplifica la vita ai programmatori elaborando automaticamente qualsiasi tipo di dati. Tuttavia, questo è irto di conseguenze negative: esecuzione lenta delle operazioni e uso meno efficiente della memoria. Di conseguenza, consentire a VBA di definire da solo i tipi di dati può causare problemi nell'esecuzione di applicazioni di grandi dimensioni o complesse.

Si consiglia di selezionare il tipo di dati che utilizza il numero minimo di byte per memorizzare i valori. Excel utilizza il tipo di dati Double per eseguire calcoli matematici nei fogli di lavoro. Si consiglia di utilizzarlo nel processo di elaborazione dei numeri in VBA per garantire la stessa precisione nei calcoli.

Esistono tre tipi di ambiti variabili:

Lavorare con le costanti

A volte è necessario utilizzare un valore denominato o una stringa che non cambia mai: una costante. Se la procedura fa riferimento a un valore specifico più volte, ad esempio un tasso di interesse, è necessario dichiarare tale valore come costante e utilizzare il nome della costante nelle espressioni, non il suo valore. Questa tecnica non solo rende il programma più leggibile, ma semplifica anche la modifica del codice in un secondo momento: è sufficiente modificare solo un'istruzione e non diverse.

L'operatore Const viene utilizzato per dichiarare le costanti. Ad esempio,

Const NumQuarters come numero intero = 4

Come le variabili, le costanti hanno un ambito. Se provi a modificare il valore di una costante nel codice VBA, riceverai un messaggio di errore (prevedibile). Una costante è un valore costante, non una variabile. Esistono numerose costanti predefinite in Excel e VBA che è possibile utilizzare senza dichiarazione. Non è nemmeno necessario conoscere il significato di queste costanti per applicarle. Quando si registrano le macro, è comune utilizzare le costanti, non i valori. La procedura seguente utilizza una costante incorporata per modificare l'orientamento della pagina del foglio attivo in orizzontale:

Sub SetToLandscape ()
ActiveSheet.PageSetup.Orientation = xlLandscape
Fine sottotitolo

Il valore effettivo di xlLandscape è 2. Il Visualizzatore oggetti contiene un elenco di tutte le costanti di Excel e VBA. Per aprire il Browser degli oggetti in VBE, premere il tasto .

In VBA, la data e l'ora sono definite come valori racchiusi tra i segni #

Const primo giorno come data = # 1/1/2007 #
Mezzogiorno costante = # 12: 00: 00 #

Le date sono sempre specificate nel formato mese/giorno/anno, anche se il sistema è configurato per visualizzare i dati in un formato diverso.

Operatori di assegnazione

Un operatore di assegnazione è un'istruzione VBA che esegue calcoli matematici e assegna il risultato a una variabile o a un oggetto. Nella Guida di Excel, un'espressione è definita come una combinazione di parole chiave, operatori, variabili e costanti. Questa combinazione restituisce come risultato una stringa, un numero o un oggetto. Un'espressione può eseguire calcoli, elaborare caratteri o testare dati.

Un gran numero di operazioni eseguite in VBA è associato allo sviluppo (e al debug) di espressioni. Se sai come creare formule in Excel, non avrai problemi a creare espressioni in VBA. In una formula del foglio di lavoro di Excel, il risultato viene visualizzato in una cella. In alternativa, un'espressione VBA può assegnare un valore a una variabile o essere utilizzata come valore di una proprietà. In VBA, l'operatore di assegnazione è il segno di uguale (=).

matrici

Un array è un gruppo di elementi dello stesso tipo che hanno un nome comune; si fa riferimento a un particolare elemento dell'array utilizzando il nome e l'indice dell'array. Ad esempio, puoi definire un array di 12 righe in modo che ogni variabile corrisponda al nome del mese. Se si chiama l'array MonthNames, è possibile fare riferimento al primo elemento dell'array come MonthNames (0), al secondo come MonthNames (1) e così via fino a MonthNames (11).

Puoi dichiarare un array contenente esattamente 100 interi come segue:

Dim MyArray (da 1 a 100) come numero intero

Per impostazione predefinita, gli array VBA utilizzano zero come primo elemento. Se vuoi che 1 sia usato come primo indice di tutti gli array, allora prima della procedura del primo modulo, devi fare la seguente dichiarazione: Option Base 1

Un array dinamico non ha un numero predefinito di elementi. Viene dichiarato con valori vuoti tra parentesi: Dim MyArray() As Integer. Tuttavia, prima di poter utilizzare l'array dinamico nel programma, è necessario utilizzare l'istruzione ReDim per indicare a VBA quanti elementi ci sono nell'array. Per questo viene spesso utilizzata una variabile il cui valore è sconosciuto fino all'avvio della procedura per l'esecuzione. Ad esempio, se a x viene assegnato un numero, la dimensione dell'array viene determinata utilizzando il seguente operatore: ReDim MyArray (da 1 a x).

Variabili oggetto

Variabile oggettoè una variabile che rappresenta un intero oggetto, come un intervallo o un foglio di lavoro: Dim InputArea As Range. Per assegnare un oggetto a una variabile, utilizzare la parola chiave Set: Set InputArea = Range ("C16: E16").

Funzioni integrate

VBA ha una serie di funzioni integrate che semplificano i calcoli e le operazioni. Ad esempio, la funzione VBA UCase, che converte una stringa in lettere maiuscole, è equivalente alla funzione MAIUSCOLE di Excel. Per utilizzare una funzione di Excel in un'istruzione VBA, prima del nome della funzione, inserisci la seguente espressione:

Application.WorksheetFunction

È importante comprendere che non è possibile utilizzare le funzioni di Excel per le quali VBA fornisce funzioni equivalenti. Ad esempio, VBA non consente l'accesso alla funzione di Excel ROOT (SQRT) perché VBA ha una propria versione di questa funzione: Sqr. Pertanto, la seguente istruzione genera un errore:

MsgBox Application.WorksheetFunction.Sqrt (123)

La funzione MsgBox è una delle funzioni più utili in VBA. È anche un ottimo strumento di debug perché puoi inserire una funzione MsgBox in qualsiasi momento per mettere in pausa il programma e visualizzare il risultato di un calcolo o di un'assegnazione. La funzione MsgBox non solo restituisce un valore, ma visualizza anche una finestra di dialogo in cui l'utente può eseguire azioni specifiche. Il valore restituito dalla funzione MsgBox è la risposta dell'utente alla query visualizzata. La funzione MsgBox può essere utilizzata anche quando non è richiesta una risposta da parte dell'utente, ma è necessario visualizzare un messaggio. La sintassi per la funzione MsgBox è:

MsgBox (messaggio [, pulsanti] [, titolo] [, file_aiuto, contesto])

  • Messaggio (obbligatorio): il messaggio visualizzato nella finestra di dialogo.
  • Pulsanti (opzionale) è un valore che determina quali pulsanti e icone (se applicabile) vengono visualizzati nella finestra di messaggio. Utilizzare costanti incorporate (ad esempio, vbYesNo).
  • Titolo (facoltativo) è il testo che appare nella barra del titolo della finestra di messaggio. Il testo di Microsoft Excel viene visualizzato per impostazione predefinita.
  • Help_file (opzionale) - il nome del file di aiuto corrispondente alla finestra di messaggio.
  • Contesto (facoltativo): l'identificatore di contesto per l'argomento della guida. Rappresenta un argomento specifico della Guida da visualizzare. Se viene utilizzato il contesto dell'argomento, è necessario utilizzare anche l'argomento del file di aiuto.

È possibile assegnare il valore risultante a una variabile o utilizzare la funzione senza un operatore di assegnazione. Nell'esempio seguente, il risultato è assegnato alla variabile Ans.

Risp = MsgBox ("Continua?", VbSìNo + vbDomanda, "Segnala")
Se Ans = vbNo, allora esci da Sub

Notare che la somma delle due costanti integrate (vbYesNo + vbQuestion) viene utilizzata come valore dell'argomento del pulsante. La costante vbYesNo visualizza due pulsanti nella finestra del messaggio, uno etichettato Sì e uno etichettato No. L'aggiunta di vbQuestion all'argomento visualizzerà anche l'icona della domanda. Non appena viene eseguita la prima istruzione, la variabile Ans riceverà uno dei due valori, rappresentati dalle costanti vbYes e vbNo. In questo esempio, la procedura termina dopo aver fatto clic sul pulsante No.

Gestione oggetti e collezioni

VBA offre due costrutti per semplificare la gestione di oggetti e raccolte. Il costrutto With - End With consente di eseguire più operazioni su un singolo oggetto. Per capire come funziona, considera la seguente procedura, che modifica sei proprietà di un oggetto selezionato (supponendo che sia selezionato un Range).

Sub ChangeFontl ()
Selection.Font.Name = "Cambria"
Selection.Font.Bold = True Selection.Font.Italic = True
Dimensione.Carattere.Selezione = 12
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.ThemeColor = xlThemeColorAccentl
Fine sottotitolo

Questa procedura può essere riscritta con il costrutto With - End With. La procedura mostrata di seguito funziona esattamente come la precedente.

Sub ChangeFont2 ()
Con Selezione.Font
.Nome = "Cambria"
.grassetto = vero
.Corsivo = Vero
.Dimensione = 12
.Sottolineato = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorAccentl
Termina con
Fine sottotitolo

Supponiamo di decidere di eseguire un'azione su tutti gli oggetti in una raccolta o di dover valutare tutti gli oggetti in una raccolta e intraprendere un'azione quando vengono soddisfatte determinate condizioni. Questa è una situazione ideale per utilizzare il costrutto For Each - Next. Sintassi di costruzione:

Per ciascuno elemento In collezione
[Istruzioni]
[Istruzioni]
Prossimo [ elemento]

Ad esempio:

Fogli secondari ()
Dim Item come foglio di lavoro
Per ogni elemento in ActiveWorkbook.Worksheets
MsgBox Item.Name
Articolo successivo
Fine sottotitolo

L'esempio seguente chiude tutte le finestre tranne quella attiva:

Sub Closelnattivo ()
Dim Book come cartella di lavoro
Per ogni libro nelle cartelle di lavoro
Se Nome.Libro<>ActiveWorkbook.Name Quindi prenota.Chiudi
Libro successivo
Fine sottotitolo

Controllo sull'esecuzione del codice

Alcune routine VBA iniziano con le prime righe di codice. Tuttavia, a volte è necessario controllare la sequenza delle operazioni saltando le singole istruzioni, rieseguendo alcuni comandi e verificando le condizioni per determinare l'azione successiva da intraprendere dalla procedura.

L'istruzione GoTo reindirizza il flusso del programma a una nuova istruzione, contrassegnata in modo speciale (una stringa di testo che termina con due punti o un numero che termina con uno spazio prima dell'istruzione). La procedura seguente utilizza la funzione VBA InputBox per ottenere il nome utente. Se il nome utente è diverso da Howard, la procedura passa all'etichetta WrongName, che termina il suo lavoro. In caso contrario, la procedura esegue operazioni aggiuntive. L'istruzione Exit Sub termina l'esecuzione della procedura.

Sub GoToDemo ()
UserName = InputBox ("Inserisci il tuo nome:")
Se NomeUtente<>Howard poi vai a nome sbagliato
MsgBox ("Ciao Howard ...")
"- [Inserisci qui il codice aggiuntivo] -
Esci Sotto
Nome sbagliato:
MsgBox "Siamo spiacenti, solo Howard può eseguire questa procedura."
Fine sottotitolo

In realtà, l'istruzione GoTo è necessaria solo per rilevare gli errori (il codice sopra è un cattivo esempio e non dovrebbe essere utilizzato).

Il costrutto If-Then è probabilmente il più comunemente usato per raggruppare le istruzioni VBA:

Se condizione Poi istruzioni_vero

ad esempio

Sub GreetMe ()
Se il tempo< 0.5 Then
MsgBox "Buongiorno"
Tempo di sé> = 0,5 e tempo< 0.75 Then
MsgBox "Buon pomeriggio"
Altro
MsgBox "Buonasera"
Finisci se
Fine sottotitolo

VBA utilizza un sistema di data e ora simile a quello utilizzato in Excel. L'ora del giorno è espressa come numero frazionario, ad esempio mezzogiorno è rappresentato come 0,5. Un valore di 0,75 rappresenta l'ora 18:00 - tre quarti del giorno e il momento in cui il giorno diventa sera. Le strutture If-Then annidate sono piuttosto ingombranti. Pertanto, si consiglia di utilizzarli solo per prendere semplici decisioni binarie. Se è necessario scegliere tra tre o più opzioni, è consigliabile passare al design Select Case.

La procedura seguente utilizza la funzione WeekDay VBA per determinare se il giorno corrente è sabato o domenica (Weekday restituisce 1 o 7). Quindi viene visualizzato un messaggio corrispondente.

Sub GreetUserlO
Seleziona Caso Giorno della settimana (Ora)
Caso 1, 7
MsgBox "E' il fine settimana"
Caso altro
MsgBox "Questo non è il fine settimana"
Fine selezione
Fine sottotitolo

L'interprete VBA esce dal costrutto Select Case non appena viene trovata una condizione True. Pertanto, per la massima efficacia, è necessario verificare prima il caso più probabile.

Cicloè il processo di ripetizione di una serie di istruzioni. Forse sai in anticipo quante volte il ciclo dovrebbe ripetersi, o questo valore è determinato dalle variabili nel programma. L'esempio più semplice di un buon ciclo è For-Next:

Per contatore = Inizio Quella la fine
[Istruzioni]
[Istruzioni]
Prossimo [ contatore]

La procedura seguente somma le radici quadrate dei primi 100 interi:

Sub SumSquareRoots ()
Dim sum come doppio
Conteggio fioco come numero intero
Somma = 0
Per conteggio = da 1 a 100
Somma = Somma + Sqr (Conteggio)
Conteggio successivo
Somma MsgBox
Fine sottotitolo

La variabile Step in un ciclo For-Next può essere negativa. La procedura seguente elimina le righe 2, 4, 6, 8 e 10 nel foglio attivo:

Sotto EliminaRighe ()
Dim RowNum As Long
Per RowNum = da 10 a 2 Step -2
Righe (NumeroRiga) .Elimina
Numero riga successiva
Fine sottotitolo

I cicli For-Next possono anche contenere una o più istruzioni Exit For. Quando il programma incontra questo operatore, esce immediatamente dal ciclo:

Sub ExitForDemo ()
Dim MaxVal come doppio
Dim fila il più a lungo
MaxVal = Application.WorksheetFunction.Max (intervallo ("A: A"))
Per riga = da 1 a 1048576
If Cells (Riga, 1) .Value = MaxVal Then
Esci per
Finisci se
Riga successiva
MsgBox "Valore massimo in una riga" & Riga
Celle (riga, 1) .Attiva
Fine sottotitolo

Il valore massimo in una colonna viene calcolato utilizzando la funzione MAX di Excel. Questo valore viene quindi assegnato alla variabile MaxVal. Il ciclo For-Next controlla ogni cella della colonna. Se la cella specificata è uguale a MaxVal, l'istruzione Exit For termina la procedura. Tuttavia, prima di uscire dal ciclo, la procedura informa l'utente della posizione della cella desiderata e la attiva.

Il ciclo Do While viene eseguito finché la condizione specificata è soddisfatta. I cicli Do While possono avere una delle due sintassi seguenti.

Fare
[Istruzioni]
[Istruzioni]
Ciclo continuo

Fare
[Istruzioni]
[Istruzioni]
Ciclo continuo

La procedura EnterDates1 inserisce le date del mese corrente in una colonna del foglio di lavoro, partendo dalla cella attiva:

Sub InvioDatel ()
"Do While loop, la condizione è verificata all'inizio
Oscura la data come data
TheDate = DateSerial (Anno (Data), Mese (Data), 1)
Fai mentre Mese (TheDate) = Mese (Data)
ActiveCell = TheDate
TheDate = TheDate + 1
ActiveCell.Offset (1, 0) .Attiva
Ciclo continuo
Fine sottotitolo

Questa procedura utilizza la variabile TheDate, che memorizza le date registrate nel foglio di lavoro. Il primo giorno del mese corrente viene utilizzato per inizializzare la variabile. Durante l'esecuzione del ciclo, nella cella attiva è stato inserito il valore della variabile TheDate, successivamente tale valore è stato incrementato di uno, dopodiché viene attivata la cella successiva. Il ciclo viene eseguito finché il valore del mese assegnato alla variabile TheDate non corrisponde al valore del mese della data corrente.

I cicli Do While possono anche includere una o più istruzioni Exit Do. Quando viene raggiunta l'istruzione Exit Do, il ciclo termina e il controllo viene trasferito all'istruzione successiva all'istruzione Loop.

La struttura del ciclo Do Until ha molto in comune con il ciclo Do While. L'unica differenza è come viene verificata la condizione del ciclo. In Do While, il ciclo viene eseguito finché la condizione è soddisfatta. In un ciclo Do Until, il ciclo viene eseguito finché la condizione non viene soddisfatta. La struttura Do Until può essere rappresentata anche da due tipi di sintassi.

Basato sui materiali del libro. - M: Dialettica, 2013. - S. 211–251.

Poche persone sanno che la prima versione del popolare prodotto Microsoft Excel è apparsa nel 1985. Da allora, ha subito diverse modifiche ed è richiesto da milioni di utenti in tutto il mondo. Allo stesso tempo, molti lavorano con solo una piccola parte delle capacità di questo processore di fogli di calcolo e non sanno nemmeno come la loro vita potrebbe essere semplificata programmando in Excel.

Cos'è VBA

La programmazione in Excel viene eseguita utilizzando il linguaggio di programmazione Visual Basic for Application, originariamente integrato nel più famoso processore di fogli di calcolo di Microsoft.

Gli esperti attribuiscono ai suoi vantaggi la relativa facilità di sviluppo. Come dimostra la pratica, anche gli utenti che non hanno competenze di programmazione professionali possono padroneggiare le basi di VBA. Le peculiarità di VBA includono l'esecuzione dello script nell'ambiente delle applicazioni per ufficio.

Lo svantaggio del programma sono i problemi associati alla compatibilità delle diverse versioni. Sono causati dal fatto che il codice del programma VBA fa riferimento a funzionalità presenti nella nuova versione del prodotto, ma non in quella vecchia. Inoltre, gli svantaggi includono l'eccessiva apertura del codice per la modifica da parte di una persona non autorizzata. Tuttavia, Microsoft Office e IBM Lotus Symphony consentono all'utente di crittografare il seme e impostare una password per visualizzarlo.

Oggetti, collezioni, proprietà e metodi

Questi sono i concetti che devono essere compresi da coloro che lavoreranno nell'ambiente VBA. Prima di tutto, devi capire cos'è un oggetto. In Excel, questo è un foglio, una cartella di lavoro, una cella e un intervallo. Questi oggetti hanno una gerarchia speciale, ad es. obbedire l'un l'altro.

Il principale è Application, che corrisponde al programma Excel stesso. Questo è seguito da Cartelle di lavoro, Fogli di lavoro e Intervallo. Ad esempio, per fare riferimento alla cella A1 su un foglio specifico, è necessario specificare un percorso basato sulla gerarchia.

Per quanto riguarda il concetto di "raccolta", si tratta di un gruppo di oggetti della stessa classe, che nel record ha la forma ChartObjects. I suoi singoli elementi sono anche oggetti.

Il concetto successivo sono le proprietà. Sono una caratteristica necessaria di qualsiasi oggetto. Ad esempio, per Intervallo, è Valore o Formula.

I metodi sono comandi che indicano cosa deve essere fatto. Quando si scrive codice in VBA, devono essere separati dall'oggetto da un punto. Ad esempio, come verrà mostrato in seguito, il comando Celle (1,1) .Seleziona viene utilizzato molto spesso durante la programmazione in Excel. Significa che devi selezionare una cella con le coordinate

Selection.ClearContents viene spesso utilizzato con esso. La sua esecuzione significa cancellare il contenuto della cella selezionata.

Come iniziare

Quindi devi andare all'applicazione VB, per la quale è sufficiente utilizzare la combinazione di tasti "Alt" e "F11". Ulteriore:

  • nella barra dei menu situata nella parte superiore della finestra, fare clic sull'icona accanto all'icona di Excel;
  • selezionare la squadra Mudule;
  • salva cliccando sull'icona con l'immagine;
  • scrivere, diciamo, uno schizzo del codice.

Sembra così:

Sottoprogramma ()

"Il nostro codice

Si prega di notare che la riga "" Il nostro codice "verrà evidenziata in un colore diverso (verde). Il motivo è nell'apostrofo all'inizio della riga, il che significa che segue un commento.

Ora puoi scrivere qualsiasi codice e creare un nuovo strumento per te stesso in VBA Excel (vedi esempi di programmi di seguito). Naturalmente, coloro che hanno familiarità con le basi di Visual Basic lo troveranno molto più semplice. Tuttavia, anche coloro che non li hanno, se lo desiderano, potranno abituarsi abbastanza rapidamente.

Macro di Excel

Questo nome nasconde i programmi scritti nel linguaggio Visual Basic for Application. Pertanto, la programmazione in Excel riguarda la creazione di macro con il codice corretto. Grazie a questa funzionalità, il processore per fogli di calcolo Microsoft si sviluppa autonomamente, adattandosi alle esigenze di un determinato utente. Una volta che hai capito come creare moduli per scrivere macro, sei pronto per iniziare a guardare esempi specifici di programmi Excel VBA. È meglio iniziare con i codici più rudimentali.

Esempio 1

Compito: scrivere un programma che copierà il valore del contenuto di una cella e poi scriverà in un'altra.

Per questo:

  • aprire la scheda "Visualizza";
  • vai all'icona Macro;
  • cliccare su "Registra Macro";
  • compilare il modulo aperto.

Per semplicità, lascia “Macro1” nel campo “Nome macro” e inserisci, ad esempio, hh nel campo “Scorciatoia da tastiera” (questo significa che puoi avviare il programma con il comando blitz “Ctrl + h”). Premere Invio.

Ora, quando la registrazione della macro è già iniziata, i contenuti di una cella vengono copiati in un'altra. Ritorna all'icona originale. Fare clic su "Registra macro". Questa azione significa la fine del programma.

  • di nuovo vai alla riga "Macro";
  • selezionare "Macro 1" nell'elenco;
  • fare clic su "Esegui" (la stessa azione viene avviata avviando la scorciatoia da tastiera "Ctrl + hh").

Di conseguenza, si verifica l'azione eseguita durante la registrazione della macro.

Ha senso vedere come appare il codice. Per fare ciò, torna alla riga "Macro" e fai clic su "Cambia" o "Invio". Di conseguenza, si trovano in un ambiente VBA. In realtà, il codice della macro stessa si trova tra le righe Sub Macro1 () e End Sub.

Se la copia è stata eseguita, ad esempio, dalla cella A1 alla cella C1, una delle righe di codice apparirà come Intervallo ("C1"). Seleziona. Tradotto, sembra "Intervallo (" C1 "). Seleziona", in altre parole, passa a VBA Excel, alla cella C1.

Il comando ActiveSheet.Paste termina la parte attiva del codice. Significa scrivere il contenuto della cella selezionata (in questo caso A1) nella cella selezionata C1.

Esempio 2

I loop VBA ti aiutano a creare varie macro in Excel.

I loop VBA ti aiutano a creare una varietà di macro. Supponiamo di avere una funzione y = x + x 2 + 3x 3 - cos (x). È necessario creare una macro per ottenere il suo grafico. Questo può essere fatto solo usando i loop VBA.

Per il valore iniziale e finale dell'argomento della funzione, prendi x1 = 0 e x2 = 10. Inoltre, è necessario immettere una costante: il valore per il passaggio di modifica dell'argomento e il valore iniziale per il contatore.

Tutte le macro di esempio VBA Excel vengono create utilizzando la stessa procedura presentata sopra. In questo caso particolare, il codice è simile a:

Sottoprogramma ()

scopare = 0.1

Fai mentre x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y = x1 + x1 ^ 2 + 3 * x1 ^ 3 - Cos (x1)

Celle (i, 1) .Value = x1 (il valore di x1 viene scritto nella cella con le coordinate (i, 1))

Celle (i, 2) .Value = y (il valore y viene scritto nella cella con le coordinate (i, 2))

i = i + 1 (il contatore è attivo);

x1 = x1 + shag (l'argomento viene modificato dalla dimensione del passo);

Fine Sub.

Come risultato dell'esecuzione di questa macro in Excel, otteniamo due colonne, la prima delle quali contiene i valori per x e la seconda per y.

Quindi viene tracciato un grafico utilizzandoli in modo standard per Excel.

Esempio 3

Per implementare i loop in VBA Excel 2010, come in altre versioni, insieme alla già data costruzione Do While, viene utilizzato For.

Considera un programma che crea una colonna. Ogni cella conterrà i quadrati del numero della riga corrispondente. L'uso del costrutto For ti consentirà di scriverlo in brevissimo tempo, senza utilizzare un contatore.

Per prima cosa devi creare una macro come descritto sopra. Successivamente, scriviamo il codice stesso. Supponiamo di essere interessati ai valori per 10 celle. Il codice è simile a questo.

Per i = da 1 a 10 Successivo

Il comando viene tradotto in linguaggio "umano" come "Ripeti da 1 a 10 con incrementi di uno".

Se il compito è ottenere una colonna con quadrati, ad esempio, tutti i numeri dispari nell'intervallo da 1 a 11, allora scriviamo:

Per i = da 1 a 10 passaggio 1 Avanti.

Qui il passo è un passo. In questo caso è uguale a due. Per impostazione predefinita, l'assenza di questa parola nel ciclo significa che il passaggio è uno.

I risultati ottenuti devono essere salvati nelle celle con il numero (i, 1). Quindi, ad ogni avvio del ciclo, con un aumento di i della dimensione del passo, aumenterà automaticamente anche il numero della riga. Pertanto, il codice sarà ottimizzato.

In generale, il codice sarà simile a:

Sottoprogramma ()

Per i = da 1 a 10 Passaggio 1 (puoi semplicemente scrivere Per i = da 1 a 10)

Celle (i, 1) .Value = i ^ 2 (cioè il valore del quadrato i è scritto nella cella (i, 1))

Avanti (in un certo senso, svolge il ruolo di contatore e indica un altro inizio del ciclo)

Fine Sub.

Se tutto è stato eseguito correttamente, inclusa la registrazione e l'esecuzione di una macro (vedere le istruzioni sopra), ogni volta che viene chiamata, si otterrà una colonna della dimensione specificata (in questo caso, composta da 10 celle).

Esempio 4

Nella vita di tutti i giorni, molto spesso è necessario prendere questa o quella decisione, a seconda di alcune condizioni. Non puoi farne a meno in VBA Excel. Esempi di programmi, in cui viene scelto l'ulteriore corso dell'esecuzione dell'algoritmo, e inizialmente non predeterminato, utilizzano molto spesso il costrutto If… Then (per casi complessi) If… Then… END If.

Consideriamo un caso specifico. Supponiamo di dover creare una macro per Excel in modo che la cella con le coordinate (1,1) sia scritta:

1 se l'argomento è positivo;

0 se l'argomento è null;

-1 se l'argomento è negativo.

La creazione di una tale macro per Excel inizia nel modo standard, utilizzando i tasti di scelta rapida Alt e F11. Successivamente, viene scritto il seguente codice:

Sottoprogramma ()

x = Cells (1, 1) .Value (questo comando assegna x il valore del contenuto della cella alle coordinate (1, 1))

Se x> 0 Allora Celle (1, 1) .Value = 1

Se x = 0 Allora Celle (1, 1) .Valore = 0

Se x<0 Then Cells(1, 1).Value = -1

Fine Sub.

Resta da eseguire la macro e ottenere il valore desiderato per l'argomento in Excel.

Funzioni VBA

Come avrai notato, la programmazione nel più famoso processore di fogli di calcolo di Microsoft non è poi così difficile. Soprattutto se impari a usare le funzioni VBA. In totale, questo linguaggio di programmazione, creato appositamente per scrivere applicazioni in Excel e Word, ha circa 160 funzioni. Possono essere divisi in diversi grandi gruppi. Questo:

  • Funzioni matematiche. Applicandoli all'argomento, si ottiene il valore del coseno, del logaritmo naturale, della parte intera, ecc.
  • Funzioni finanziarie. Grazie alla loro presenza e all'utilizzo della programmazione in Excel si possono ottenere efficaci strumenti di calcolo contabile e finanziario.
  • Funzioni di elaborazione di array. Questi includono Array, IsArray; LBound; UBound.
  • Funzioni VBA Excel per stringhe. Questo è un gruppo abbastanza numeroso. Include, ad esempio, le funzioni Space per creare una stringa con un numero di spazi pari a un argomento intero o Asc per tradurre i caratteri in codice ANSI. Tutti sono ampiamente utilizzati e consentono di lavorare con le righe in Excel, creando applicazioni che facilitano notevolmente il lavoro con queste tabelle.
  • Funzioni di conversione dei tipi di dati. Ad esempio, CVar restituisce il valore dell'argomento Expression convertendolo nel tipo di dati Variant.
  • Funzioni per lavorare con le date. Estendono notevolmente quelli standard, ad esempio la funzione WeekdayName restituisce il nome (completo o parziale) del giorno della settimana tramite il suo numero. Il timer è ancora più utile. Ti dà il numero di secondi trascorsi dalla mezzanotte a un punto specifico della giornata.
  • Funzioni per convertire un argomento numerico in diversi sistemi numerici. Ad esempio, Oct emette un numero in rappresentazione ottale.
  • Funzioni di formattazione. Il più importante di questi è il formato. Restituisce una Variant con un'espressione formattata secondo le istruzioni fornite nella descrizione del formato.
  • eccetera.

Lo studio delle proprietà di queste funzioni e della loro applicazione amplierà notevolmente l'ambito di Excel.

Esempio 5

Proviamo a passare alla risoluzione di problemi più complessi. Ad esempio:

Dato un documento cartaceo della relazione del livello effettivo dei costi dell'impresa. Necessario:

  • sviluppare la sua parte modello utilizzando il processore di fogli di calcolo Excel;
  • creare un programma VBA che richiederà i dati iniziali per compilarlo, eseguire i calcoli necessari e compilarli nelle celle corrispondenti del modello.

Consideriamo una delle soluzioni.

Creazione del modello

Tutte le azioni vengono eseguite su un foglio standard in Excel. Le celle libere sono riservate per inserire i dati sul nome dell'azienda consumatrice, l'importo dei costi, il loro livello e il fatturato. Poiché il numero di società (aziende) per le quali viene redatto il rapporto non è fisso, le celle per l'inserimento dei valori in base ai risultati e il nome completo dello specialista non sono riservate in anticipo. Al foglio di lavoro viene assegnato un nuovo nome. Ad esempio, "Օ rapporti".

Variabili

Per scrivere un programma per il riempimento automatico di un modello, è necessario selezionare le designazioni. Saranno utilizzati per le variabili:

  • NN - numero della riga della tabella corrente;
  • TP e TF - fatturato pianificato ed effettivo;
  • SF e SP - costi effettivi e pianificati;
  • IP e IF: il livello dei costi pianificato ed effettivo.

Indichiamo con le stesse lettere, ma con il "prefisso" Itog, l'accumulo del totale per questa colonna. Ad esempio, ItogTP - fa riferimento a una colonna della tabella intitolata "Fatturato previsto".

Risolvere un problema utilizzando la programmazione VBA

Utilizzando le designazioni introdotte, otteniamo formule per le deviazioni. Se vuoi calcolare in%, abbiamo (F - P) / P * 100 e in totale - (F - P).

I risultati di questi calcoli possono essere inseriti al meglio direttamente nelle celle appropriate nel foglio di calcolo Excel.

Per i totali di fatto e di previsione, si ottengono utilizzando le formule ItogP = ItogP + P e ItogF = ItogF + F.

Per le deviazioni, utilizzare = (ItogF - ItogP) / ItogP * 100, se il calcolo viene effettuato in percentuale e nel caso di un valore totale - (ItogF - ItogP).

I risultati, ancora una volta, vengono scritti immediatamente nelle celle appropriate, quindi non è necessario assegnarli alle variabili.

Prima di avviare il programma creato, è necessario salvare la cartella di lavoro, ad esempio con il nome "Report1.xls".

Il pulsante "Crea tabella dei rapporti" deve essere premuto solo 1 volta dopo aver inserito le informazioni di intestazione. Dovresti conoscere anche altre regole. In particolare, il pulsante "Aggiungi Riga" deve essere premuto ogni volta dopo aver inserito nella tabella i valori per ogni tipo di attività. Dopo aver inserito tutti i dati, è necessario fare clic sul pulsante "Fine" e quindi passare alla finestra "Excel".

Ora sai come risolvere le attività di Excel utilizzando le macro. La capacità di utilizzare vba excel (vedi esempi di programmi sopra) potrebbe anche essere necessaria per lavorare nell'ambiente dell'editor di testo attualmente più popolare "Word". In particolare è possibile creare pulsanti di menu scrivendo, come mostrato all'inizio dell'articolo, oppure scrivendo codice, grazie al quale si possono compiere molte operazioni sul testo premendo i pulsanti di turno o tramite la scheda Visualizza e le Macro icona.


Libro: Utilizzo di macro in Excel.

Pagine: 507

Formato: DJVU
La dimensione: 8.02 Mb

Nonostante le potenti funzionalità fornite dall'interfaccia utente di Excel, esistono numerose attività che possono essere eseguite solo a livello di codice. L'uso delle macro in Excel è un'introduzione alla programmazione VBA di Excel con esempi su come risolvere una serie di problemi pratici di Excel.Il materiale del libro è destinato agli utenti di Excel e ai programmatori che non hanno familiarità con il modello a oggetti di Excel. Oltre agli argomenti sullo sviluppo di macro per Excel 2002, fornisce un corso introduttivo sulla scrittura di macro e programmi in Excel.

Libro: Corso intensivo di programmazione Excel nel fine settimana

Editore: dialettica
Pagine: 421
Formato: DJVU
La dimensione: 12,6 Mb
Qualità: Normale
Lingua: russo
Genere: programmazione
L'anno di pubblicazione: 2004
ISBN: 5-8459-0687-3

Le funzionalità di Microsoft Excel non si limitano all'utilizzo delle tabelle di dati. Dietro gli strumenti del foglio di calcolo si nasconde un potente linguaggio di programmazione: VBA (Visual Basic for Applications). Tuttavia, quasi tutti gli utenti hanno l'opportunità di imparare a scrivere programmi in VBA per risolvere le attività più diverse in Excel: dall'esecuzione meccanica dei calcoli alla creazione di un sistema per l'immissione dei dati con le proprie maschere e con la possibilità di rivedere la correttezza dei valori digitati.

Libro: Programmazione VBA 2002

Qualità: Normale
Lingua: russo
Genere: programmazione

Il libro contiene un corso sulla programmazione in Visual Basic for Applications (VBA), che è il linguaggio di base nelle applicazioni Microsoft Office (Word, Excel, Access, PowerPoint, FrontPage, Visio, ecc.). Il libro è destinato ai principianti che programmano in ambiente Windows utilizzando oggetti Word, Excel, PowerPoint.Parte del libro è dedicata allo sviluppo di applicazioni Office che utilizzano database archiviati sia in file separati che su server remoti.Il materiale del libro è sufficiente per apprendere le basi del linguaggio Visual Basic e creare semplici macro che aiutano ad automatizzare il lavoro ripetitivo di routine con documenti, fogli di calcolo, grafici, presentazioni, ecc., nonché per sviluppare applicazioni di database abbastanza complesse utilizzando il dialogo scatole che forniscono all'utente i più moderni mezzi di interfaccia.La maggior parte degli esempi nel libro sono dedicati a temi attuali dell'attività commerciale, quindi il libro sarà molto utile per i manager di vari livelli, che, a quanto pare, sono destinati sia a Microsoft Office che al linguaggio di programmazione integrato VBA.
Le appendici alla fine del libro possono servire come utile riferimento quando si lavora sia con VBA che con VB normale.

Libro: Programmazione VBA professionale in Excel 2003
John Walkenbach
Editore: Williams
Formato: PDF
La dimensione: 11 Mb
Qualità: Eccellente
Lingua: russo
L'anno di pubblicazione: 2005
ISBN: 5-8459-0771-3
Il libro viene fornito con un disco

Molti libri sono stati scritti su Excel. Ma questo libro è speciale: richiede lo sviluppo di applicazioni per fogli di calcolo in un ampio contesto. VBA è solo un componente dell'ambiente di sviluppo di applicazioni personalizzate, sebbene piuttosto essenziale. Questo libro ti aiuterà a comprendere le complessità dello sviluppo di applicazioni con VBA. Descrive le numerose caratteristiche del linguaggio VBA, le sue capacità e l'ambiente di utilizzo.In primo luogo, ti verrà offerta una panoramica delle capacità del programma, poi passerai alla definizione dei concetti di programmazione VBA, e poi farai la conoscenza con la lingua stessa. Se sei un programmatore VBA principiante, in questa pubblicazione troverai tutte le informazioni necessarie di cui hai bisogno per ulteriori lavori. se hai già un'invidiabile esperienza con VBA, allora questo libro arricchirà e aumenterà le tue conoscenze, aggiungendo nuove tecniche ed esempi dalla vita reale.

La versione pdf è stata modificata e gentilmente fornita dal contributore.

Libro: :
John Walkenbach
Editore: Wiley
Formato: PDF
Pagine: 1308
La dimensione: 11,9 MB
Qualità: Eccellente
Lingua: inglese
L'anno di pubblicazione: 2010
Questo libro si concentra su Visual Basic for Applications (VBA), il linguaggio di programmazione integrato in Excel (e altre applicazioni che compongono Microsoft Office). Più specificamente, ti mostrerà come scrivere programmi che automatizzano varie attività in Excel. Questo libro copre tutto, dalla registrazione di semplici macro alla creazione di applicazioni e utilità sofisticate orientate all'utente. Questo libro non tratta Microsoft Visual Studio Tools per Office (VSTO). VSTO è una tecnologia relativamente nuova che utilizza Visual Basic .NET e Microsoft Visual C#. VSTO può essere utilizzato anche per controllare Excel e altre applicazioni Microsoft Office.
Questo non è un libro per utenti principianti di Excel. Se non hai esperienza con Excel, una scelta migliore potrebbe essere Excel 2010 Bible, che fornisce una copertura completa di tutte le funzionalità di Excel. Quel libro è pensato per utenti di tutti i livelli.

Libro: : Programmazione VBA professionale in Excel 2010
John Walkenbach
Editore: dialettica
Formato: PDF
Pagine:920
La dimensione: 22,1 MB
Qualità: Eccellente
Lingua: russo
L'anno di pubblicazione: 2010 L'argomento di questo libro è il linguaggio di programmazione Visual Basic for Applications (VBA), integrato in Excel, nonché altre applicazioni che fanno parte di Microsoft Office. Descrive in dettaglio la creazione di programmi che automatizzano l'esecuzione di varie attività in Excel e copre anche una vasta gamma di altri argomenti, dalla scrittura delle macro più semplici alla creazione delle applicazioni e delle utilità più complesse progettate per l'interazione dell'utente. Questo libro non descrive il pacchetto software Microsoft Visual Studio Tools for Office (VSTO). È l'incarnazione di una tecnologia relativamente nuova che utilizza Visual Basic .NET e Microsoft Visual C#. La tecnologia VSTO può essere utilizzata anche per controllare il comportamento di Excel e altre applicazioni di Microsoft Office.

Questo libro non è destinato agli utenti principianti di Excel. Se non hai esperienza con questa applicazione, leggi prima la cartella di lavoro di Excel 2010. La Bibbia dell'utente, che spiega in dettaglio tutte le funzionalità di Excel (è indirizzata a utenti di tutti i livelli).


Libro:Tutorial VBA
Garnaev A.
Editore: bhv
Pagine: 512
Formato: html con immagini in rar
ISBN: 5-8206-0067-3
La dimensione: 2.22 Mb

Eccellente

Lingua: inglese
L'anno di pubblicazione: 2009

Microsoft Excel è molto più di un semplice foglio di calcolo. Con l'introduzione dell'editor di Visual Basic in Excel 97, seguita dalla stabilità notevolmente migliorata di Excel 2000, Excel è diventata una piattaforma di sviluppo rispettata a pieno titolo. Le applicazioni Excel si trovano ora accanto a quelle basate su C++, Java e sulla piattaforma di sviluppo .NET, come parte della suite principale di applicazioni aziendali mission-critical.
Sfortunatamente, Excel è ancora troppo spesso considerato una piattaforma per hobby, in cui le persone sviluppano applicazioni Excel solo nel loro tempo libero per automatizzare attività minori. Un breve sguardo a molti libri di Excel VBA sembra confermare questa opinione. Questi libri si concentrano sulle basi dell'automazione delle attività di Excel utilizzando VBA. Questo libro è il primo del suo genere a fornire una spiegazione dettagliata di come utilizzare Excel come piattaforma per lo sviluppo di applicazioni di qualità professionale.
Mentre la maggior parte delle altre principali piattaforme di sviluppo sembra avere un testo standard di fatto che spiega le migliori pratiche comunemente concordate per l'architettura, la progettazione e lo sviluppo di applicazioni che utilizzano tale piattaforma, fino ad ora Excel non lo ha fatto. Questo libro cerca di colmare questa lacuna. Gli autori sono sviluppatori Excel professionisti che creano applicazioni basate su Excel per clienti che vanno dai privati ​​alle più grandi multinazionali. Questo libro spiega gli approcci che utilizziamo durante la progettazione, lo sviluppo, la distribuzione e il supporto delle applicazioni che scriviamo per i nostri clienti.
Questo libro è stato fornito dall'utente

Principali articoli correlati