Welcome to Our Website

komma igång med VBA i Office

  • 08/14/2019
  • 25 minuter att läsa
    • o
    • R
    • l
    • m
    • o
    • +4

står du inför en repetitiv rengöring av femtio tabeller i Word? Vill du ha ett visst dokument för att fråga användaren om inmatning när den öppnas?, Har du svårt att räkna ut hur du får dina kontakter från Microsoft Outlook till ett Microsoft Excel-kalkylblad effektivt?

Du kan utföra dessa uppgifter och åstadkomma mycket mer genom att använda Visual Basic for Applications (VBA) för Office—ett enkelt men kraftfullt programmeringsspråk som du kan använda för att utöka Office-program.

den här artikeln är för erfarna Office-användare som vill lära sig om VBA och som vill ha lite insikt i hur programmering kan hjälpa dem att anpassa Office.

office suite of applications har en rik uppsättning funktioner., Det finns många olika sätt att författare, format och manipulera dokument, e-post, databaser, formulär, kalkylblad och presentationer. Den stora kraften i VBA programmering i Office är att nästan varje operation som du kan utföra med en mus, tangentbord, eller en dialogruta kan också göras med hjälp av VBA. Vidare, om det kan göras en gång med VBA, kan det göras lika enkelt hundra gånger. (I själva verket är automatiseringen av repetitiva uppgifter en av de vanligaste användningsområdena för VBA i Office.,)

utöver kraften i scripting VBA att påskynda varje dag uppgifter, kan du använda VBA för att lägga till nya funktioner till Office-program eller för att uppmana och interagera med användaren av dina dokument på ett sätt som är specifika för ditt företags behov. Du kan till exempel skriva en VBA-kod som visar ett popup-meddelande som påminner användarna om att spara ett dokument till en viss nätverksenhet första gången de försöker spara det.

den här artikeln utforskar några av de främsta orsakerna till att utnyttja kraften i VBA-programmering., Det utforskar VBA språk och Out-of-the-box verktyg som du kan använda för att arbeta med dina lösningar. Slutligen innehåller det några tips och sätt att undvika några vanliga programmerings frustrationer och felsteg.

Obs

intresserad av att utveckla lösningar som utökar Kontorsupplevelsen på flera plattformar? Kolla in den nya Office-tillägg modell. Office-tillägg har ett litet fotavtryck jämfört med VSTO-tillägg och lösningar, och du kan bygga dem genom att använda nästan vilken webbprogrammeringsteknik som helst, till exempel HTML5, JavaScript, CSS3 och XML.,

när du ska använda VBA och varför

det finns flera huvudsakliga skäl att överväga VBA-programmering i Office.

automatisering och upprepning

VBA är effektiv och effektiv när det gäller repetitiva lösningar på formatering eller korrigeringsproblem. Har du till exempel någonsin ändrat stilen på stycket högst upp på varje sida i Word? Har du någonsin varit tvungen att formatera om flera tabeller som klistras in från Excel till ett Word-dokument eller en Outlook-e-post? Har du någonsin haft att göra samma förändring i flera Outlook-kontakter?,

om du har en förändring som du måste göra mer än tio eller tjugo gånger kan det vara värt att automatisera det med VBA. Om det är en förändring som du måste göra hundratals gånger, är det verkligen värt att överväga. Nästan alla formatering eller redigering förändring som du kan göra för hand, kan göras i VBA.

tillägg till användarinteraktion

det finns tillfällen när du vill uppmuntra eller tvinga användare att interagera med Office-programmet eller dokumentet på ett visst sätt som inte ingår i standardapplikationen., Du kanske till exempel vill uppmana användarna att vidta några särskilda åtgärder när de öppnar, sparar eller skriver ut ett dokument.

interaktion mellan Office-program

behöver du kopiera alla dina kontakter från Outlook till Word och sedan formatera dem på något speciellt sätt? Eller behöver du flytta data från Excel till en uppsättning PowerPoint-bilder? Ibland gör enkel kopia och klistra inte vad du vill att den ska göra, eller det är för långsamt., Du kan använda VBA-programmering för att interagera med detaljerna i två eller flera Office-program samtidigt och sedan ändra innehållet i ett program baserat på innehållet i en annan.

