Du kan bruge InputBox-funktionen til at tilføje dialogbokse til dine Excel 2013-makroer. Når du kører makroen, får denne Visual Basic-funktion Excel til at vise en Input-dialogboks, hvor du kan indtaste den titel, der giver mening for det nye regneark. Makroen sætter derefter teksten ind i den aktuelle celle og formaterer denne tekst, hvis det er det, du har trænet din makro til at gøre næste gang.
For at se, hvor nemt det er at bruge InputBox-funktionen til at tilføje interaktivitet til en ellers stabil makro, skal du følge trinene for at konvertere Company_Name-makroen, der i øjeblikket indtaster teksten "Mind Over Media" til en, der faktisk beder dig om det navn, du ønsker ind. InputBox-funktionen bruger følgende syntaks:
InputBox(prompt[,titel][,standard][,xpos][,ypos][,hjælpefil,kontekst])
I denne funktion kræves kun promptargumentet , mens resten af argumenterne er valgfrie. Den hurtige argument angiver meddelelse, der vises inde i dialogboksen Input boksen, hvilket fik brugeren til at indtaste en ny værdi (eller i dette tilfælde, et nyt firmanavn).
Den hurtige argument kan være op til maksimalt 1.024 tegn. Hvis du ønsker, at promptmeddelelsen skal vises på forskellige linjer inde i dialogboksen, indtaster du funktionerne Chr(13) og Chr(10) i teksten (for at indsætte henholdsvis en carriage return og en linefeed i meddelelsen).
Det valgfri titelargument angiver, hvilken tekst der skal vises i titellinjen i dialogboksen Input. Hvis du ikke angiver et titelargument , viser Excel navnet på programmet på titellinjen. Det valgfrie standardargument angiver standardsvaret, der automatisk vises i tekstboksen nederst i dialogboksen Input.
Hvis du ikke angiver et standardargument, er tekstboksen tom i dialogboksen Input.
De valgfrie xpos- og ypos- argumenter angiver den vandrette afstand fra venstre kant af skærmen til venstre kant af dialogboksen og den lodrette afstand fra den øverste kant af skærmen til den øverste kant af dialogboksen. Hvis du ikke angiver disse argumenter, centrerer Excel inputdialogboksen vandret og placerer den cirka en tredjedel af vejen lodret ned ad skærmen.
De hjælpefil og kontekst valgfrie argumenter angive navnet på den brugerdefinerede Hjælp-fil, som du stiller til rådighed for brugeren til at forklare funktionen af Input dialogboksen samt den type data, at den accepterer.
Som en del af processen med at oprette en brugerdefineret hjælpefil til brug i Excel-hjælpesystemet, tildeler du emnet et kontekstnummer, der passer til dets indhold, som derefter angives som kontekstargumentet for InputBox-funktionen.
Når du angiver en hjælpefil og et kontekstargument for denne funktion, tilføjer Excel en Hjælp-knap til den tilpassede Input-dialogboks, som brugere kan klikke på for at få adgang til den tilpassede hjælpefil i Hjælp-vinduet.
Før du kan tilføje kodelinjen til makroen med InputBox-funktionen, skal du finde det sted i Visual Basic-kommandoerne, hvor linjen skal gå. For at indtaste Mind Over Media-teksten i den aktive celle bruger Makroen Company_Name følgende Visual Basic-kommando:
ActiveCell.FormulaR1C1 = "Sind over medier"
For at tilføje interaktivitet til makroen skal du indsætte InputBox-funktionen på en linje i kodevinduet lige over denne ActiveCell.FormulaR1C1-sætning, som følger:
Placer indsættelsespunktet i kodevinduet i begyndelsen af ActiveCell.FormulaR1C1-sætningen, og tryk på Enter for at indsætte en ny linje.
Nu hvor du har tilføjet en ny linje, skal du flytte indsætningspunktet op til den.
Tryk på pil op for at placere indsættelsespunktet i begyndelsen af den nye linje.
På denne linje vil du oprette en variabel, der leverer promptargumentet til InputBox-funktionen. For at gøre dette skal du angive navnet på variablen (i dette tilfælde InputMsg) efterfulgt af dens aktuelle indtastning. Sørg for at omslutte beskedteksten på højre side af lighedstegnet i et lukket par dobbelte anførselstegn.
Indtast følgende kode for at oprette InputMsg-variablen på linje 8, og tryk derefter på Enter-tasten for at starte en ny linje 9:
InputMsg = "Indtast firmanavnet eller titlen for dette regneark i tekstboksen nedenfor, og klik derefter på OK:"
Dernæst opretter du en variabel med navnet InputTitle at leverer den valgfri titel argument for funktionen InputBox. Denne variabel får teksten "Regnearkstitel" til at blive vist som titlen på Input-dialogboksen. Igen skal du sørge for at sætte navnet på dialogboksens titellinje i anførselstegn.
Indtast følgende kode for at oprette InputTitle-variablen på linje 9, og tryk derefter på Enter for at indsætte en ny linje 10:
InputTitle = "Regnearks titel"
Dernæst opretter du et variabelnavn DefaultText, der leverede det valgfrie standardargument til InputBox-funktionen. Denne variabel får teksten "Mind Over Media" til at blive vist som standardindgangen i tekstboksen nederst i den tilpassede dialogboks til indtastning af firmanavn.
Indtast følgende kode for at oprette standardtekstvariablen på linje 10, og tryk derefter på Enter for at indsætte en ny linje 11:
DefaultText = "Sind over medier"
Dernæst opretter du en endelig variabel ved navn CompanyName, der angiver InputBox-funktionen som dens indgang (ved hjælp af variablerne InputMsg, InputTitle og DefaultText, som du lige har oprettet) og gemmer resultaterne af denne funktion.
Indtast følgende kode for at oprette SpreadsheetTitle-variablen, der bruger InputBox-funktionen på linje 11:
SpreadsheetTitle = InputBox(InputMsg, InputTitle, DefaultText)
Til sidst erstatter du værdien, "Mind Over Media", i ActiveCell.FormulaR1C1-egenskaben med SpreadsheetTitle-variablen (hvis værdi bestemmes af, hvad der er indtastet i dialogboksen Spreadsheet Title Input), og erstatter dermed denne konstant i makroen med midlerne til at gøre dette input virkelig interaktivt.
Vælg "Mind Over Media" på linje 12 og erstat det med SpreadsheetTitle (uden anførselstegn).
Gem den redigerede makro ved at klikke på knappen Gem på Visual Basic-værktøjslinjen og vende tilbage til regnearket ved at klikke på knappen Vis Microsoft Excel eller trykke på Alt+F11. Klik derefter på knappen Skjul i vinduesgruppen på fanen VIS.
Nu er du klar til at åbne en ny projektmappe og køre den redigerede makro ved at trykke på Ctrl+N.
Figuren viser kodevinduet med den redigerede Company_Name-makro efter tilføjelse af de udsagn, der gør den interaktiv.
Følgende figur viser dialogboksen Regnearktitel i aktion i regnearket. Denne inputdialogboks vises nu automatisk og beder dig om input, hver gang du kører den redigerede og nu fuldt interaktive version af Makroen Firmanavn.
For at gå videre og indtaste Mind Over Media i den aktuelle celle og derefter formatere den ved at bruge resten af makrokommandoerne, skal du blot klikke på OK i denne brugerdefinerede dialogboks. For at indtaste og formatere navnet på en anden virksomhed, skal du blot skrive navnet på virksomheden (som automatisk erstatter Mind Over Media i tekstboksen), før du klikker OK.