Den bedste VBA-guide (for begyndere), du nogensinde har brug for

VBA-programmeringsplatformen(VBA programming) , der kører gennem næsten alle Microsoft Office - produkter, er et af de mest kraftfulde værktøjer, nogen kan bruge til at forbedre deres brug af disse produkter.

Denne VBA -guide for begyndere viser dig, hvordan du tilføjer Udviklermenuen(Developer) til din Office - applikation, hvordan du kommer ind i VBA -editorvinduet, og hvordan grundlæggende VBA- sætninger og loops fungerer, så du kan komme i gang med at bruge VBA i Excel , Word , Powerpoint , Outlook og OneNote .

Denne VBA- vejledning bruger den seneste version af Microsoft Office- produkter. Hvis du har en tidligere version, kan du muligvis se nogle små forskelle fra skærmbillederne.

Sådan aktiverer og bruger du VBA Editor(How To Enable & Use The VBA Editor)

I ethvert af de Office- produkter, der bruges i denne vejledning, bemærker du muligvis, at du ikke har den refererede udviklermenu(Developer) . Udviklermenuen er kun tilgængelig i Excel , Word , Outlook og Powerpoint . OneNote tilbyder ikke et værktøj til at redigere VBA -kode inde fra applikationen, men du kan stadig referere til OneNote API for at interagere med OneNote fra andre Office - programmer. 

Du lærer, hvordan du gør dette i vores kommende Advanced VBA- guide.

  • For at aktivere Udviklermenuen(Developer) i ethvert kontorprodukt skal du vælge menuen Filer(File) og vælge Indstillinger(Options) i venstre navigationsmenu. 
  • Du vil se en pop op-menu med indstillinger . (Options)Vælg Tilpas bånd(Customize Ribbon) i venstre navigationsmenu.

Den venstre liste indeholder alle tilgængelige menuer og menukommandoer, der er tilgængelige i det pågældende Office- program. Listen til højre er dem, der i øjeblikket er tilgængelige eller aktiverede.

  • Du bør se Udvikler(Developer) på listen til højre, men den vil ikke blive aktiveret. Marker blot(Just) afkrydsningsfeltet for at aktivere Udviklermenuen(Developer) .

  • Hvis du ikke kan se Udvikler(Developer) tilgængelig til højre, skal du ændre den venstre Vælg kommandoer(Choose commands) fra rullemenuen til Alle kommandoer(All Commands) . Find udvikler(Developer) på listen, og vælg Add>> i midten for at tilføje denne menu til båndet(Ribbon) .
  • Vælg OK , når du er færdig.
  • Når Udviklermenuen(Developer) er aktiv, kan du gå tilbage til dit hovedprogramvindue og vælge Udvikler(Developer) fra topmenuen. 
  • Vælg derefter Vis kode(View Code) fra kontrolgruppen(Controls) på båndet for at åbne VBA - editorvinduet.

  • Dette åbner VBA -editorvinduet, hvor du kan skrive den kode, du vil lære i de næste par sektioner.

  • Prøv at tilføje Udviklermenuen(Developer) til nogle få af de Office- programmer, du bruger hver dag. Når du er tryg ved at åbne VBA- editorvinduet, skal du fortsætte til næste afsnit i denne vejledning.

Generelle VBA-programmeringstips til begyndere(General VBA Programming Tips for Beginners)

Du vil bemærke, når VBA -editoren åbner, at navigationsmulighederne i venstre panel ser anderledes ud fra det ene Office - program til det andet.

Dette skyldes, at de tilgængelige objekter, hvor du kan placere VBA -kode, afhænger af, hvilke objekter der er i applikationen. I Excel kan du f.eks. tilføje VBA -kode til projektmappe- eller arkobjekter. I Word kan du tilføje VBA -kode til dokumenter. I Powerpoint kun til moduler.

Så bliv ikke overrasket over de forskellige menuer. VBA -kodens struktur og syntaks er den samme på tværs af alle applikationer. Den eneste forskel er de objekter, du kan referere til, og de handlinger, du kan udføre på disse objekter gennem VBA -koden.

Inden vi dykker ned i de forskellige objekter og handlinger, du kan tage på dem via VBA -kode, lad os først se på den mest almindelige VBA - struktur og -syntaks, du kan bruge, når du skriver VBA -kode.

Hvor skal man sætte VBA-kode(Where To Put VBA Code)

Når du er i VBA- editoren, skal du bruge de to dropdown-bokse øverst i redigeringsvinduet til at vælge hvilket objekt du vil vedhæfte koden til, og hvornår du vil have koden til at køre.

Hvis du f.eks. i Excel vælger Arbejdsark(Worksheet) og Aktiver(Activate) , kører koden, hver gang regnearket åbnes. 

Andre regnearkshandlinger, du kan bruge til at udløse din VBA -kode, omfatter når regnearket ændres, når det er lukket (deaktiveret), når regnearksberegningen køres og mere.