gör saker på ett annat sätt

VBA-programmering är en kraftfull lösning, men det är inte alltid det optimala tillvägagångssättet. Ibland är det vettigt att använda andra sätt att uppnå dina mål.

den kritiska frågan att ställa är om det finns ett enklare sätt. Innan du börjar ett VBA-projekt, överväga de inbyggda verktygen och standardfunktionerna., Om du till exempel har en tidskrävande redigerings-eller layoutuppgift kan du överväga att använda formatmallar eller acceleratornycklar för att lösa problemet. Kan du utföra uppgiften en gång och sedan använda CTRL + Y (gör om) för att upprepa det? Kan du skapa ett nytt dokument med rätt format eller mall och sedan kopiera innehållet till det nya dokumentet?

Office-program är kraftfulla; lösningen som du behöver kanske redan finns där. Ta dig tid att lära dig mer om Office innan du hoppar in i programmering.

innan du börjar ett VBA-projekt, se till att du har tid att arbeta med VBA., Programmering kräver fokus och kan vara oförutsägbar. Särskilt som nybörjare, vänd dig aldrig till programmering om du inte har tid att arbeta noggrant. Att försöka skriva ett ”snabbt skript” för att lösa ett problem när en deadline vävstolar kan resultera i en mycket stressande situation. Om du har bråttom, kanske du vill använda konventionella metoder, även om de är monotona och repetitiva.

VBA programmering 101

använda kod för att göra program gör saker

Du kanske tror att skriva kod är mystisk eller svår, men de grundläggande principerna använder varje dag resonemang och är ganska tillgängliga., Microsoft Office-program skapas på ett sådant sätt att de exponerar saker som kallas objekt som kan ta emot instruktioner, på ungefär samma sätt som en telefon är utformad med knappar som du använder för att interagera med telefonen. När du trycker på en knapp känner telefonen igen instruktionen och innehåller motsvarande nummer i den sekvens du ringer. I programmeringen interagerar du med programmet genom att skicka instruktioner till olika objekt i programmet. Dessa objekt är expansiva, men de har sina gränser., De kan bara göra vad de är utformade för att göra, och de kommer bara att göra vad du instruerar dem att göra.

tänk till exempel på användaren som öppnar ett dokument i Word, gör några ändringar, sparar dokumentet och stänger sedan det. I VBA-programmeringsvärlden exponerar Word ett dokumentobjekt. Genom att använda VBA-kod kan du instruera Dokumentobjektet att göra saker som Öppna, Spara eller stänga.

i följande avsnitt beskrivs hur objekt organiseras och beskrivs.,

objektmodellen

Utvecklare organiserar programmeringsobjekt i en hierarki, och den hierarkin kallas objektmodellen för programmet. Word har till exempel ett Applikationsobjekt på högsta nivå som innehåller ett dokumentobjekt. Dokumentobjektet innehåller Styckeobjekt och så vidare. Objektmodeller speglar ungefär vad du ser i användargränssnittet. De är en konceptuell karta över ansökan och dess möjligheter.

definitionen av ett objekt kallas en klass, så du kan se dessa två termer som används omväxlande., Tekniskt sett är en klass den beskrivning eller mall som används för att skapa eller instantiera ett objekt.

När ett objekt finns kan du manipulera det genom att ställa in dess egenskaper och ringa dess metoder. Om du tänker på objektet som ett substantiv är egenskaperna de adjektiv som beskriver substantivet och metoderna är de verb som animerar substantivet. Att ändra en egenskap ändrar objektets utseende eller beteende. Att anropa en av objektmetoderna gör att objektet utför någon åtgärd.,

VBA-koden i den här artikeln körs mot ett öppet Office-program där många av de objekt som koden manipulerar redan är igång; till exempel själva programmet, kalkylbladet i Excel, dokumentet i Word, presentationen i PowerPoint, Utforskaren och Mappobjekten i Outlook. När du känner till objektmodellens grundläggande layout och några viktiga egenskaper hos programmet som ger tillgång till sitt nuvarande tillstånd kan du börja utöka och manipulera det Office-programmet med VBA i Office.,

metoder

