Du kan bruke InputBox-funksjonen til å legge til dialogbokser i Excel 2013-makroene. Når du kjører makroen, får denne Visual Basic-funksjonen Excel til å vise en Input-dialogboks der du kan angi hvilken tittel som er fornuftig for det nye regnearket. Makroen legger deretter teksten inn i gjeldende celle og formaterer denne teksten, hvis det er det du har trent makroen til å gjøre neste gang.
For å se hvor enkelt det er å bruke InputBox-funksjonen til å legge til interaktivitet til en ellers stabil makro, følg trinnene for å konvertere Company_Name-makroen som for øyeblikket legger inn teksten "Mind Over Media" til en som faktisk ber deg om navnet du vil ha inn. InputBox-funksjonen bruker følgende syntaks:
InputBox(spørsmål[,tittel][,standard][,xpos][,ypos][,hjelpefil,kontekst])
I denne funksjonen er bare ledetekstargumentet nødvendig, mens resten av argumentene er valgfrie. Den rask argumentet angir meldingen som vises i dialogboksen Input-boksen, spørre brukeren om å skrive inn en ny verdi (eller i dette tilfellet, et nytt firmanavn).
Den rask argumentet kan være opp til maksimalt 1024 tegn. Hvis du vil at ledeteksten skal vises på forskjellige linjer inne i dialogboksen, skriver du inn funksjonene Chr(13) og Chr(10) i teksten (for å sette inn henholdsvis en vognretur og en linjemating i meldingen).
De valgfrie tittelen argumentet angir hvilken tekst som skal vises i tittellinjen i dialogboksen-boksen. Hvis du ikke angir en tittel argument, viser Excel navnet på programmet på tittellinjen. Det valgfrie standardargumentet spesifiserer standardsvaret som automatisk vises i tekstboksen nederst i Input-dialogboksen.
Hvis du ikke angir et standardargument, er tekstboksen tom i Input-dialogboksen.
De valgfrie xpos- og ypos- argumentene spesifiserer den horisontale avstanden fra venstre kant av skjermen til venstre kant av dialogboksen og den vertikale avstanden fra øvre kant av skjermen til øverste kant av dialogboksen. Hvis du ikke spesifiserer disse argumentene, sentrerer Excel inndatadialogboksen horisontalt og plasserer den omtrent en tredjedel av skjermen vertikalt.
De hjelpefilen og kontekstvalgfrie argumenter angi navnet på den tilpassede hjelpefilen som du gjør tilgjengelig for brukeren å forklare hjemkomsten av Input dialogboksen samt hvilken type data som den godtar.
Som en del av prosessen med å lage en tilpasset hjelpefil for bruk i Excel-hjelpesystemet, tildeler du emnet et kontekstnummer som passer til innholdet, som deretter spesifiseres som kontekstargumentet for InputBox-funksjonen.
Når du angir en hjelpefil og kontekstargument for denne funksjonen, legger Excel til en Hjelp-knapp i den egendefinerte Input-dialogboksen som brukere kan klikke for å få tilgang til den tilpassede hjelpefilen i Hjelp-vinduet.
Før du kan legge til kodelinjen i makroen med InputBox-funksjonen, må du finne stedet i Visual Basic-kommandoene hvor linjen skal gå. For å legge inn Mind Over Media-teksten i den aktive cellen, bruker Makroen Company_Name følgende Visual Basic-kommando:
ActiveCell.FormulaR1C1 = "Mind Over Media"
For å legge til interaktivitet til makroen, må du sette inn InputBox-funksjonen på en linje i kodevinduet rett over denne ActiveCell.FormulaR1C1-setningen, som følger:
Plasser innsettingspunktet i kodevinduet i begynnelsen av ActiveCell.FormulaR1C1-setningen og trykk Enter for å sette inn en ny linje.
Nå som du har lagt til en ny linje, må du flytte innsettingspunktet opp til den.
Trykk på opp-piltasten for å plassere innsettingspunktet på begynnelsen av den nye linjen.
På denne linjen vil du lage en variabel som gir ledetekstargumentet til InputBox-funksjonen. For å gjøre dette, oppgir du navnet på variabelen (InputMsg i dette tilfellet) etterfulgt av gjeldende oppføring. Sørg for å omslutte meldingsteksten på høyre side av likhetstegnet i et lukket par doble anførselstegn.
Skriv inn følgende kode for å lage InputMsg-variabelen på linje 8, og trykk deretter Enter-tasten for å starte en ny linje 9:
InputMsg = "Skriv inn firmanavnet eller tittelen for dette regnearket i tekstboksen nedenfor og klikk deretter OK:"
Deretter oppretter du en variabel som heter InputTitle som leverer den valg tittelen argument for InputBox funksjonen. Denne variabelen gjør at teksten "Spreadsheet Title" vises som tittelen på Input-dialogboksen. Igjen, sørg for å sette navnet på dialogboksens tittellinje i anførselstegn.
Skriv inn følgende kode for å lage InputTitle-variabelen på linje 9, og trykk deretter Enter for å sette inn en ny linje 10:
InputTitle = "Regnearktittel"
Deretter oppretter du et variabelnavn DefaultText som ga det valgfrie standardargumentet til InputBox-funksjonen. Denne variabelen gjør at teksten «Mind Over Media» vises som standardoppføring i tekstboksen nederst i den egendefinerte dialogboksen Company Name Input.
Skriv inn følgende kode for å lage standardtekstvariabelen på linje 10, og trykk deretter Enter for å sette inn en ny linje 11:
DefaultText = "Mind Over Media"
Deretter oppretter du en siste variabel kalt CompanyName som spesifiserer InputBox-funksjonen som dens oppføring (ved å bruke InputMsg, InputTitle og DefaultText variablene som du nettopp opprettet) og lagrer resultatene av denne funksjonen.
Skriv inn følgende kode for å lage SpreadsheetTitle-variabelen som bruker InputBox-funksjonen på linje 11:
SpreadsheetTitle = InputBox(InputMsg, InputTitle, DefaultText)
Til slutt erstatter du verdien «Mind Over Media» i ActiveCell.FormulaR1C1-egenskapen med SpreadsheetTitle-variabelen (hvis verdi bestemmes av hva som er lagt inn i dialogboksen Spreadsheet Title Input), og erstatter dermed denne konstanten i makroen med midlene for å gjøre denne inngangen virkelig interaktiv.
Velg "Mind Over Media" på linje 12 og erstatt den med SpreadsheetTitle (uten anførselstegn).
Lagre den redigerte makroen ved å klikke på Lagre-knappen på Visual Basic-verktøylinjen og gå tilbake til regnearket ved å klikke på Vis Microsoft Excel-knappen eller trykke Alt+F11. Klikk deretter på Skjul-knappen i Vindu-gruppen i VIS-fanen.
Nå er du klar til å åpne en ny arbeidsbok og kjøre den redigerte makroen ved å trykke Ctrl+N.
Figuren viser kodevinduet med den redigerte Company_Name-makroen etter å ha lagt til setningene som gjør den interaktiv.
Følgende figur viser dialogboksen Regnearktittel i aksjon i regnearket. Denne inndatadialogboksen vises nå automatisk og ber deg om inndata hver gang du kjører den redigerte og nå fullstendig interaktive versjonen av Makroen Company_Name.
For å gå videre og legge inn Mind Over Media i gjeldende celle og deretter formatere den ved å bruke resten av makrokommandoene, klikker du bare OK i denne egendefinerte dialogboksen. For å skrive inn og formatere navnet på et annet selskap, skriver du ganske enkelt navnet på selskapet (som automatisk erstatter Mind Over Media i tekstboksen) før du klikker OK.