Att vara en VBA-programmerare kan ibland vara överväldigande. Ett sätt att se på VBA är att det är ett verktyg som låter dig härma Excel-kommandon. Tänk till exempel på detta VBA-uttalande:
Range("A1:A12"). Namn = "Månadsnamn"
Att köra denna VBA-sats har samma effekt som att välja Formler → Definierade namn → Definiera namn för att visa dialogrutan Nytt namn, skriva Månadsnamn i rutan Namn och A1:A12 i rutan Refererar till och klicka på OK.
När du kör VBA-satsen visas inte dialogrutan Nytt namn. Detta är nästan alltid vad du vill ska hända; du vill inte att dialogrutor blinkar över skärmen medan ditt makro körs.
I vissa fall kanske du dock vill att din kod ska visa någon av Excels många inbyggda dialogrutor och låta användaren göra valen i dialogrutan. Du kan göra detta genom att använda VBA för att utföra ett menyflikskommando. Här är ett exempel som visar dialogrutan Nytt namn. Adressen i rutan Refererar till representerar intervallet som väljs när kommandot körs.
Visar en av Excels dialogrutor med hjälp av VBA.
Application.CommandBars.ExecuteMso “NameDefine”
Din VBA-kod kan inte få någon information från dialogrutan. Om du till exempel kör koden för att visa dialogrutan Nytt namn, kan din kod inte få namnet som användaren har angett eller intervallet som namnges.
ExecuteMso är en metod för CommandBars-objektet och accepterar ett argument: en idMso-parameter som representerar en Ribbon-kontroll. Tyvärr är dessa parametrar inte listade i hjälpsystemet. Och eftersom bandet inte har funnits för evigt, är kod som använder ExecuteMso-metoden inte kompatibel med versioner före Excel 2007.
Här är ett annat exempel på hur man använder ExecuteMso-metoden. Den här satsen visar, när den körs, fliken Teckensnitt i dialogrutan Formatera celler:
Application.CommandBars.ExecuteMso
"FormatCellsFontDialog"
Om du försöker visa en inbyggd dialogruta i ett felaktigt sammanhang, visar Excel ett felmeddelande. Till exempel, här är ett uttalande som visar dialogrutan Formatera nummer:
Application.CommandBars.ExecuteMso “NumberFormatsDialog”
Om du kör den här satsen när den inte är lämplig (till exempel en form är markerad) visar Excel ett felmeddelande eftersom den dialogrutan endast är lämplig för kalkylbladsceller.
Excel har tusentals kommandon. Hur hittar du namnet på den du behöver? Ett sätt är att använda fliken Anpassa menyfliksområdet i dialogrutan Excel-alternativ. Det snabba sättet att komma dit är att högerklicka på valfri menyflikskontroll och välja Anpassa menyfliksområdet från genvägsmenyn.
Praktiskt taget alla tillgängliga kommandon i Excel listas i den vänstra panelen. Hitta kommandot du behöver och för musen över det, så ser du dess hemliga kommandonamn i verktygstipset (det är delen inom parentes).
Använd fliken Anpassa menyfliksområdet för att identifiera ett kommandonamn.