i Word kan du till exempel ändra egenskaperna och åberopa metoderna för det aktuella Word-dokumentet genom att använda egenskapen ActiveDocument för applikationsobjektet. Den här egenskapen ActiveDocument returnerar en referens till det dokumentobjekt som för närvarande är aktivt i Word-programmet. ”Returnerar en referens till ”betyder” ger dig tillgång till.”

följande kod gör exakt vad den säger; Det vill säga det sparar det aktiva dokumentet i programmet.,

Application.ActiveDocument.Save

Läs koden från vänster till höger, ”i det här programmet, med dokumentet som refereras av ActiveDocument, åberopa Sparmetoden.”Var medveten om att spara är den enklaste formen av metod; det kräver inga detaljerade instruktioner från dig. Du instruerar ett dokumentobjekt att spara och det kräver ingen mer inmatning från dig.

om en metod kräver mer information kallas dessa detaljer parametrar. Följande kod kör SaveAs-metoden, vilket kräver ett nytt namn för filen.,

Application.ActiveDocument.SaveAs ("New Document Name.docx")

värden som anges inom parentes efter att ett metodnamn är parametrarna. Här är det nya namnet på filen en parameter för SaveAs-metoden.

egenskaper

du använder samma syntax för att ställa in en egenskap som du använder för att läsa en egenskap. Följande kod utför en metod för att välja cell A1 i Excel och sedan ställa in en egenskap för att sätta något i den cellen.

 Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"

den första utmaningen i VBA-programmering är att få en känsla för objektmodellen för varje kontorsprogram och att läsa objektet, metoden och egenskapen syntax., Objektmodellerna är likartade i alla kontorsapplikationer, men var och en är specifik för den typ av dokument och föremål som den manipulerar.

i den första raden i kodavsnittet finns applikationsobjektet, Excel den här gången och sedan ActiveSheet, som ger tillgång till det aktiva kalkylbladet. Efter det är en term som inte är lika bekant, intervall, vilket betyder ” definiera ett antal celler på detta sätt.”Koden instruerar Range att skapa sig med bara A1 som sin definierade uppsättning celler. Med andra ord definierar den första raden av kod ett objekt, intervallet och kör en metod mot den för att välja den., Resultatet lagras automatiskt i en annan egenskap i programmet kallas val.

den andra raden av kod anger egenskapen värde för markeringen till texten ”Hello World”, och det värdet visas i cell A1.

den enklaste VBA-koden som du skriver kan helt enkelt få tillgång till objekt i Office-programmet som du arbetar med och ställa in egenskaper. Du kan till exempel få tillgång till raderna i en tabell i Word och ändra formateringen i ditt VBA-skript.,

det låter enkelt, men det kan vara otroligt användbart; när du kan skriva den koden kan du utnyttja all programmeringskraft för att göra samma ändringar i flera tabeller eller dokument, eller göra dem enligt någon logik eller tillstånd. För en dator är det inte annorlunda att göra 1000 förändringar än att göra 10, så det finns en stor skala här med större dokument och problem, och det är där VBA verkligen kan skina och spara tid.,

makron och Visual Basic Editor

Nu när du vet något om hur Office-program exponerar sina objektmodeller, är du förmodligen angelägen om att försöka ringa objektmetoder, ställa in objektegenskaper och svara på objekthändelser. För att göra det måste du skriva din kod på ett ställe och på ett sätt som Office kan förstå; vanligtvis genom att använda Visual Basic Editor. Även om det är installerat som standard vet många användare inte att det är ens tillgängligt tills det är aktiverat på bandet.

alla kontorsprogram använder bandet., En flik i menyfliksområdet är fliken Utvecklare, där du kommer åt Visual Basic Editor och andra utvecklingsverktyg. Eftersom Office inte visar fliken Utvecklare som standard måste du aktivera den genom att använda följande procedur:

för att aktivera fliken Utvecklare

  1. på fliken Arkiv väljer du alternativ för att öppna dialogrutan Alternativ.

  2. välj Anpassa menyfliksområdet till vänster i dialogrutan.

  3. Under Välj kommandon från till vänster i dialogrutan, Välj populära kommandon.,

  4. under Anpassa menyfliksområdet till höger i dialogrutan väljer du huvudflikar i listrutan och markerar sedan kryssrutan Utvecklare.

  5. Välj OK.

Obs

