Offerta di opzioni in una macro (Microsoft Excel)
Se stai appena iniziando a sviluppare macro, potresti cercare un modo semplice per offrire una serie di scelte a un utente e quindi eseguire un’azione in base alla risposta dell’utente. Questa è un’attività relativamente semplice, se si utilizza la funzione InputBox insieme a una struttura Seleziona caso.
Il primo compito è impostare il tuo InputBox in modo che mostri le informazioni all’utente. Ad esempio, supponiamo che tu abbia cinque opzioni e desideri che l’utente selezioni un’opzione tra quelle cinque. Puoi usare il codice seguente per mettere insieme cinque opzioni, ciascuna sulla propria riga:
Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice"
È ora possibile utilizzare la stringa Prompt quando si richiama la funzione InputBox nella macro. Quindi traduci ciò che risponde l’utente in un numero che rappresenta la sua scelta tra le tue cinque opzioni. Il codice per farlo è il seguente:
UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp)
In questo esempio, la risposta dalla funzione InputBox viene assegnata alla variabile UserResp, che dovrebbe essere una stringa. La variabile UR, che è un valore numerico, viene quindi impostata in base al valore della stringa. (La funzione Val restituisce il valore in una stringa.)
L’unica cosa che resta da fare è eseguire un’azione in base al numero scelto, da 1 a 5. È possibile utilizzare la struttura Seleziona caso per farlo.
La subroutine completa potrebbe apparire come segue:
Sub Macro1() Dim Prompt As String Dim UserResp As String Dim UR As Single Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice" UR = 0 While UR < 1 Or UR > 5 UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp) Wend Select Case UR Case 1 'Do stuff for choice 1 here Case 2 'Do stuff for choice 2 here Case 3 'Do stuff for choice 3 here Case 4 'Do stuff for choice 4 here Case 5 'Do stuff for choice 5 here End Select End Sub
Si noti che questo esempio utilizza un ciclo While … Wend attorno alla funzione InputBox. Questo viene fatto per assicurarsi che l’utente immetta un numero compreso tra 1 e 5. Se il valore immesso è al di fuori di tale intervallo, all’utente viene semplicemente chiesto di nuovo.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (11059) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: