- 08/14/2019
- 25 minutter på at læse
-
- o
- R
- L
- m
- O
-
+4
Er du over en gentagen rensning af halvtreds tabeller i Word? Vil du have et bestemt dokument til at bede brugeren om input, når det åbnes?, Har du svært ved at finde ud af, hvordan du får dine kontakter fra Microsoft Outlook til et Microsoft e ?cel-regneark effektivt?
Du kan udføre disse opgaver og udføre meget mere ved at bruge Visual Basic for Applications (VBA) til Office—et simpelt, men kraftfuldt programmeringssprog, som du kan bruge til at udvide Office-applikationer.
denne artikel er beregnet til erfarne Office-brugere, der ønsker at lære om VBA, og som ønsker et indblik i, hvordan programmering kan hjælpe dem med at tilpasse Office.
Office-pakken med applikationer har et rigt sæt funktioner., Der er mange forskellige måder at forfatter, formatere og manipulere dokumenter, e-mail, databaser, formularer, regneark og præsentationer. Den store Kraft ved VBA-programmering i Office er, at næsten enhver operation, du kan udføre med en mus, tastatur eller en dialogboks, også kan udføres ved hjælp af VBA. Yderligere, hvis det kan gøres en gang med VBA, kan det gøres lige så let hundrede gange. (Faktisk er automatisering af gentagne opgaver en af de mest almindelige anvendelser af VBA i Office.,)
ud over kraften i scripting VBA for at fremskynde hverdagsopgaver kan du bruge VBA til at tilføje ny funktionalitet til Office-applikationer eller til at bede og interagere med brugeren af dine dokumenter på måder, der er specifikke for dine forretningsbehov. For eksempel kan du skrive en VBA-kode, der viser en pop-up-meddelelse, der minder brugerne om at gemme et dokument på et bestemt netværksdrev, første gang de prøver at gemme det.
denne artikel udforsker nogle af de primære grunde til at udnytte kraften i VBA-programmering., Det udforsker VBA-sproget og de out-of-the-bo.værktøjer, som du kan bruge til at arbejde med dine løsninger. Endelig indeholder det nogle tips og måder at undgå nogle fælles programmering frustrationer og fejltrin.
Bemærk
interesseret i at udvikle løsninger, der udvider Office-oplevelsen på tværs af flere platforme? Tjek den nye Office-Tilføjelsesmodel. Office-tilføjelser har et lille fodaftryk sammenlignet med VSTO-Tilføjelser og-løsninger, og du kan bygge dem ved hjælp af næsten enhver technologyebprogrammeringsteknologi, såsom HTML5, JavaScript, CSS3 og .ml.,
hvornår man skal bruge VBA og hvorfor
Der er flere hovedårsager til at overveje VBA-programmering i Office.
automatisering og gentagelse
VBA er effektiv og effektiv, når det kommer til gentagne løsninger på formatering eller korrektion problemer. Har du for eksempel nogensinde ændret stilen i afsnittet øverst på hver side i Wordord? Har du nogensinde været nødt til at omformatere flere tabeller, der blev indsat fra E ?cel i et documentord-dokument eller en Outlook-e-mail? Har du nogensinde været nødt til at foretage den samme ændring i flere Outlook-kontakter?,
Hvis du har en ændring, som du skal foretage mere end ti eller tyve gange, kan det være værd at automatisere det med VBA. Hvis det er en ændring, som du skal gøre hundreder af gange, er det bestemt værd at overveje. Næsten enhver formatering eller redigering ændring, som du kan gøre i hånden, kan gøres i VBA.
udvidelser til brugerinteraktion
Der er tidspunkter, hvor du vil tilskynde eller tvinge brugere til at interagere med Office-applikationen eller dokumentet på en bestemt måde, der ikke er en del af standardapplikationen., Du kan f.eks. bede brugerne om at foretage en bestemt handling, når de åbner, gemmer eller udskriver et dokument.
interaktion mellem Office-applikationer
har du brug for at kopiere alle dine kontakter fra Outlook til Wordord og derefter formatere dem på en bestemt måde? Eller har du brug for at flytte data fra E ?cel til et sæt Po ?erpoint-dias? Nogle gange gør simple copy and paste ikke, hvad du vil have det til at gøre, eller det er for langsomt., Du kan bruge VBA-programmering til at interagere med detaljerne i to eller flere Office-applikationer på samme tid og derefter ændre indholdet i en applikation baseret på indholdet i en anden.
at gøre tingene på en anden måde
VBA-programmering er en kraftfuld løsning, men det er ikke altid den optimale tilgang. Nogle gange giver det mening at bruge andre måder at nå dine mål på.
det kritiske spørgsmål at stille er, om der er en nemmere måde. Før du begynder et VBA-projekt, skal du overveje de indbyggede værktøjer og standardfunktioner., Har en tidskrævende redigerings-eller layoutopgave, skal du overveje at bruge stilarter eller acceleratortaster til at løse problemet. Kan du udføre opgaven en gang og derefter bruge CTRL+Y (Redo) for at gentage det? Kan du oprette et nyt dokument med det korrekte format eller skabelon og derefter kopiere indholdet til det nye dokument?
Office-applikationer er kraftfulde; den løsning, du har brug for, er muligvis allerede der. Brug lidt tid på at lære mere om Office, før du hopper ind i programmeringen.
før du starter et VBA-projekt, skal du sikre dig, at du har tid til at arbejde med VBA., Programmering kræver fokus og kan være uforudsigelig. Især som nybegynder skal du aldrig henvende dig til programmering, medmindre du har tid til at arbejde omhyggeligt. Forsøger at skrive en “hurtig script” for at løse et problem, når en deadline væve kan resultere i en meget stressende situation. Hvis du har travlt, vil du måske bruge konventionelle metoder, selvom de er monotone og gentagne.
VBA-programmering 101
brug af kode til at få applikationer til at gøre ting
du tror måske, at det er mystisk eller vanskeligt at skrive kode, men de grundlæggende principper bruger hverdags ræsonnement og er ret tilgængelige., Microsoft Office-applikationer oprettes på en sådan måde, at de udsætter ting, der kaldes objekter, der kan modtage instruktioner, på samme måde som en telefon er designet med knapper, som du bruger til at interagere med telefonen. Når du trykker på en knap, genkender telefonen instruktionen og inkluderer det tilsvarende nummer i den rækkefølge, du ringer op. I programmeringen interagerer du med applikationen ved at sende instruktioner til forskellige objekter i applikationen. Disse objekter er ekspansive, men de har deres grænser., De kan kun gøre, hvad de er designet til at gøre, og de vil kun gøre, hvad du instruerer dem til at gøre.den bruger, der åbner et dokument i Wordord, foretager et par ændringer, gemmer dokumentet og lukker det derefter. I en verden af VBA programmering, expord udsætter et dokument objekt. Ved at bruge VBA-kode kan du instruere Dokumentobjektet til at gøre ting som åbne, gemme eller lukke.
følgende afsnit beskriver, hvordan objekter er organiseret og beskrevet.,
objektmodellen
udviklere organiserer programmeringsobjekter i et hierarki, og dette hierarki kaldes objektmodellen for applikationen. Wordord har for eksempel et Programobjekt på øverste niveau, der indeholder et Dokumentobjekt. Dokumentobjektet indeholder afsnit objekter og så videre. Objektmodeller afspejler groft det, du ser i brugergrænsefladen. De er et konceptuelt kort over applikationen og dens evner.
definitionen af et objekt kaldes en klasse, så du kan se disse to udtryk, der bruges om hverandre., Teknisk set er en klasse den beskrivelse eller skabelon, der bruges til at oprette eller instantiere et objekt.
Når et objekt eksisterer, kan du manipulere det ved at indstille dets egenskaber og kalde dets metoder. Hvis du tænker på objektet som et substantiv, er egenskaberne de adjektiver, der beskriver substantivet, og metoderne er de verb, der animerer substantivet. Ændring af en ejendom ændrer en vis kvalitet af objektets udseende eller opførsel. At kalde en af objektmetoderne får objektet til at udføre en handling.,
VBA-kode i denne artikel løber mod et åbent Kontor, hvor mange af de objekter, som den kode, der manipulerer er allerede oppe og køre, for eksempel, selve Ansøgningen, Regneark i Excel Dokumentet i Word, Præsentation i PowerPoint, Explorer og Mappe objekter i Outlook. Når du kender det grundlæggende layout af objektmodellen og nogle nøgleegenskaber for applikationen, der giver adgang til dens nuværende tilstand, kan du begynde at udvide og manipulere denne Office-applikation med VBA i Office.,
metoder
i Wordord kan du for eksempel ændre egenskaberne og påberåbe metoderne for det aktuelle Wordord-dokument ved at bruge egenskaben ActiveDocument for Applikationsobjektet. Denne ActiveDocument-egenskab returnerer en henvisning til det Dokumentobjekt, der i øjeblikket er aktivt i applicationord-applikationen. “Returnerer en henvisning til “betyder” giver dig adgang til.”
følgende kode gør præcis, hvad den siger; det vil sige, det gemmer det aktive dokument i applikationen.,
Application.ActiveDocument.Save
Læs koden fra venstre mod højre, “i denne applikation, med det dokument, der henvises til af ActiveDocument, påkaldes Gem-metoden.”Vær opmærksom på, at Gem er den enkleste form for metode; det kræver ingen detaljerede instruktioner fra dig. Du instruerer et Dokumentobjekt til at gemme, og det kræver ikke mere input fra dig.
Hvis en metode kræver mere information, kaldes disse detaljer parametre. Følgende kode kører SaveAs-metoden, som kræver et nyt navn til filen.,
Application.ActiveDocument.SaveAs ("New Document Name.docx")
værdier opført i parentes efter et metodenavn er parametrene. Her er det nye navn på filen en parameter for SaveAs-metoden.
egenskaber
du bruger den samme syntaks til at indstille en egenskab, som du bruger til at læse en egenskab. Følgende kode udfører en metode til at vælge celle A1 i E .cel og derefter for at indstille en egenskab til at sætte noget i den celle.
Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"
Den første udfordring i VBA programmering er at få en fornemmelse for object model af hvert Office-program og til at læse objekt, metode og ejendom syntaks., Objektmodellerne er ens i alle kontorapplikationer, men hver er specifik for den slags dokumenter og objekter, den manipulerer.
i den første linje i kodestykket er der Applikationsobjektet, e .cel denne gang og derefter ActiveSheet, som giver adgang til det aktive regneark. Derefter er et udtryk, der ikke er så kendt, rækkevidde, hvilket betyder “Definer en række celler på denne måde.”Koden instruerer rækkevidde til at skabe sig selv med kun A1 som dets definerede sæt celler. Med andre ord definerer den første linje kode et objekt, området og kører en metode imod det for at vælge det., Resultatet gemmes automatisk i en anden egenskab af applikationen kaldet Selection.
den anden kodelinje indstiller værdien egenskaben for valg til teksten “Hello Worldorld”, og denne værdi vises i celle A1.
den enkleste VBA-kode, du skriver, kan simpelthen få adgang til objekter i Office-applikationen, som du arbejder med, og indstille egenskaber. For eksempel kan du få adgang til rækkerne i en tabel i Wordord og ændre deres formatering i dit VBA-script.,
det lyder enkelt, men det kan være utroligt nyttigt; når du først kan skrive den kode, kan du udnytte al kraften i programmeringen til at foretage de samme ændringer i flere tabeller eller dokumenter eller gøre dem i henhold til en eller anden logik eller tilstand. For en computer er det ikke anderledes at foretage 1000 ændringer end at lave 10, så der er en stordriftsfordel her med større dokumenter og problemer, og det er her VBA virkelig kan skinne og spare dig tid.,
makroer og Visual Basic Editor
nu hvor du ved noget om, hvordan Office-applikationer udsætter deres objektmodeller, er du sandsynligvis ivrig efter at prøve at kalde objektmetoder, indstille objektegenskaber og reagere på objekthændelser. For at gøre det skal du skrive din kode et sted og på en måde, som Office kan forstå; typisk ved at bruge Visual Basic Editor. Selvom det er installeret som standard, ved mange brugere ikke, at det endda er tilgængeligt, før det er aktiveret på båndet.
alle kontorprogrammer bruger båndet., En fane på båndet er fanen Udvikler, hvor du får adgang til Visual Basic Editor og andre udviklingsværktøjer. Da Kontoret ikke vist fanen Udvikler som standard, skal du aktivere det ved at bruge følgende fremgangsmåde:
for At aktivere fanen Udvikler
-
På fanen Filer, vælge Indstillinger for at åbne dialogboksen Indstillinger.
-
Vælg Tilpas bånd i venstre side af dialogboksen.
-
Under Vælg kommandoer fra i venstre side af dialogboksen, Vælg populære kommandoer.,
-
under Tilpas båndet i højre side af dialogboksen skal du vælge hovedfaner i rullelisten og derefter markere afkrydsningsfeltet Udvikler.
-
vælg OK.
Bemærk!
I Office 2007, får du vist fanen Udvikler, ved at vælge Office-knappen, vælge Valg og derefter vælge Vis fanen Udvikler i Båndet afkrydsningsfeltet i den Populære kategori i dialogboksen Indstillinger.
Når du har aktiveret fanen Udvikler, er det let at finde knapperne Visual Basic og Macros.
Figur 1., Knapper på fanen Udvikler
sikkerhedsproblemer
for at beskytte Office-brugere mod vira og farlig makrokode kan du ikke gemme makrokode i et standard Office-dokument, der bruger en standard filtypenavn. I stedet skal du gemme koden i en fil med en særlig udvidelse. For eksempel kan du ikke gemme makroer i et standard Wordord-dokument med en .doc.-udvidelse; i stedet skal du bruge et specielt Macroord-makroaktiveret dokument med en.DOCM udvidelse.
Når du åbner en .,docm-fil, kan Office security stadig forhindre makroerne i dokumentet i at køre, med eller uden at fortælle dig. Undersøg indstillingerne og indstillingerne i Trust Center på alle Office-applikationer. Standardindstillingen deaktiverer makro fra at køre, men advarer dig om, at makroer er blevet deaktiveret, og giver dig mulighed for at slå dem til igen for det pågældende dokument.
Du kan udpege bestemte mapper, hvor makroer kan køre ved at oprette betroede placeringer, betroede dokumenter eller betroede udgivere., Den mest bærbare mulighed er at bruge betroede udgivere, der fungerer med digitalt underskrevne dokumenter, som du distribuerer. For mere information om sikkerhedsindstillingerne i et bestemt Office-program, skal du åbne dialogboksen Indstillinger, vælge Trust Center og derefter vælge Trust Center-indstillinger.
Bemærk
nogle Office-programmer, som Outlook, gemmer makroer som standard i en masterskabelon på din lokale computer., Selvom denne strategi reducerer de lokale sikkerhedsproblemer på din egen computer, når du kører dine egne makroer, kræver det en implementeringsstrategi, hvis du vil distribuere din makro.
Indspilning af en makro
Når du vælger den Makro-knap under fanen Udvikler, åbnes dialogboksen Makroer, som giver dig adgang til VBA-underrutiner eller makroer, som du kan få adgang til et bestemt dokument eller et program. Knappen Visual Basic åbner Visual Basic editoren, hvor du opretter og redigerer VBA-kode.,
en Anden knap på fanen Udvikler i Word og Excel er det knappen indspil Makro, som automatisk genererer VBA-kode, der kan gengive de handlinger, du udfører i programmet. Record Macro er et fantastisk værktøj, som du kan bruge til at lære mere om VBA. Læsning af den genererede kode kan give dig indsigt i VBA og give en stabil bro mellem din viden om Office som bruger og din viden som programmør., Den eneste advarsel er, at den genererede kode kan være forvirrende, fordi Makroeditoren skal tage nogle antagelser om dine intentioner, og disse antagelser er ikke nødvendigvis nøjagtige.
for at optage en makro
-
Åbn e .cel til en ny projektmappe og vælg fanen Udvikler i båndet. Vælg Optag makro og accepter alle standardindstillingerne i dialogboksen Optag makro, herunder Macro1 som navnet på makroen og denne projektmappe som placering.
-
vælg OK for at begynde at optage makroen. Bemærk, hvordan knapteksten ændres for at stoppe optagelsen., Vælg den knap i det øjeblik du fuldfører de handlinger, du vil optage.
-
vælg celle B1 og skriv programmørens klassiske første streng: Hello Worldorld. Stop med at skrive og se på knappen Stop optagelse; det er gråtonet, fordi e .cel venter på, at du er færdig med at skrive værdien i cellen.
-
vælg celle B2 for at fuldføre handlingen i celle B1, og vælg derefter Stop optagelse.
-
Vælg makroer på fanen Udvikler, vælg Macro1, hvis den ikke er valgt, og vælg derefter Rediger for at se koden fra Macro1 i Visual Basic editoren.,
figur 2. Makrokode i Visual Basic Editor
ser man på koden
den Makro, du oprettede, skal ligne følgende kode.
Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub
Vær opmærksom på lighederne med det tidligere kodestykke, der valgte tekst i celle A1, og forskellene. I denne kode vælges celle B1, og derefter anvendes strengen “Hello Worldorld” på den celle, der er blevet gjort aktiv. Citaterne omkring teksten angiver en strengværdi i modsætning til en numerisk værdi.,
husk, hvordan du valgte celle B2 for at vise Stopoptagelsesknappen igen? Denne handling vises også som en kodelinje. Makrooptageren registrerer alle tastetryk.
kodelinjerne, der starter med en apostrof og farvet grøn af editoren, er kommentarer, der forklarer koden eller minder dig og andre programmerere om formålet med koden. VBA ignorerer enhver linje, eller del af en linje, der begynder med et enkelt citat. At skrive klare og passende kommentarer i din kode er et vigtigt emne, men denne diskussion er uden for denne artikels anvendelsesområde., Efterfølgende henvisninger til denne kode i artiklen inkluderer ikke disse fire kommentarlinjer.
når makrooptageren genererer koden, bruger den en kompleks algoritme til at bestemme de metoder og egenskaber, du havde til hensigt. Hvis du ikke genkender en given ejendom, er der mange ressourcer til rådighed til at hjælpe dig. For eksempel i den Makro, du har optaget, genererede makrooptageren kode, der henviser til FormulaR1C1-egenskaben. Ikke sikker på hvad det betyder?bemærk
Vær opmærksom på, at Applikationsobjektet er underforstået i alle VBA-makroer., Den kode, du har optaget, fungerer med applikationen. i begyndelsen af hver linje.
brug af Udviklerhjælp
Vælg FormulaR1C1 i den optagede makro, og tryk på F1. Hjælp-systemet kører en hurtig søgning, bestemmer, at de relevante emner i Excel Udvikler del af Excel Hjælp, og lister FormulaR1C1 ejendom. Du kan vælge linket for at læse mere om ejendommen, men før du gør det, skal du være opmærksom på e .cel Object Model Reference link nær bunden af vinduet., Vælg linket for at se en lang liste over objekter, som e .cel bruger i sin objektmodel til at beskrive regnearkene og deres komponenter.
vælg en af dem for at se de egenskaber og metoder, der gælder for det pågældende objekt, sammen med krydshenvisninger til forskellige relaterede indstillinger. Mange hjælpeposter har også korte kodeeksempler, der kan hjælpe dig. For eksempel kan du følge linkene i Grænseobjektet for at se, hvordan du indstiller en grænse i VBA.
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
redigering af koden
Grænsekoden ser anderledes ud end den optagede Makro., En ting, der kan være forvirrende med en objektmodel, er, at der er mere end en måde at adressere et givet objekt, celle A1 i dette eksempel.
Nogle gange er den bedste måde at lære programmering på at foretage mindre ændringer i en arbejdskode og se, hvad der sker som et resultat. Prøv det nu. Åbn Macro1 i Visual Basic editoren, og skift koden til følgende.
Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub
Tip
brug Kopier og indsæt så meget som muligt, når du arbejder med kode for at undgå skrivefejl.,
Du behøver ikke gemme koden for at prøve den, så vend tilbage til e .cel-dokumentet, vælg makroer på fanen Udvikler, vælg Macro1, og vælg derefter Kør. Celle A1 indeholder nu teksten Wowo!! og har en dobbelt linje grænse omkring det.
figur 3. Resultater af din første Makro
du har lige kombineret makrooptagelse, læst objektmodeldokumentationen og enkel programmering for at lave et VBA-program, der gør noget. Tillykke!
virkede ikke? Læs videre for debugging forslag i VBA.,
Programmering tips og tricks
Start med eksempler
VBA-fællesskabet er meget stor; en søgning på Nettet kan næsten altid giver et eksempel på VBA-kode, der gør noget lignende, hvad du ønsker at gøre. Hvis du ikke kan finde et godt eksempel, kan du prøve at opdele opgaven i mindre enheder og søge på hver af dem, eller prøv at tænke på et mere almindeligt, men lignende problem. Startende med et eksempel kan spare dig timers tid.
det betyder ikke, at gratis og gennemtænkt kode er på nettet og venter på, at du kommer med., Faktisk kan nogle af koden, som du finder, have fejl eller fejl. Ideen er, at de eksempler, du finder online eller i VBA dokumentation giver dig et forspring. Husk at læring programmering kræver tid og tanke. Før du kommer i et stort travlt med at bruge en anden løsning til at løse dit problem, så spørg dig selv, om VBA er det rigtige valg til dette problem.
lav et enklere problem
programmering kan blive kompleks hurtigt. Det er kritisk, især som nybegynder, at du bryder problemet ned til de mindste mulige logiske enheder, så skriv og test hvert stykke isoleret., Hvis du har for meget kode foran dig, og du bliver forvirret eller forvirret, skal du stoppe og sætte problemet til side. Når du kommer tilbage til problemet, skal du kopiere et lille stykke af problemet til et nyt modul, løse det stykke, Få koden til at fungere og teste det for at sikre, at det fungerer. Gå derefter videre til næste del.
Bugs og debugging
Der er to hovedtyper af programmeringsfejl: syntaksfejl, der overtræder programmeringssprogets grammatiske regler, og run-time-fejl, der ser syntaktisk korrekt ud, men mislykkes, når VBA forsøger at udføre koden.,
selvom de kan være frustrerende at rette op, er syntaksfejl nemme at fange; Visual Basic Editor bipper og blinker på dig, hvis du skriver en syntaksfejl i din kode.for eksempel skal strengværdier være omgivet af dobbelt citater i VBA. For at finde ud af, hvad der sker, når du i stedet bruger enkelt citater, skal du vende tilbage til Visual Basic Editor og erstatte “Wowo!!”string i koden eksempel med’ Wowo!!'(det vil sige ordet Wowo.vedlagt i enkelt citater). Hvis du vælger den næste linje, reagerer Visual Basic-editoren., Fejlen “Kompil errorr fejl: forventet: udtryk” er ikke så nyttig, men linjen, der genererer fejlen, bliver rød for at fortælle dig, at du har en syntaksfejl i den linje, og som et resultat vil dette program ikke køre.
vælg OK og ændre teksten tilbage til”Wowo!!”.
Runtime fejl er sværere at fange, fordi programmeringen syntaks ser korrekt, men koden mislykkes, når VBA forsøger at udføre det.,for eksempel skal du åbne Visual Basic-editoren og ændre Værdiegenskabsnavnet til Value.i din makro ved bevidst at introducere en runtime-fejl, da Range-objektet ikke har en egenskab kaldet Value.. Gå tilbage til e .cel-dokumentet, Åbn dialogboksen makroer og kør Macro1 igen. Du skal se en Visual Basic-meddelelsesboks, der forklarer run-time-fejlen med teksten, “objekt understøtter ikke denne egenskab af metode.”Selvom denne tekst er klar, skal du vælge Debug for at finde ud af mere.,
Når du vender tilbage til Visual Basic-editoren, er det i en speciel fejlfindingstilstand, der bruger et gult højdepunkt til at vise dig kodelinjen, der mislykkedes. Som forventet fremhæves linjen, der inkluderer Value. – ejendommen.
Du kan foretage ændringer i VBA-kode, der kører, så skift Value.tilbage til værdi og vælg den lille grønne afspilningsknap under Debug-menuen. Programmet skal køre normalt igen.
det er en god ide at lære at bruge debuggeren mere bevidst til længere, mere komplekse programmer., På et minimum, lære en hvordan du indstiller break-point for at stoppe udførelsen på et punkt, hvor du ønsker at tage et kig på koden, hvordan du tilføjer ure for at se værdierne af forskellige variabler og egenskaber som koden kører, og hvordan man træder gennem koden linje for linje. Disse indstillinger er alle tilgængelige i Debug-menuen, og seriøse debugger-brugere husker typisk de ledsagende tastaturgenveje.,
brug af referencematerialer godt
for at åbne Udviklerreferencen, der er indbygget i Office-Hjælp, skal du åbne Hjælpreferencen fra ethvert Office-program ved at vælge spørgsmålstegnet i båndet eller ved at trykke på F1. Vælg derefter rullemenuen til højre for søgeknappen for at filtrere indholdet. Vælg Udvikler Reference. Hvis du ikke kan se indholdsfortegnelsen i venstre panel, skal du vælge det lille bogikon for at åbne det og derefter udvide Objektmodelreferencen derfra.
figur 5., Filtrering på udviklerhjælp gælder for alle Office-applikationer
tidsforbrug gennemse objektet Model reference betaler sig. Når du har forstået det grundlæggende i VBA-syntaks og objektmodellen til Office-applikationen, som du arbejder med, går du videre fra gætteri til metodisk programmering.
selvfølgelig er Microsoft Office Developer Center en fremragende portal til artikler, tip og fællesskabsoplysninger.,
Søgning fora og grupper
Alle programmører hænger nogle gange, selv efter at have læst hver reference artikel, de kan finde og miste sove om natten, tænker om forskellige måder at løse et problem. Heldigvis har internettet fremmet et samfund af udviklere, der hjælper hinanden med at løse programmeringsproblemer.
enhver søgning på nettet efter “office developer forum” afslører flere diskussionsgrupper. Du kan søge på “office development” eller en beskrivelse af dit problem for at opdage fora, blogindlæg og artikler også.,
Hvis du har gjort alt, hvad du kan for at løse et problem, skal du ikke være bange for at sende dit spørgsmål til et udviklerforum. Disse fora velkommen indlæg fra nyere programmører og mange af de erfarne udviklere er glade for at hjælpe.
Følgende er et par punkter af etikette at følge, når du sender til en udvikler forum:
-
før du sender, se på sitet for en FA.eller for retningslinjer, som medlemmerne vil have dig til at følge. Sørg for, at du sender indhold, der er i overensstemmelse med disse retningslinjer og i den korrekte del af forummet.,
-
Medtag en klar og komplet kodeprøve, og overvej at redigere din kode for at afklare den for andre, hvis den er en del af et længere afsnit af kode.
-
beskriv dit problem klart og kortfattet, og opsummer alle trin, du har taget for at løse problemet. Tag dig tid til at skrive dit indlæg så godt som du kan, især hvis du er forvirret eller har travlt. Præsenter situationen på en måde, der giver mening for læserne første gang, de læser problemformuleringen.
-
vær høflig og Udtryk din påskønnelse.,
gå videre med programmering
selvom denne artikel er kort og kun ridser overfladen på VBA og programmering, er det forhåbentlig nok at komme i gang.
dette afsnit beskriver kort nogle få centrale emner.
variabler
i de enkle eksempler i denne artikel manipulerede du objekter, som applikationen allerede havde oprettet. Du kan oprette dine egne objekter til at gemme værdier eller henvisninger til andre objekter til midlertidig brug i din ansøgning. Disse kaldes variabler.,
for at bruge en variabel i VBA, skal du fortælle VBA hvilken type objekt variablen repræsenterer ved at bruge Dim-sætningen. Du indstiller derefter dens værdi og bruger den til at indstille andre variabler eller egenskaber.
Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable
forgrening og looping
de enkle programmer i denne artikel udfører en linje ad gangen fra toppen ned. Den reelle magt i programmeringen kommer fra de muligheder, du skal bestemme, hvilke kodelinjer der skal udføres, baseret på en eller flere betingelser, som du angiver. Du kan udvide disse funktioner endnu mere, når du kan gentage en operation mange gange., For eksempel udvider følgende kode Macro1.
skriv eller indsæt koden i Visual Basic-editoren, og kør den derefter. Følg anvisningerne i meddelelsesfeltet, der vises, og ændre teksten i celle A1 fra !o!! til Ja! og køre det igen for at se magt looping. Denne kodestykke viser variabler, forgrening og looping. Læs det omhyggeligt, når du ser det i aktion, og prøv at bestemme, hvad der sker, når hver linje udfører.
alle mine Office-applikationer: eksempelkode
Her er et par scripts til at prøve; hver løser et Kontorproblem i den virkelige verden.,
Opret en e-mail i Outlook
Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub
Vær opmærksom på, at der er situationer, hvor du måske vil automatisere e-mail i Outlook; du kan også bruge skabeloner.
Slet tomme rækker i et Excel-regneark
Vær opmærksom på, at du kan vælge en kolonne af celler og køre denne makro til at slette alle linjer i den valgte kolonne, der har en tom celle.
Slet tomme tekstbokse i 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
Vær opmærksom på, at denne kode sløjfer gennem alle dias og sletter alle tekstbokse, der ikke har nogen tekst., Tællevariablen aftager i stedet for trin, fordi hver gang koden sletter et objekt, fjerner det objektet fra samlingen, hvilket reducerer tællingen.
Kopier en kontakt fra Outlook til Wordord
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
Vær opmærksom på, at denne kode kopierer den aktuelt åbne kontakt i Outlook til det åbne Wordord-dokument. Denne kode fungerer kun, hvis der i øjeblikket er en kontaktperson, der er åben for inspektion i Outlook.
Support og feedback
Har du spørgsmål eller feedback om Office VBA eller denne dokumentation?, Se Office VBA support og feedback for vejledning om, hvordan du kan modtage support og give feedback.