i Office 2007 visade du fliken Utvecklare genom att välja Office-knappen, välja alternativ och sedan välja fliken Visa utvecklare i menyfliksområdet i den populära kategorin i dialogrutan Alternativ.

När du har aktiverat fliken Utvecklare är det lätt att hitta knapparna Visual Basic och Macros.

Figur 1., Knappar på fliken Utvecklare

säkerhetsproblem

För att skydda Office-användare mot virus och farlig makrokod kan du inte spara makrokod i ett Standardkontorsdokument som använder ett standardfiltillägg. Istället måste du spara koden i en fil med en speciell förlängning. Du kan till exempel inte spara makron i ett vanligt Word-dokument med en .docx-tillägg; istället måste du använda ett speciellt Makroaktiverat Word-dokument med en .docm förlängning.

När du öppnar en .,docm-fil, Office security kan fortfarande förhindra makron i dokumentet från att köras, med eller utan att berätta. Undersök inställningarna och alternativen i Trust Center på alla kontorsprogram. Standardinställningen inaktiverar Makro från att köras, men varnar dig för att makron har inaktiverats och ger Dig möjlighet att slå på dem igen för det dokumentet.

Du kan ange specifika mappar där makron kan köras genom att skapa betrodda platser, betrodda dokument eller betrodda utgivare., Det mest bärbara alternativet är att använda betrodda utgivare, som fungerar med digitalt signerade dokument som du distribuerar. Mer information om säkerhetsinställningarna i ett visst Office-program öppnar du dialogrutan Alternativ, väljer Trust Center och väljer sedan Trust Center-inställningar.

Obs

vissa kontorsprogram, som Outlook, sparar makron som standard i en huvudmall på din lokala dator., Även om den strategin minskar de lokala säkerhetsproblemen på din egen dator när du kör dina egna makron, krävs det en distributionsstrategi om du vill distribuera ditt makro.

spela in ett makro

När du väljer makroknappen på fliken Utvecklare öppnas dialogrutan makron, som ger dig tillgång till VBA-subrutiner eller makron som du kan komma åt från ett visst dokument eller program. Knappen Visual Basic öppnar Visual Basic Editor, där du skapar och redigerar VBA-kod.,

en annan knapp på fliken Utvecklare i Word och Excel är Postmakroknappen, som automatiskt genererar VBA-kod som kan reproducera de åtgärder du utför i programmet. Record Macro är ett fantastiskt verktyg som du kan använda för att lära dig mer om VBA. Att läsa den genererade koden kan ge dig inblick i VBA och ge en stabil bro mellan dina kunskaper om Office som användare och dina kunskaper som programmerare., Det enda förbehållet är att den genererade koden kan vara förvirrande eftersom makroredigeraren måste göra vissa antaganden om dina avsikter, och dessa antaganden är inte nödvändigtvis korrekta.

för att spela in ett makro

  1. öppna Excel till en ny arbetsbok och välj fliken Utvecklare i menyfliksområdet. Välj Spela in makro och acceptera alla standardinställningar i dialogrutan Spela in Makro, inklusive Macro1 som namnet på makrot och den här arbetsboken som platsen.

  2. Välj OK för att börja spela in makrot. Observera hur knapptexten ändras för att stoppa inspelningen., Välj den knappen så fort du slutför de åtgärder som du vill spela in.

  3. välj cell B1 och skriv programmerarens klassiska första sträng: Hello World. Sluta skriva och titta på Stoppinspelningsknappen; det är gråtonat eftersom Excel väntar på att du ska sluta skriva värdet i cellen.

  4. välj cell B2 för att slutföra åtgärden i cell B1 och välj sedan stoppa inspelningen.

  5. Välj makron på fliken Utvecklare, välj Macro1 om det inte är markerat och välj sedan Redigera för att visa koden från Macro1 i Visual Basic Editor.,

Figur 2. Makrokod i Visual Basic Editor

titta på koden

makrot som du skapade ska se ut som följande kod.

Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub

var medveten om likheterna med det tidigare kodavsnittet som markerade text i cell A1 och skillnaderna. I denna kod väljs cell B1, och sedan appliceras strängen ”Hello World” på cellen som har aktiverats. Citaten runt texten anger ett strängvärde i motsats till ett numeriskt värde.,

