Si recién está comenzando a desarrollar macros, es posible que esté buscando una forma sencilla de ofrecer un conjunto de opciones a un usuario y luego tomar una acción basada en la respuesta del usuario. Esta es una tarea relativamente simple, si usa la función InputBox, junto con una estructura Seleccionar caso.

La primera tarea es configurar su InputBox para que muestre la información al usuario. Por ejemplo, digamos que tiene cinco opciones y desea que el usuario seleccione una opción de esas cinco. Puede usar el siguiente código para juntar cinco opciones, cada una en su propia línea:

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"

Ahora puede usar la cadena sPrompt cuando invoca la función InputBox en su macro. Luego, traduce lo que responde el usuario a un número que represente su elección entre sus cinco opciones. El código para hacer esto es el siguiente:

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

iUR = Val(sUserResp)

En este ejemplo, la respuesta de la función InputBox se asigna a la variable sUserResp, que debería ser una cadena. La variable iUR, que es una variable numérica (entero), se establece en función del valor de la cadena. (La función Val devuelve el valor en una cadena.)

Lo único que queda por hacer es realizar una acción en función del número elegido, del 1 al 5. Puede usar la estructura Seleccionar caso para hacer esto.

La subrutina completa podría aparecer de la siguiente manera en 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

Observe que este ejemplo usa un bucle While …​ Wend alrededor de la función InputBox. Esto se hace para asegurarse de que el usuario ingrese un número entre 1 y 5. Si el valor ingresado está fuera de ese rango, entonces simplemente se le pregunta nuevamente al usuario.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (10763) se aplica a Microsoft Word 2007, 2010, 2013 y 2016. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Word aquí:

link: / word-Offer_Options_in_a_Macro [Opciones de oferta en una macro].