Etter at du har ferdighetene i VBA-språket, kan du skrive nye makroer fra bunnen av i Visual Basic Editor i stedet for å bare redigere de du tidligere har registrert i regnearket ved å bruke Excels makroopptaker. Når du oppretter en makro fra bunnen av i Visual Basic Editor, må du følge disse generelle trinnene:
Klikk på navnet på VBA-prosjektet i Project Explorer-vinduet der du vil legge til den nye makroen.
Hvis du vil skrive en makro bare for gjeldende arbeidsbok, klikker du på VBAProject-funksjonen som inneholder filnavnet i parentes, som i VBAProject (Mitt regneark). Hvis du vil skrive en global makro i Personal Macro Workbook, klikker du VBAProject(PERSONAL.XLSB) i Project Explorer-vinduet.
Velg Sett inn → Modul på menylinjen i Visual Basic Editor.
Excel svarer ved å åpne et nytt, tomt kodevindu i Visual Basic Editor-vinduet og ved å legge til et annet modulikon (navngitt med neste tilgjengelige nummer) i omrisset i Project Explorer-vinduet under det aktuelle VBA-prosjektet.
Deretter begynner du makroen ved å lage en subrutine (alle makroer, selv de du registrerer i regnearket, er egentlig Visual Basic-subrutiner). For å gjøre dette, skriver du bare sub (for subrutine).
Skriv sub og trykk deretter på mellomromstasten.
Nå må du navngi den nye makroen din, noe du gjør ved å navngi subrutinen din. Husk at når du navngir den nye makroen (eller en subrutine), følger du de samme reglene som når du navngir et områdenavn (begynn med en bokstav og ingen mellomrom).
Skriv inn navnet på makroen og trykk deretter på Enter-tasten.
Så snart du trykker på Enter-tasten, setter Visual Basic Editor inn et lukket par med parenteser etter makroens navn, en tom linje og en End Sub-setning på sin egen linje under det. Den plasserer deretter innsettingspunktet på begynnelsen av den tomme linjen mellom linjene med Sub- og End Sub-setningene. Det er her du skriver inn kodelinjene for makroen du skriver.
Skriv inn linjene med VBA-kode for makroen mellom Sub- og End Sub-setningene.
Før du begynner å skrive VBA-setningene som makroen din skal utføre, bør du først dokumentere formålet og funksjonen til denne makroen. For å gjøre dette, skriv inn en apostrof ( ' ) på begynnelsen av hver linje i denne teksten for å skrive den inn som en kommentar. (Excel vet ikke å prøve å kjøre noen kodelinje som er innledet med en apostrof.)
Når du trykker på Enter-tasten for å starte en ny linje som begynner med en apostrof, blir tekstlinjen grønn, noe som indikerer at Visual Basic Editor anser det som en kommentar som ikke skal utføres når makroen kjøres.
Etter at du har dokumentert formålet med makroen med kommentarene dine, begynner du å skrive inn setningene du vil at makroen skal utføre (som ikke må innledes med apostrof). For å rykke inn kodelinjer for å gjøre dem lettere å lese, trykk Tab. Hvis du trenger å stikke ut linjen, trykk Shift+Tab. Når du er ferdig med å skrive koden for makroen din, må du lagre den før du tester den.
Velg Fil → Lagre på menylinjen i Visual Basic Editor eller trykk Ctrl+S.
Etter at du har lagret den nye makroen, kan du klikke på Vis Microsoft Excel-knappen på standardverktøylinjen for å gå tilbake til regnearket hvor du kan prøve det. For å kjøre den nye makroen du har skrevet, velg Vis → Makroer på båndet eller trykk Alt+F8 for å åpne makrodialogboksen og klikk deretter på navnet på makroen du nettopp skrev før du klikker OK.
Hvis Excel støter på en feil under kjøring av makroen, returnerer den deg til Visual Basic Editor, og en Microsoft Visual Basic-dialogboks vises, som indikerer (i svært kryptisk form) feilens art. Klikk på Feilsøk-knappen i denne dialogboksen for å få Visual Basic Editor til å markere linjen med kode som den ikke kan kjøre.
Du kan deretter prøve å finne feilen og redigere den i kodelinjen. Hvis du eliminerer årsaken til feilen, fjerner Visual Basic Editor uthevingen fra den kodelinjen, og du kan deretter klikke på Fortsett-knappen (som automatisk erstatter Kjør-knappen når redigeringsprogrammet går inn i feilsøkingsmodus) med den blå trekanten peker til høyre på standardverktøylinjen for å fortsette å kjøre makroen.