Kom ihåg hur du valde cell B2 för att visa Stoppinspelningsknappen igen? Den åtgärden visas också som en kodlinje. Makroinspelaren registrerar varje tangenttryckning.

kodraderna som börjar med en apostrof och färgad grön av redaktören är kommentarer som förklarar koden eller påminner dig och andra programmerare syftet med koden. VBA ignorerar någon linje, eller del av en linje, som börjar med ett enda citat. Skriva tydliga och lämpliga kommentarer i din kod är ett viktigt ämne, men att diskussionen är utanför ramen för denna artikel., Efterföljande hänvisningar till denna kod i artikeln innehåller inte dessa fyra kommentarrader.

När makroinspelaren genererar koden använder den en komplex algoritm för att bestämma metoderna och egenskaperna som du avsåg. Om du inte känner igen en viss egendom finns det många resurser som hjälper dig. Till exempel, i makrot som du spelade in, genererade makroinspelaren kod som refererar till egenskapen FormulaR1C1. Vet du inte vad det betyder?

notera

tänk på att applikationsobjektet är underförstått i alla VBA-makron., Koden som du spelade in fungerar med programmet. i början av varje rad.

använda Utvecklarhjälp

Välj FormulaR1C1 i det inspelade makrot och tryck på F1. Hjälpsystemet kör en snabb sökning, bestämmer att lämpliga ämnen finns i Excel-Utvecklarsektionen i Excel-hjälpen och listar FormulaR1C1-egenskapen. Du kan välja länken för att läsa mer om fastigheten, men innan du gör det, var medveten om Excel-Objektmodellreferenslänken nära botten av fönstret., Välj länken för att visa en lång lista över objekt som Excel använder i sin objektmodell för att beskriva kalkylbladen och deras komponenter.

Välj någon av dem för att se egenskaper och metoder som gäller för det specifika objektet, tillsammans med korsreferenser till olika relaterade alternativ. Många hjälpposter har också korta kodexempel som kan hjälpa dig. Du kan till exempel följa länkarna i objektet gränser för att se hur du ställer in en gräns i VBA.

Worksheets(1).Range("A1").Borders.LineStyle = xlDouble

redigera koden

Gränskoden ser annorlunda ut än det inspelade makrot., En sak som kan vara förvirrande med en objektmodell är att det finns mer än ett sätt att ta itu med ett visst objekt, cell A1 i det här exemplet.

Ibland är det bästa sättet att lära sig programmering att göra mindre ändringar i någon arbetskod och se vad som händer som ett resultat. Prova nu. Öppna Macro1 i Visual Basic Editor och ändra koden till följande.

Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub

tips

använd kopiera och klistra in så mycket som möjligt när du arbetar med kod för att undvika att skriva fel.,

du behöver inte spara koden för att prova det, så återgå till Excel-dokumentet, välj makron på fliken Utvecklare, välj Macro1 och välj sedan kör. Cell A1 innehåller nu texten Wow! och har en dubbelgräns runt den.

Figur 3. Resultat av ditt första Makro

Du kombinerade bara makroinspelning, läser objektmodelldokumentationen och enkel programmering för att göra ett VBA-program som gör något. Grattis!

fungerade inte? Läs vidare för felsökning förslag i VBA.,

Programmeringstips och tricks

börja med exempel

VBA-samhället är mycket stort; en sökning på webben kan nästan alltid ge ett exempel på VBA-kod som gör något som liknar vad du vill göra. Om du inte kan hitta ett bra exempel, försök att bryta ner uppgiften i mindre enheter och söka på var och en av dem, eller försök att tänka på ett vanligare men liknande problem. Från och med ett exempel kan du spara timmar av tid.

det betyder inte att gratis och väl genomtänkt kod finns på webben och väntar på att du ska komma med., Faktum är att en del av koden som du hittar kan ha buggar eller misstag. Tanken är att de exempel Du hittar online eller i VBA dokumentation ger dig ett försprång. Kom ihåg att inlärningsprogrammering kräver tid och tanke. Innan du får en stor brådska att använda en annan lösning för att lösa ditt problem, fråga dig själv om VBA är rätt val för detta problem.

gör ett enklare problem

