Tio tips för kodning av Excel VBA-makron

Tio allmänna förslag för att göra kodning av Excel VBA snabbare och enklare. Dessa tips är baserade på Excel 2010 (men de fungerar i nästan alla versioner) och många inspirerades av O'Reilly-boken "Excel 2010 - The Missing Manual" av Matthew MacDonald.

1 - Testa alltid dina makron i ett kalkylblad som kastas bort, vanligtvis en kopia av en som den är utformad för att fungera med. Ångra fungerar inte med makron, så om du kodar ett makro som viker, spindlar och lemlestar ditt kalkylblad är du lycklig om du inte har följt detta tips.

2 - Att använda genvägstangenter kan vara farligt eftersom Excel inte varnar dig om du väljer en genvägsknapp som Excel redan använder. Om detta händer använder Excel kortkommandot för makro, inte den inbyggda genvägsknappen. Tänk på hur förvånad din chef kommer att bli när han laddar ditt makro och sedan lägger Ctrl-C till ett slumpmässigt antal till halva cellerna i sitt kalkylblad.

Matthew MacDonald gör detta förslag i "Excel 2010 - The Missing Manual."

Här är några vanliga tangentkombinationer som du aldrig ska tilldela makrogenvägar för att människor använder dem för ofta:

  • Ctrl + S (Spara)
  • Ctrl + P (Skriv ut)
  • Ctrl + O (öppen)
  • Ctrl + N (Ny)
  • Ctrl + X (utgång)
  • Ctrl + Z (Ångra)
  • Ctrl + Y (Gör om / upprepa)
  • Ctrl + C (kopia)
  • Ctrl + X (Cut)
  • Ctrl + V (klistra in)

För att undvika problem, använd alltid Ctrl + Shift + bokstavs makroknappkombinationer, eftersom dessa kombinationer är mycket mindre vanliga än korttangenterna Ctrl + bokstav. Och om du är osäker, tilldela inte en genvägsknapp när du skapar ett nytt, otestat makro.

3 - Kommer du inte ihåg Alt-F8 (standardmakrogenvägen)? Betyder namnen ingenting för dig? Eftersom Excel kommer att göra makron i alla öppnade arbetsböcker tillgängliga för alla andra arbetsböcker som för närvarande är öppna, är det enkla sättet att bygga ditt eget makrobibliotek med alla dina makron i en separat arbetsbok. Öppna arbetsboken tillsammans med dina andra kalkylblad. Som Matthew uttrycker det, "Föreställ dig att du redigerar en arbetsbok med namnet SalesReport.xlsx, och du öppnar en annan arbetsbok med namnet MyMacroCollection.xlsm, som innehåller några användbara makron. Du kan använda makronen i MyMacroCollection.xlsm med SalesReport.xlsx utan ett problem. " Matthew säger att denna design gör det enkelt att dela och återanvända makron mellan arbetsböcker (och mellan olika personer).

4 - Och överväga att lägga till knappar för att länka till makron i kalkylbladet som innehåller ditt makrobibliotek. Du kan ordna knapparna i alla funktionella grupperingar som är vettiga för dig och lägga till text i kalkylbladet för att förklara vad de gör. Du undrar aldrig vad en kryptiskt namngiven makro faktiskt gör igen.

5 - Microsofts nya makrosäkerhetsarkitektur har förbättrats mycket, men det är ännu bekvämare att berätta för Excel att lita på filerna i vissa mappar på din dator (eller på andra datorer). Välj en specifik mapp på din hårddisk som en betrodd plats. Om du öppnar en arbetsbok som är lagrad på den här platsen litar den automatiskt på.

6 - När du kodar ett makro ska du inte försöka bygga cellval i makroen. Antag istället att cellerna som makroen kommer att använda har förvalts. Det är lätt för dig att dra musen över cellerna för att välja dem. Att koda ett makro som är tillräckligt flexibelt för att göra samma sak är troligtvis fullt av buggar och svårt att programmera. Om du vill programmera något kan du försöka ta reda på hur du skriver valideringskod för att kontrollera om ett lämpligt val har gjorts i makro istället.

7 - Du kanske tror att Excel kör ett makro mot arbetsboken som innehåller makrokoden, men detta är inte alltid sant. Excel kör makro i aktiv arbetsbok. Det är den arbetsbok som du tittade på senast. Som Matthew förklarar det, "Om du har två arbetsböcker öppna och du använder Windows-aktivitetsfältet för att växla till den andra arbetsboken och sedan tillbaka till Visual Basic-redigeraren kör Excel makro på den andra arbetsboken."

8 - Matthew föreslår att "För enklare makrokodning, försök att ordna dina fönster så att du kan se Excel-fönstret och Visual Basic-redigeringsfönstret samtidigt, sida vid sida." Men Excel kommer inte att göra det (Arrangera alla på Visa-menyn ordnar bara arbetsböckerna. Visual Basic anses vara ett annat applikationsfönster av Excel.) Men Windows kommer. I Vista, stäng alla utom de två du vill ordna och högerklicka på Aktivitetsfältet; välj "Visa Windows sida vid sida". I Windows 7 använder du "Snap" -funktionen. (Sök online för "Windows 7-funktioner Snap" för instruktioner.)

9 - Matthews topptips: "Många programmerare hittar långa promenader på stranden eller guzzling av en kanna Mountain Dew som ett användbart sätt att rensa huvudet."

Och naturligtvis mamman till alla VBA-tips:

10 - Det första du försöker när du inte kan tänka på de uttalanden eller nyckelord som du behöver i din programkod är att slå på makroinspelaren och göra en hel del operationer som verkar vara liknande. Undersök sedan den genererade koden. Det kommer inte alltid att peka dig på rätt sak, men det gör det ofta. På ett minimum kommer det att ge dig en plats att börja titta på.

Källa

MacDonald, Matthew. "Excel 2010: Den saknade manualen." 1 utgåva, O'Reilly Media, 4 juli 2010.