Målet med dette kurset er å hjelpe mennesker som aldri har skrevet et program før å lære å skrive et. Det er ingen grunn til at kontorarbeidere, hjemmeværende, profesjonelle ingeniører og pizzautleveringspersoner skal ikke kunne dra nytte av sine egne håndlagde tilpassede dataprogrammer for å jobbe raskere og smartere. Det bør ikke ta en 'profesjonell programmerer' (uansett hva det er) for å gjøre jobben. Du vet hva som må gjøres bedre enn noen andre. Du kan gjøre det selv!
(Og jeg sier dette som en som har brukt mange år på å skrive programmer for andre mennesker... 'Profesjonelt'.)
Når det er sagt, er dette ikke et kurs i hvordan du bruker en datamaskin.
Dette kurset forutsetter at du vet hvordan du bruker populær programvare, og spesielt at du har Microsoft Word 2007 installert på datamaskinen din. Du bør kjenne grunnleggende datamaskinferdigheter som hvordan du oppretter filmapper (det vil si kataloger) og hvordan du flytter og kopierer filer. Men hvis du alltid har lurt på hva et dataprogram faktisk var, er det OK. Vi viser deg.
Microsoft Office er ikke billig. Men du kan få mer verdi av den dyre programvaren du allerede har installert. Det er en stor grunn til at vi bruker Visual Basic for applikasjoner, eller VBA, sammen med Microsoft Office. Det er millioner som har det og en håndfull (kanskje ingen) som bruker alt det kan gjøre.
Før vi går videre, må jeg imidlertid forklare en ting til om VBA. I februar 2002 satset Microsoft på 300 milliarder dollar på en helt ny teknologibase for hele selskapet. De kalte det .NET. Siden den gang har Microsoft flyttet hele teknologibasen til VB.NET. VBA er det aller siste programmeringsverktøyet som fremdeles bruker VB6, den velprøvde og sanne teknologien som ble brukt før VB.NET. (Du vil se uttrykket "COM-basert" for å beskrive denne VB6-nivåsteknologien.)
VSTO og VBA
Microsoft har laget en måte å skrive VB.NET-programmer for Office 2007. Det kalles Visual Studio Tools for Office (VSTO). Problemet med VSTO er at du må kjøpe og lære å bruke Visual Studio Professional. Excel selv er fortsatt COM-basert også, og .NET-programmer må jobbe med Excel gjennom et grensesnitt (kalt PIA, Primary Interop Assembly).
Så... inntil Microsoft får handle sammen og gir deg en måte å skrive programmer som fungerer med Word og ikke får deg til å bli med i IT-avdelingen, er VBA-makroer fremdeles veien å gå.
En annen grunn til at vi bruker VBA er at det virkelig er en 'fullstendig bakt' (ikke halvbakt) programvare utvikling miljø som har blitt brukt i mange år av programmerere for å lage noen av de mest sofistikerte systemene som eksisterer. Det har ikke noe å si hvor høyt programmeringssidene dine er satt. Visual Basic har makten til å ta deg dit.
Hva er en makro?
Du har kanskje brukt desktop-applikasjoner som støtter det som kalles makrospråk før. Makroer er tradisjonelt bare skript av tastaturhandlinger gruppert sammen med ett navn slik at du kan utføre dem på en gang. Hvis du alltid starter dagen med å åpne "MyDiary" -dokumentet ditt, legge inn dagens dato og skrive ordene "Kjære dagbok" - Hvorfor ikke la datamaskinen gjøre det for deg? For å være i samsvar med annen programvare kaller Microsoft VBA også et makrospråk. Men det er det ikke. Det er mye mer.
Mange stasjonære applikasjoner inkluderer et programvareverktøy som lar deg registrere en "tastetrykk" -makro. I Microsoft-applikasjoner kalles dette verktøyet makroopptaker, men resultatet er ikke en tradisjonell tastetrykkmakro. Det er et VBA-program, og forskjellen er at det ikke bare spiller inn tastetrykkene på nytt. Et VBA-program gir deg det samme sluttresultatet hvis mulig, men du kan også skrive sofistikerte systemer i VBA som etterlater enkle tastaturmakroer i støvet. Du kan for eksempel bruke Excel-funksjoner i Word ved å bruke VBA. Og du kan integrere VBA med andre systemer som databaser, nettet eller andre programvare.
Selv om VBA Macro Recorder er veldig nyttig for bare å lage enkle tastaturmakroer, programmerere har oppdaget at det er enda mer nyttig å gi dem en løpende start i mer sofistikerte programmer. Det er hva vi skal gjøre.
Start Microsoft Word 2007 med et tomt dokument og gjør deg klar til å skrive et program.
Utvikler-fanen i Word
Noe av det første du må gjøre for å skrive Visual Basic-programmet i Word 2007, er finn Visual Basic! Standardinnstillingen i Word 2007 er å ikke vise båndet som brukes. For å legge til Utvikler klikk først Kontor -knappen (logoen i øvre venstre hjørne) og klikk deretter Ordalternativer. Klikk Vis Utvikler-fanen i båndet og klikk deretter OK.
Når du klikker på Utvikler fanen, har du et helt nytt sett med verktøy som brukes til å skrive VBA-programmer. Vi kommer til å bruke VBA Macro Recorder for å lage ditt første program. (Hvis båndet med alle verktøyene dine forsvinner, kan det hende du vil høyreklikke på båndet og sørge for Minimer båndet er ikke sjekket.)
Klikk Spille inn makro. Gi makroen din navn: AboutVB1 ved å skrive det navnet i Makronavn tekstboks. Velg det gjeldende dokumentet som stedet for å lagre makroen, og klikk OK. Se eksemplet nedenfor.
(Merk: Hvis du velger Alle dokumenter (Normal.dotm) fra rullegardinmenyen, vil dette test VBA-programmet faktisk bli en del av Word selv fordi det da blir tilgjengelig for hvert dokument du oppretter i Word. Hvis du bare vil bruke en VBA-makro i et bestemt dokument, eller hvis du vil kunne sende den til noen andre, er det en bedre ide å lagre makroen som en del av dokumentet. Normal.dotm er standard, så du må endre den.)
Når makroopptakeren er slått på, skriver du inn teksten "Hallo verden." inn i Word-dokumentet ditt. (Musepekeren endres til et miniatyrbilde av en kassett for å vise at tastetrykk blir spilt inn.)
(Merk: Hello World kreves nesten for et "første program" fordi den aller første programmeringshåndboken for det første dataspråk "C" brukte den. Det har vært en tradisjon siden den gang.)
Klikk Stopp innspillingen. Lukk Word og lagre dokumentet ved å bruke navnet: AboutVB1.docm. Du må velge a Word-makroaktivert dokument fra Lagre som type fall ned.
Det er det! Du har nå skrevet et Word VBA-program. La oss se hvordan det ser ut!
Forstå hva et VBA-program er
Hvis du har lukket Word, åpner du det igjen og velger AboutVB1.docm filen du lagret i forrige leksjon. Hvis alt ble gjort riktig, bør du se et banner øverst i dokumentvinduet med en sikkerhetsadvarsel.
VBA og sikkerhet
VBA er en ekte programmeringsspråk. Det betyr at VBA kan gjøre omtrent alt du trenger det for å gjøre. Og det på sin side betyr at hvis du mottar et Word-dokument med en innebygd makro fra en 'dårlig fyr', kan makroen gjøre omtrent hva som helst også. Så Microsofts advarsel skal tas på alvor. På den andre siden, du skrev denne makroen, og alt det gjør er å skrive "Hello World" så det er ingen risiko her. Klikk på knappen for å aktivere makroer.
For å se hva makroopptakeren har laget (i tillegg til å gjøre det meste annet som involverer VBA), må du starte Visual Basic Editor. Det er et ikon for å gjøre det på venstre side av utviklerbåndet.
Legg først merke til venstre vindu. Dette kalles Project Explorer og det grupperer objekter på høyt nivå (vi skal snakke mer om dem) som er en del av Visual Basic-prosjektet ditt.
Da makroopptakeren ble startet, hadde du valget mellom Vanlig mal eller det gjeldende dokumentet som et sted for makroen din. Hvis du valgte Normal, vil deretter NewMacros modulen vil være en del av Vanlig grenen av Project Explorer-skjermen. (Du skulle velge det gjeldende dokumentet. Hvis du valgte Vanlig, slett dokumentet og gjenta de forrige instruksjonene.) Velg NewMacros under moduler i ditt nåværende prosjekt. Hvis det fremdeles ikke vises noe kodevindu, klikker du på Kode under Utsikt Meny.
Word-dokumentet som en VBA-container
Hvert Visual Basic-program må være i en slags fil 'container'. Når det gjelder Word 2007 VBA-makroer, er den beholderen et ('.docm') Word-dokument. Word VBA-programmer kan ikke kjøres uten Word, og du kan ikke opprette frittstående ('. Exe') Visual Basic-programmer som du kan med Visual Basic 6 eller Visual Basic .NET. Men det etterlater fortsatt en hel verden av ting du kan gjøre.
Det første programmet ditt er absolutt kort og søtt, men det vil tjene til å introdusere de viktigste funksjonene i VBA og Visual Basic Editor.
Programkilden vil normalt bestå av en serie underrutiner. Når du studerer til mer avansert programmering, vil du oppdage at andre ting kan være en del av programmet foruten subroutines.
Denne spesielle subrutinen heter AboutVB1. Subroutine-overskriften må være sammenkoblet med en Slutt sub på bunnen. Parentesen kan inneholde en parameterliste som består av verdier som sendes til subroutine. Ingenting blir gitt her, men de må være der i Under uttalelse uansett. Senere, når vi kjører makroen, vil vi se etter navnet AboutVB1.
Det er bare en faktisk programuttalelse i subrutinen:
Utvalg. TypeText Text: = "Hallo verden!"
Objekter, metoder og egenskaper
Denne uttalelsen inneholder de tre store:
- en gjenstand
- en metode
- en eiendom
Uttalelsen legger faktisk til teksten "Hello World." til innholdet i det gjeldende dokumentet.
Neste oppgave er å kjøre programmet vårt noen ganger. Akkurat som å kjøpe en bil, er det lurt å kjøre den rundt en stund til den føles litt komfortabel. Det gjør vi neste gang.
Programmer og dokumenter
Vi har vårt strålende og kompliserte system... bestående av ett programuttalelse... men nå vil vi kjøre den. Her er hva det handler om.
Det er ett konsept som kan læres her, som er veldig viktig, og det forvirrer ofte virkelig tidtakere: forskjellen mellom program og dokument. Dette konseptet er grunnleggende.
VBA-programmer må inngå i en vertsfil. I Word er verten dokumentet. I vårt eksempel er det det AboutVB1.docm. Programmet er faktisk lagret inne i dokumentet.
Hvis dette for eksempel var Excel, snakker vi om program og regneark. I Access, program og database. Selv i frittstående Visual Basic Windows-program ville vi ha en program og skjema.
(Merk: Det er en tendens i programmering å referere til alle containere på høyt nivå som et "dokument". Dette er spesielt tilfelle når XML... nok en ny teknologi... blir brukt. Ikke la det forvirre deg. Selv om det er en liten unøyaktighet, kan du tenke på at "dokumenter" er omtrent de samme som "filer".)
Det er... ummmmm... omtrent tre hovedmåter å kjøre VBA-makroen på.
- Du kan kjøre det fra Word-dokumentet.
(Merk: To underkategorier er å velge makroer fra Verktøy-menyen eller bare trykke Alt-F8. Hvis du har tilordnet makroen til en verktøylinje eller tastatursnarvei, er det en måte til.)) - Du kan kjøre den fra Editor ved å bruke Kjør-ikonet eller Kjør-menyen.
- Du kan enkelt gå gjennom programmet i feilsøkingsmodus.
Du bør prøve hver eneste av disse metodene bare for å bli komfortabel med Word / VBA-grensesnittet. Når du er ferdig, vil du ha et helt dokument fylt med repetisjoner av "Hello World!"
Det er ganske enkelt å kjøre programmet fra Word. Bare velg makroen etter å ha klikket på Makro under ikonet Utsikt fane.
For å kjøre den fra redigeringsprogrammet, åpner du først Visual Basic-redigeringsprogrammet og klikker deretter på Kjør-ikonet eller velger Kjør fra menyen. Her kan forskjellen mellom dokumentet og programmet bli forvirrende for noen. Hvis du har dokumentet minimert eller kanskje har vinduene dine ordnet slik at redaktøren dekker det, kan du klikke på Kjør-ikonet om og om igjen og ingenting ser ut til å skje. Men programmet kjører! Bytt til dokumentet igjen og se.
Enkelt å trå gjennom programmet er sannsynligvis den mest nyttige problemløsingsteknikken. Dette gjøres også fra Visual Basic-redaktøren. For å prøve dette, trykk F8 eller velg Gå inn i fra Debug Meny. Den første uttalelsen i programmet, the Under uttalelse, fremheves. Ved å trykke på F8 kjøres programuttalelsene én om gangen til programmet avsluttes. Du kan se nøyaktig når teksten er lagt til i dokumentet på denne måten.
Det er mange mer raffinerte feilsøkingsteknikker som 'Breakpoints', undersøke programobjekter i 'Umiddelbart vindu' og bruken av 'Watch Window'. Men foreløpig er det bare å være klar over at dette er en primær feilsøkingsteknikk du vil bruke som programmerer.
Objektorientert programmering
Neste leksjon handler om Objektorientert programmering.
"Whaaaattttt!" (Jeg hører deg stønn) "Jeg vil bare skrive programmer. Jeg meldte meg ikke på å være dataforsker! "
Frykt ikke! Det er to grunner til at dette er et flott grep.
For det første kan du i dagens programmeringsmiljø ganske enkelt ikke være en effektiv programmerer uten å forstå objektorienterte programmeringskonsepter. Til og med vårt veldig enkle "Line World" -program på én linje besto av et objekt, en metode og en eiendom. Etter min mening er ikke det å forstå objekter det største problemet problemet programmererne har. Så vi kommer til å konfrontere dyret rett foran!
For det andre kommer vi til å gjøre dette så smertefritt som mulig. Vi kommer ikke til å forvirre deg med en mengde datavitenskapssjargon.
Men rett etter det kommer vi til å hoppe tilbake til å skrive programmeringskode med en leksjon hvor vi utvikler en VBA-makro som du sannsynligvis kan bruke! Vi perfeksjonerer det programmet litt mer i neste leksjon og avslutter med å vise deg hvordan du kan begynne å bruke VBA med flere applikasjoner samtidig.