programmering kan bli komplexa snabbt. Det är viktigt, särskilt som nybörjare, att du bryter problemet ner till de minsta möjliga logiska enheterna, skriv sedan och testa varje bit isolerat., Om du har för mycket kod framför dig och du blir förvirrad eller rörig, stoppa och ställa problemet åt sidan. När du kommer tillbaka till problemet, kopiera ut en liten bit av problemet till en ny modul, lösa den delen, få koden att fungera och testa den för att säkerställa att den fungerar. Gå sedan vidare till nästa del.

fel och felsökning

det finns två huvudtyper av programmeringsfel: syntaxfel, som bryter mot programmeringsspråkets grammatiska regler och körtidsfel, som ser syntaktiskt korrekta ut, men misslyckas när VBA försöker köra koden.,

även om de kan vara frustrerande att fixa, syntaxfel är lätta att fånga; Visual Basic Editor Piper och blinkar på dig om du skriver ett syntaxfel i din kod.

strängvärdena måste t.ex. omges av dubbla citattecken i VBA. För att ta reda på vad som händer när du använder enstaka citat istället, återgå till Visual Basic Editor och ersätt ” Wow!”sträng i kodexemplet med” Wow!”(det vill säga ordet Wow bifogat i enstaka citat). Om du väljer nästa rad reagerar Visual Basic Editor., Felet ”kompilera fel: förväntat: uttryck” är inte så användbart, men raden som genererar felet blir röd för att berätta att du har ett syntaxfel i den raden och som ett resultat kommer det här programmet inte att köras.

Välj OK och ändra texten tillbaka till”Wow!”.

Runtime-fel är svårare att fånga eftersom programmeringssyntaxen ser korrekt ut, men koden misslyckas när VBA försöker utföra den.,

Öppna till exempel Visual Basic-redigeraren och ändra egenskapsnamnet värde till ValueX i makrot, genom att avsiktligt införa ett runtime-fel eftersom Områdesobjektet inte har en egenskap som heter ValueX. Gå tillbaka till Excel-dokumentet, öppna dialogrutan makron och kör Macro1 igen. Du bör se en Visual Basic-meddelanderuta som förklarar run-time-felet med texten, ”objektet stöder inte den här egenskapen för metoden.”Även om texten är tydlig, välj Debug för att ta reda på mer.,

När du återvänder till Visual Basic Editor, är det i ett speciellt felsökningsläge som använder en gul markering för att visa dig raden av kod som misslyckades. Som förväntat markeras linjen som inkluderar ValueX-egenskapen.

Du kan göra ändringar i VBA-kod som körs, så ändra ValueX tillbaka till värde och välj den lilla gröna uppspelningsknappen under Debug-menyn. Programmet ska köras normalt igen.

det är en bra idé att lära sig att använda debugger mer medvetet för längre, mer komplexa program., Lär dig åtminstone hur du ställer in brytpunkter för att stoppa exekveringen vid en punkt där du vill ta en titt på koden, hur du lägger till klockor för att se värdena för olika variabler och egenskaper när koden körs och hur du går igenom kodlinjen för rad. Dessa alternativ är alla tillgängliga i Debug-menyn och seriösa debugger-användare memorera vanligtvis de medföljande kortkommandon.,

använda referensmaterial väl

för att öppna Utvecklarreferensen som är inbyggd i Kontorshjälp, öppna hjälpreferensen från alla kontorsprogram genom att välja frågetecknet i bandet eller genom att trycka på F1. Välj sedan rullgardinsmenyn till höger om sökknappen för att filtrera innehållet. Välj Utvecklare Referens. Om du inte ser innehållsförteckningen i den vänstra panelen väljer du den lilla bokikonen för att öppna den och utökar sedan Objektmodellreferensen därifrån.

Figur 5., Filtrering av utvecklarhjälp gäller för alla Office-program

tiden som används för att bläddra i Objektmodellreferensen lönar sig. När du förstår grunderna i VBA-syntax och objektmodellen för Office-programmet som du arbetar med, går du från gissningar till metodisk programmering.

självklart är Microsoft Office Developer Center en utmärkt portal för artiklar, tips och diskussionsgruppinformation.,

söka forum och grupper

