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:

sPrompt = "1. This is your first choice" & vbCrLf sPrompt = sPrompt & "2. This is your second choice" & vbCrLf sPrompt = sPrompt & "3. This is your third choice" & vbCrLf sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf sPrompt = sPrompt & "5. This is your fifth choice"

È ora possibile utilizzare la stringa sPrompt 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:

sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

In questo esempio, la risposta dalla funzione InputBox viene assegnata alla variabile sUserResp, che dovrebbe essere una stringa. La variabile iUR, che è una variabile numerica (intera), 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 in VBA:

Sub TestInput()

Dim sPrompt As String     Dim sUserResp As String     Dim iUR As Integer

sPrompt = "1. This is your first choice" & vbCrLf     sPrompt = sPrompt & "2. This is your second choice" & vbCrLf     sPrompt = sPrompt & "3. This is your third choice" & vbCrLf     sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf     sPrompt = sPrompt & "5. This is your fifth choice"

iUR = 0     While iUR < 1 Or iUR > 5         sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Wend     Select Case iUR         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 WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (1366) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia a nastro di Word (Word 2007 e più tardi) qui: