Podeu utilitzar la funció InputBox per afegir quadres de diàleg a les vostres macros d'Excel 2013. Quan executeu la macro, aquesta funció de Visual Basic fa que Excel mostri un quadre de diàleg d'entrada on podeu introduir qualsevol títol que tingui sentit per al nou full de treball. Aleshores, la macro col·loca aquest text a la cel·la actual i el formata, si és el que heu entrenat la vostra macro a continuació.
Per veure com de fàcil és utilitzar la funció InputBox per afegir interactivitat a una macro d'una altra manera estable, seguiu els passos per convertir la macro Company_Name que actualment introdueix el text "Mind Over Media" a una que realment us demani el nom que voleu. entrat. La funció InputBox utilitza la sintaxi següent:
InputBox(sol·licitud[,títol][,predeterminat][,xpos][,ypos][,fitxer d'ajuda, context])
En aquesta funció, només cal l' argument prompte i la resta d'arguments són opcionals. L' argument d' indicació especifica el missatge que apareix dins del quadre de diàleg d'entrada, demanant a l'usuari que introdueixi un valor nou (o, en aquest cas, un nom d'empresa nou).
L' argument del prompt pot tenir un màxim de 1.024 caràcters. Si voleu que el missatge de sol·licitud aparegui en diferents línies dins del quadre de diàleg, introduïu les funcions Chr(13) i Chr(10) al text (per inserir un retorn de carro i un salt de línia al missatge, respectivament).
L' argument del títol opcional especifica quin text es mostra a la barra de títol del quadre de diàleg Entrada. Si no especifiqueu cap argument de títol , Excel mostra el nom de l'aplicació a la barra de títol. L' argument predeterminat opcional especifica la resposta per defecte que apareix automàticament al quadre de text a la part inferior del quadre de diàleg d'entrada.
Si no especifiqueu cap argument per defecte, el quadre de text està buit al quadre de diàleg Entrada.
Els arguments opcionals xpos i ypos especifiquen la distància horitzontal des de la vora esquerra de la pantalla fins a la vora esquerra del quadre de diàleg i la distància vertical des de la vora superior de la pantalla fins a la vora superior del quadre de diàleg. Si no especifiqueu aquests arguments, Excel centra el quadre de diàleg d'entrada horitzontalment i el col·loca aproximadament a un terç de la pantalla verticalment.
El fitxer d'ajuda i els arguments opcionals de context especifiquen el nom del fitxer d'ajuda personalitzat que poseu a disposició de l'usuari per explicar el funcionament del quadre de diàleg d'entrada, així com el tipus de dades que accepta.
Com a part del procés de creació d'un fitxer d'ajuda personalitzat per utilitzar-lo al sistema d'ajuda d'Excel, assigneu al tema un número de context adequat al seu contingut, que després s'especifica com a argument de context per a la funció InputBox.
Quan especifiqueu un fitxer d'ajuda i un argument de context per a aquesta funció, Excel afegeix un botó d'ajuda al quadre de diàleg d'entrada personalitzat que els usuaris poden fer clic per accedir al fitxer d'ajuda personalitzat a la finestra d'ajuda.
Abans de poder afegir la línia de codi a la macro amb la funció InputBox, heu de trobar el lloc a les ordres de Visual Basic on hauria d'anar la línia. Per introduir el text Mind Over Media a la cel·la activa, la macro Company_Name utilitza la següent comanda de Visual Basic:
ActiveCell.FormulaR1C1 = "Atenció als mitjans"
Per afegir interactivitat a la macro, heu d'inserir la funció InputBox en una línia a la finestra Codi just a sobre d'aquesta instrucció ActiveCell.FormulaR1C1, de la manera següent:
Col·loqueu el punt d'inserció a la finestra Codi al començament de la instrucció ActiveCell.FormulaR1C1 i premeu Intro per inserir una línia nova.
Ara que heu afegit una línia nova, heu de moure el punt d'inserció cap amunt.
Premeu la tecla de fletxa amunt per situar el punt d'inserció al començament de la nova línia.
En aquesta línia, voleu crear una variable que proporcioni l' argument de sol·licitud a la funció InputBox. Per fer-ho, indiqueu el nom de la variable (InputMsg en aquest cas) seguit de la seva entrada actual. Assegureu-vos d'incloure el text del missatge al costat dret del signe igual entre un parell de cometes dobles tancades.
Escriviu el codi següent per crear la variable InputMsg a la línia 8 i, a continuació, premeu la tecla Intro per iniciar una nova línia 9:
InputMsg = "Introduïu el nom o el títol de l'empresa per a aquest full de treball al quadre de text següent i feu clic a D'acord:"
A continuació, creeu una variable anomenada InputTitle que proporciona l' argument del títol opcional per a la funció InputBox. Aquesta variable fa que el text "Títol del full de càlcul" aparegui com a títol del quadre de diàleg d'entrada. De nou, assegureu-vos d'incloure el nom de la barra de títol del quadre de diàleg entre cometes.
Escriviu el codi següent per crear la variable InputTitle a la línia 9 i, a continuació, premeu Intro per inserir una nova línia 10:
InputTitle = "Títol del full de càlcul"
A continuació, creeu un nom de variable DefaultText que va proporcionar l' argument predeterminat opcional a la funció InputBox. Aquesta variable fa que el text "Mind Over Media" aparegui com a entrada predeterminada al quadre de text a la part inferior del quadre de diàleg personalitzat d'entrada del nom de l'empresa.
Escriviu el codi següent per crear la variable DefaultText a la línia 10 i, a continuació, premeu Intro per inserir una nova línia 11:
DefaultText = "Atenció als mitjans"
A continuació, creeu una variable final anomenada CompanyName que especifica la funció InputBox com a entrada (utilitzant les variables InputMsg, InputTitle i DefaultText que acabeu de crear) i emmagatzema els resultats d'aquesta funció.
Escriviu el codi següent per crear la variable SpreadsheetTitle que utilitza la funció InputBox a la línia 11:
SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)
Finalment, substituïu el valor, "Mind Over Media", a la propietat ActiveCell.FormulaR1C1 per la variable SpreadsheetTitle (el valor de la qual està determinat pel que s'introdueix al quadre de diàleg d'entrada del títol del full de càlcul), substituint així efectivament aquesta constant a la macro per els mitjans per fer que aquesta entrada sigui realment interactiva.
Seleccioneu "Mind Over Media" a la línia 12 i substituïu-lo per SpreadsheetTitle (sense cometes).
Deseu la macro editada fent clic al botó Desa a la barra d'eines de Visual Basic i, a continuació, torneu al full de treball fent clic al botó Visualitza Microsoft Excel o prement Alt+F11. A continuació, feu clic al botó Amaga al grup Finestra de la pestanya VISUALITZACIÓ.
Ara, ja esteu preparat per obrir un nou llibre de treball i executar la macro editada prement Ctrl+N.
La figura mostra la finestra Codi amb la macro Company_Name editada després d'afegir les declaracions que la fan interactiva.
La figura següent mostra el quadre de diàleg Títol del full de càlcul en acció al full de treball. Aquest quadre de diàleg d'entrada apareix ara automàticament i us demana l'entrada sempre que executeu la versió editada i ara totalment interactiva de la macro Company_Name.
Per continuar i introduir Mind Over Media a la cel·la actual i, a continuació, formatar-la utilitzant la resta de les ordres de macro, només cal que feu clic a D'acord en aquest quadre de diàleg personalitzat. Per introduir i donar format al nom d'una altra empresa, només cal que escriviu el nom de l'empresa (que substitueix automàticament Mind Over Media al quadre de text) abans de fer clic a D'acord.