alla programmerare fastnar ibland, även efter att ha läst varje referensartikel kan de hitta och förlora sömn på natten och tänka på olika sätt att lösa ett problem. Lyckligtvis har Internet främjat en gemenskap av utvecklare som hjälper varandra att lösa programmeringsproblem.

varje sökning på webben efter ”office developer forum” avslöjar flera diskussionsgrupper. Du kan söka på ”office development” eller en beskrivning av ditt problem att upptäcka forum, blogginlägg och artiklar samt.,

om du har gjort allt du kan för att lösa ett problem, var inte rädd för att skicka din fråga till ett utvecklarforum. Dessa forum välkomnar inlägg från nyare programmerare och många av de erfarna utvecklarna är glada att hjälpa.

Följande är några punkter av etikett att följa när du lägger till ett utvecklarforum:

  • innan du lägger upp, titta på webbplatsen för en FAQ eller för riktlinjer som medlemmar vill att du ska följa. Se till att du lägger upp innehåll som överensstämmer med dessa riktlinjer och i rätt avsnitt av forumet.,

  • inkludera ett tydligt och komplett kodexempel och överväg att redigera din kod för att klargöra den för andra om den ingår i en längre kodsektion.

  • beskriv ditt problem tydligt och koncist och sammanfatta eventuella åtgärder som du har vidtagit för att lösa problemet. Ta dig tid att skriva ditt inlägg så bra du kan, speciellt om du är flustered eller har bråttom. Presentera situationen på ett sätt som är meningsfullt för läsarna första gången som de läser problemförklaringen.

  • var artig och uttrycka din uppskattning.,

gå vidare med programmering

Även om den här artikeln är kort och bara repor ytan av VBA och programmering, är det förhoppningsvis nog att komma igång.

det här avsnittet diskuterar kortfattat några fler viktiga ämnen.

variabler

i de enkla exemplen i den här artikeln manipulerade du objekt som programmet redan hade skapat. Du kanske vill skapa egna objekt för att lagra värden eller referenser till andra objekt för tillfällig användning i din ansökan. Dessa kallas variabler.,

om du vill använda en variabel i VBA måste du tala om för VBA vilken typ av objekt variabeln representerar genom att använda Dim-satsen. Du ställer sedan in dess värde och använder den för att ställa in andra variabler eller egenskaper.

 Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable

förgrening och looping

de enkla programmen i den här artikeln utför en rad åt gången, från toppen ner. Den verkliga kraften i programmering kommer från de alternativ som du måste bestämma vilka kodlinjer som ska köras, baserat på ett eller flera villkor som du anger. Du kan förlänga dessa funktioner ännu längre när du kan upprepa en operation många gånger., Till exempel utökar följande kod Macro1.

skriv eller klistra in koden i Visual Basic Editor och kör den sedan. Följ anvisningarna i meddelanderutan som visas och ändra texten i cell A1 från Wow! Ja! och kör det igen för att se kraften i looping. Detta kodavsnitt visar variabler, förgrening och looping. Läs det noggrant när du ser det i aktion och försök att bestämma vad som händer när varje rad körs.

alla mina Office-program: exempelkod

Här är några skript att prova; var och en löser ett verkligt Kontorsproblem.,

skapa ett e-postmeddelande i Outlook

Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub

tänk på att det finns situationer där du kanske vill automatisera e-post i Outlook; Du kan också använda mallar.

ta bort tomma rader i ett Excel-kalkylblad

tänk på att du kan välja en kolumn med celler och köra detta makro för att ta bort alla rader i den markerade kolumnen som har en tom cell.

ta bort tomma textrutor 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

tänk på att denna kod loopar genom alla bilder och tar bort alla textrutor som inte har någon text., Räkna variabeln minskningar i stället för steg eftersom varje gång koden raderar ett objekt, det tar bort det objektet från samlingen, vilket minskar antalet.

kopiera en kontakt från Outlook till Word

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

tänk på att den här koden kopierar den för närvarande öppna kontakten i Outlook i det öppna Word-dokumentet. Denna kod fungerar bara om det finns en kontakt som för närvarande är öppen för inspektion i Outlook.

Support och feedback

har du frågor eller feedback om Office VBA eller den här dokumentationen?, Se Office VBA support och feedback för vägledning om hur du kan få stöd och ge feedback.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *