At være VBA-programmør kan til tider være overvældende. En måde at se på VBA er, at det er et værktøj, der lader dig efterligne Excel-kommandoer. Overvej for eksempel denne VBA-erklæring:
Range("A1:A12"). Navn = "Månedsnavne"
Udførelse af denne VBA-sætning har samme effekt som at vælge Formler → Definerede navne → Definer navn for at vise dialogboksen Nyt navn, skrive Månedsnavne i boksen Navn og A1:A12 i boksen Refererer til og klikke på OK.
Når du udfører VBA-sætningen, vises dialogboksen Nyt navn ikke. Det er næsten altid, hvad du ønsker, skal ske; du ønsker ikke, at dialogbokse blinker hen over skærmen, mens din makro kører.
I nogle tilfælde vil du dog måske have din kode til at vise en af Excels mange indbyggede dialogbokse og lade brugeren træffe valgene i dialogboksen. Du kan gøre dette ved at bruge VBA til at udføre en Ribbon-kommando. Her er et eksempel, der viser dialogboksen Nyt navn. Adressen i feltet Referer til repræsenterer det område, der er valgt, når kommandoen udføres.
Visning af en af Excels dialogbokse ved hjælp af VBA.
Application.CommandBars.ExecuteMso "NameDefine"
Din VBA-kode kan ikke få nogen information fra dialogboksen. For eksempel, hvis du udfører koden for at vise dialogboksen Nyt navn, kan din kode ikke få navnet indtastet af brugeren eller det område, der bliver navngivet.
ExecuteMso er en metode til CommandBars-objektet og accepterer ét argument: en idMso-parameter, der repræsenterer en Ribbon-kontrol. Desværre er disse parametre ikke opført i hjælpesystemet. Og fordi båndet ikke har eksisteret for evigt, er kode, der bruger ExecuteMso-metoden, ikke kompatibel med versioner før Excel 2007.
Her er endnu et eksempel på brug af ExecuteMso-metoden. Denne sætning viser, når den udføres, fanen Skrifttype i dialogboksen Formater celler:
Application.CommandBars.ExecuteMso
"FormatCellsFontDialog"
Hvis du forsøger at vise en indbygget dialogboks i en forkert kontekst, viser Excel en fejlmeddelelse. Her er for eksempel en erklæring, der viser dialogboksen Formater nummer:
Application.CommandBars.ExecuteMso "NumberFormatsDialog"
Hvis du udfører denne sætning, når den ikke er passende (f.eks. er en figur valgt), viser Excel en fejlmeddelelse, fordi den dialogboks kun er passende for regnearksceller.
Excel har tusindvis af kommandoer. Hvordan kan du finde navnet på den du skal bruge? En måde er at bruge fanen Tilpas bånd i dialogboksen Excel-indstillinger. Den hurtige måde at komme dertil er at højreklikke på en hvilken som helst båndkontrol og vælge Tilpas båndet fra genvejsmenuen.
Stort set alle tilgængelige kommandoer i Excel er angivet i venstre panel. Find den kommando, du skal bruge, og hold musen over den, og du kan se dens hemmelige kommandonavn i værktøjstippet (det er delen i parentes).
Brug af fanen Tilpas bånd til at identificere et kommandonavn.