Skriv ett nytt inlägg! Aktuellt just nu (5) Senaste inläggen

Datorköp Hårdvara Program för PC Program för MAC Annonsprogram / Virus Windows XP, 7 och 8.x Windows 10 01. Internet 02. Microsoft Office 03. Operativsystem 08. Tillbehör 09. Spel 10. Nätverk & Brandväggar 11. Fildelning 12. Säljes/köpes 13. Övrigt 14. Off-topic Webbläsare Undersökningar/kluring Varningar För sajtvärd och medarbetare
Microsoft Office

VBA-programmerarens 10 budord

2006-03-10 00:00 #0 av: johan

När du programmerar VBA för att göra makron i Excel eller mallar i Word finns det många fallgropar du kan hamna i. Det värsta är att det oftast är du själv som gräver gropen. Med dessa 10 budorden lär du dig undvika att trilla dit.

1. Alla kan skriva kod som en dator förstår - få kan skriva kod som en människa förstår

Man behöver inte många timmar för att lära sig göra ett makro som får datorn åstadkomma något. De flesta kan lära sig VBA ganska snabbt genom att spela in makron, se hur det blev och ändra lite för hand.

Nackdelen med inspelade makron är dock att man får massor med onödig kod som bara göra kod kladdig och konstig. Ska du göra ett seriöst projekt som ska fungera en längre tid kräver det att du har strukturerad kod som är lätt att ändra och underhålla. Det är inte bara datorn som behöver förstå din kod. Även du själv behöver förstå den när du tittar på den om tre veckor.

2. Massor att deklarera

Alla variabler ska deklareras med rätt typ. Detta gör du med kommandot Option Explicit högst upp i kodfilen. Detta gör att du aldrig kommer slita ditt hår över små dumma stavfel som att du på ett ställe tilldelat variabeln intTotal = 5 och på ett annat ställe läser ut värder från variabeln intTotalt. Om du har deklarerat variabeln så kommer den odeklarerade inte komma igenom kontrollen. Så här deklarerar du en variabel:

Sub MySub()

    Dim intTotal As Integer

    ' Other code

End Sub

Något du får på köpet är Intellisense. Du kan börja skriva intTo och trycka Ctrl+Mellanslag så fyller editorn själv på med resten.

3. Det straffar sig alltid att vara lat

Allt som du upptäcker att du använder mer än en gång ska ligga i en egen Sub, Function eller global variabel/konstant. Behöver du återanvända en gång kommer du säkert behöva återanvända flera gånger. Det samma gäller konstanta värden och texter.

Det är roligare att ha ett ställe att ändra på än hundra ställen att ändra samma sak och jag kan garantera att du bara kommer att hitta 97 av dem och sedan sliter du ditt hår igen för att du inte förstår varför koden inte fungerar.

4. Allt som kan ändras kommer ändras

Hårdkoda inte in värden i koden. Använd konstanter eller funktioner istället. Säg t ex att du gjort ett Excel-makro som ska läsa igenom alla rader i en fil och göra något smart. I indatafilen du läser från börjar tabellen på rad 6. Just nu. Har du hårdkodat in radnumret sex på massor av ställen i koden sitter du där och sliter ditt hår för att hitta alla. Hade du istället gjort en konstant som hette STARTROW = 6 och använt konstanten istället behöver du bara ändra på ett ställe och vara säker på att det blir rätt över allt.

En sak man kan vara säker på när man är konsult är att förutsättningarna kommer förändras hela tiden och då vill du inte sitta med fötterna i cement. Du vill kunna göra dig snabbt och det betyder ha enkel kod och få ställen att ändra på.

5. Kod har inget tangentbord och ingen mus

När du spelar in makron i Word, Excel eller PowerPoint spelas varje musklick och varje tangentnedslag in. För att kopiera ett värde från en cell till en annan i Excel skulle den inspelade koden bli ungefär så här:

Sub KopieraVarde()

    Range("B4").

Anmäl
2006-03-16 20:08 #1 av: Niklas

:-) Kul och bra artikel!

Vänliga hälsningar

Niklas

Vänliga hälsningar, Niklas
» Besök Apple Watch iFokus.

Anmäl

Bli medlem på iFokus

För att kunna delta i diskussionen måste du bli medlem på iFokus. Det går snabbt, enkelt, och kostar ingenting. Medlemskapet ger dig tillgång till över 300 sajter.