Video: L'editor VBA - 2d3 - Gli strumenti del Vbe 2024
È possibile utilizzare la funzione InputBox per aggiungere finestre di dialogo alle macro di Excel 2013. Quando si esegue la macro, questa funzione di Visual Basic fa sì che Excel visualizzi una finestra di dialogo Input in cui è possibile immettere qualsiasi titolo abbia senso per il nuovo foglio di lavoro. La macro quindi inserisce quel testo nella cella corrente e formatta questo testo, se è quello che hai addestrato a fare la tua prossima macro.
Per vedere quanto è facile usare la funzione InputBox per aggiungere interattività a una macro altrimenti stabile, segui i passaggi per convertire la macro Company_Name che attualmente inserisce il testo "Mind Over Media" in uno che ti richiede effettivamente il nome che vuoi inserire La funzione InputBox utilizza la seguente sintassi:
InputBox (prompt [titolo] [default] [xpos] [ypos] [helpfile, contesto])
In questa funzione, solo il prompt > argomento è richiesto con il resto degli argomenti facoltativo. L'argomento prompt specifica il messaggio che appare nella finestra di dialogo Input, chiedendo all'utente di inserire un nuovo valore (o in questo caso, un nuovo nome di società). L'argomento
prompt può contenere un massimo di 1, 024 caratteri. Se si desidera che il messaggio di richiesta venga visualizzato su linee diverse all'interno della finestra di dialogo, immettere le funzioni Chr (13) e Chr (10) nel testo (per inserire rispettivamente un ritorno a capo e un avanzamento riga nel messaggio).
titolo facoltativo specifica quale testo visualizzare nella barra del titolo della finestra di dialogo Input. Se non si specifica un argomento titolo , Excel visualizza il nome dell'applicazione sulla barra del titolo. L'argomento predefinito facoltativo specifica la risposta predefinita che appare automaticamente nella casella di testo nella parte inferiore della finestra di dialogo Input. Se non si specifica un argomento predefinito, la casella di testo è vuota nella finestra di dialogo Input.
xpos e ypos specificano la distanza orizzontale dal bordo sinistro dello schermo al bordo sinistro della finestra di dialogo e la distanza verticale dal bordo superiore dello schermo al bordo superiore della finestra di dialogo. Se non si specificano questi argomenti, Excel centra la finestra di dialogo di input orizzontalmente e la posiziona approssimativamente a un terzo della lunghezza dello schermo verticalmente. Gli argomenti facoltativi
helpfile e contesto specificano il nome del file della Guida personalizzato che rendi disponibile all'utente per spiegare il funzionamento della finestra di dialogo Input e il tipo di dati che accetta. Come parte del processo di creazione di un file di guida personalizzato da utilizzare nel sistema di guida Excel, si assegna all'argomento un numero di contesto appropriato al suo contenuto, che viene quindi specificato come argomento
contesto per Funzione InputBox. Quando si specifica un file di guida e un argomento
contesto per questa funzione, Excel aggiunge un pulsante Guida alla finestra di dialogo Input personalizzato che gli utenti possono fare clic per accedere al file della guida personalizzato nella finestra della Guida. Prima di poter aggiungere la linea di codice alla macro con la funzione InputBox, è necessario trovare la posizione nei comandi di Visual Basic in cui deve essere eseguita la linea. Per inserire il testo Mind Over Media nella cella attiva, la macro Company_Name utilizza il seguente comando di Visual Basic:
ActiveCell. FormulaR1C1 = "Mind Over Media"
Per aggiungere interattività alla macro, devi inserire la funzione InputBox su una riga nella finestra del codice proprio sopra questo ActiveCell. Istruzione FormulaR1C1, come segue:
Posiziona il punto di inserimento nella finestra Codice all'inizio di ActiveCell. FormulaR1C1 e premi Invio per inserire una nuova riga.
-
Ora che hai aggiunto una nuova linea, devi spostare il punto di inserimento fino ad essa.
Premere il tasto freccia su per posizionare il punto di inserimento all'inizio della nuova riga.
-
Su questa linea, si desidera creare una variabile che fornisca l'argomento
prompt alla funzione InputBox. Per fare ciò, si specifica il nome della variabile (InputMsg in questo caso) seguita dalla sua voce corrente. Assicurati di racchiudere il testo del messaggio sul lato destro del segno di uguale in una coppia chiusa di virgolette doppie. Digitare il codice seguente per creare la variabile InputMsg sulla riga 8 e quindi premere il tasto Invio per iniziare una nuova riga 9:
-
InputMsg = "Immettere il nome o il titolo dell'azienda per questo foglio di lavoro nella casella di testo sottostante e quindi fare clic su OK: "
Successivamente, si crea una variabile denominata InputTitle che fornisce l'argomento
titolo facoltativo per la funzione InputBox. Questa variabile rende il testo "Spreadsheet Title" come il titolo della finestra di dialogo Input. Anche in questo caso, assicurarsi di racchiudere il nome per la barra del titolo della finestra di dialogo tra virgolette. Digitare il codice seguente per creare la variabile InputTitle sulla riga 9 e quindi premere Invio per inserire una nuova riga 10:
-
InputTitle = "Titolo foglio di calcolo"
Quindi, creare un nome variabile DefaultText che ha fornito l'opzione
argomento predefinito per la funzione InputBox. Questa variabile rende il testo, "Mind Over Media", come voce predefinita nella casella di testo nella parte inferiore della finestra di dialogo di immissione del nome della società personalizzata. Digitare il codice seguente per creare la variabile DefaultText sulla riga 10 e quindi premere Invio per inserire una nuova riga 11:
-
DefaultText = "Mind Over Media"
Successivamente, si crea una variabile finale denominata CompanyName che specifica la funzione InputBox come sua voce (utilizzando le variabili InputMsg, InputTitle e DefaultText appena create) e memorizza i risultati di questa funzione.
Digitare il seguente codice per creare la variabile SpreadsheetTitle che utilizza la funzione InputBox sulla riga 11:
-
SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)
Infine, si sostituisce il valore, "Mind Over Media", in ActiveCell.La proprietà FormulaR1C1 con la variabile SpreadsheetTitle (il cui valore è determinato da qualsiasi elemento inserito nella finestra di dialogo Input del foglio di calcolo), sostituendo così in modo efficace questa costante nella macro con i mezzi per rendere questo input veramente interattivo.
Seleziona "Mind Over Media" sulla riga 12 e sostituiscilo con SpreadsheetTitle (senza virgolette).
-
Salvare la macro modificata facendo clic sul pulsante Salva sulla barra degli strumenti di Visual Basic e quindi tornare al foglio di lavoro facendo clic sul pulsante Visualizza Microsoft Excel o premendo Alt + F11. Quindi, fai clic sul pulsante Nascondi nel gruppo Finestra della scheda VISUALIZZA.
-
Ora sei pronto per aprire una nuova cartella di lavoro ed eseguire la macro modificata premendo Ctrl + N.
La figura mostra la finestra Codice con la macro Company_Name modificata dopo aver aggiunto le istruzioni che la rendono interattiva.
La seguente figura mostra la finestra di dialogo Titolo foglio di calcolo in azione nel foglio di lavoro. Questa finestra di dialogo di input ora appare automaticamente e richiede l'input ogni volta che si esegue la versione modificata e ora completamente interattiva della macro Company_Name.
Per andare avanti e inserire Mind Over Media nella cella corrente e formattarla usando il resto dei comandi macro, basta fare clic su OK in questa finestra di dialogo personalizzata. Per inserire e formattare il nome di un'altra società, è sufficiente digitare il nome dell'azienda (che sostituisce automaticamente Mind Over Media nella casella di testo) prima di fare clic su OK.