Når du tilføjer VBA -kode i editoren, skal du altid sørge for at placere din VBA -kode på objektet og bruge den korrekte handling, som du vil bruge til at udløse denne kode.

VBA IF-erklæringer(VBA IF Statements)

En IF-sætning fungerer i VBA , ligesom den fungerer i ethvert andet programmeringssprog.

Den første del af IF-sætningen ser på, om en betingelse eller et sæt af betingelser er sandt. Disse betingelser kan forbindes af en AND- eller OR-operatør for at forbinde dem.

Et eksempel ville være at kontrollere, om en karakter i et regneark er over eller under en "bestået" karakter, og at tildele statussen bestået eller ikke bestået til en anden celle.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Hvis du ikke vil have hele sætningen på en enkelt linje, kan du opdele den i flere linjer ved at tilføje et "_"-symbol i slutningen af ​​linjerne.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Brug af denne teknik kan ofte gøre kode meget nemmere at læse og fejlfinde.

VBA til næste sløjfer(VBA For Next Loops)

IF-udsagn er gode til enkelte sammenligninger, som eksemplet ovenfor med at se på en enkelt celle. Men hvad hvis du vil gå gennem en hel række af celler og lave den samme IF-sætning på hver?

I dette tilfælde har du brug for en FOR -løkke. 

For at gøre dette skal du bruge længden af ​​et område og gå gennem denne længde med antallet af rækker, der indeholder data.

For at gøre dette skal du definere interval- og cellevariablerne og gå igennem dem. Du skal også definere en tæller, så du kan udskrive resultaterne til den relevante række. Så din VBA -kode ville først have denne linje.

Dim rng As Range, celle As Range (Dim rng As Range, cell As Range)
Dim rowCounter som heltal(Dim rowCounter as Integer)

Definer områdestørrelsen som følger. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Endelig kan du oprette din FOR -løkke for at gå gennem hver celle i det område og foretage sammenligningen.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Når dette VBA-script er kørt, ser du resultaterne i selve regnearket.

VBA While Loops

A While Loop går også gennem en række udsagn, ligesom FOR -løkken, men betingelsen for at loopingen fortsætter er en betingelse, der forbliver sand.

For eksempel kan du skrive den samme FOR -løkke ovenfor, som en WHILE -løkke, ved blot at bruge rowCounter-variablen som følger.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Bemærk: rng.Count + 2 termineringsgrænsen er påkrævet, fordi rækketælleren starter ved 2 og skal slutte på række 7, hvor dataene slutter. Antallet af området (B2:B7) er dog kun 6, og While-løkken slutter først, når tælleren er STØRRE(GREATER) end tælleren - så den sidste række Tæller-værdi skal være 8 (eller rng.Count + 2).

Du kan også konfigurere While-løkken som følger:

While rowCounter <= rng.Count + 1

Du kan kun øge rækkevidden (6) med 1, fordi når rowCounter-variablen når slutningen af ​​dataene (række 7), kan løkken afsluttes.

VBA gør mens og gør indtil sløjfer(VBA Do While and Do Until Loops)

Do While- og Do Until-løkker er næsten identiske med While-løkker, men fungerer lidt anderledes.

  • While-løkken(While Loop) kontrollerer , om en betingelse er sand i begyndelsen af ​​løkken.
  • Do-While-løkken(Do-While Loop) kontrollerer , om en betingelse er sand efter at have udført sætningerne i løkken.
  • Gør - indtil-løkken(Do-Until Loop) kontrollerer, om en betingelse stadig er falsk efter udførelse af løkken.

I dette tilfælde ville du omskrive While-løkken ovenfor som følger, som en Do-While-løkke.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

I dette tilfælde ændrer logikken sig ikke ret meget, men hvis du vil sikre dig, at den logiske sammenligning finder sted, efter at alle udsagn er kørt (hvilket tillader dem alle at køre, uanset hvad mindst én gang), så er en Do-While eller Do-Inntil loop er den rigtige mulighed.

VBA Vælg Case Statements(VBA Select Case Statements)

Den sidste type logisk sætning, du skal forstå for at begynde at strukturere din VBA -kode, er Select Case - sætninger.

Givet eksemplet ovenfor, lad os sige, at du vil have en karaktermetode, der ikke bare er bestået ikke. I stedet vil du tildele en bogstavkarakter fra A til F.

Du kan gøre dette med følgende Select Case- erklæring:

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

Det resulterende regneark efter dette VBA -script kører ser ud som det nedenfor.

Nu ved du alt, hvad du behøver at vide for at begynde at bruge VBA i dine Microsoft Office- applikationer.



About the author

"Jeg er freelance-ekspert i Windows og Office. Jeg har over 10 års erfaring med at arbejde med disse værktøjer og kan hjælpe dig med at få mest muligt ud af dem. Mine færdigheder omfatter: at arbejde med Microsoft Word, Excel, PowerPoint og Outlook; skabe web sider og applikationer; og hjælpe kunder med at nå deres forretningsmål."



Related posts