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, ognuna 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 è assegnata alla variabile UserResp, che dovrebbe essere dimensionata come una stringa. La variabile UR, che dovrebbe essere dimensionata come un numero intero, 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 Integer

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 (3098) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: