EJEMPLO DE PROGRAMACION DOS VBA ADIVINAR NÚMERO El objetivo es hacer un juego donde vamos a intentar adivinar un número que la computadora genera al azar, para lo cual tendremos una cierta cantidad de intentos y un rango en el que debe estar el número; al digitar el número el programa nos indicara si el número es mayor o menor al número que estamos intentando adivinar. Para esto debemos hacer primero la interfaz de usuario (realizar los siguientes pasos): 1. Vamos a crear un formulario y le colocamos el nombre AdivinarNro. Para ello insertamos un UserForm y en la ventana propiedades en name le asignamos AdivinarNro. 2. Insertamos una etiqueta de título así: En este caso vamos a cambiar las siguientes propiedades: Font: Escogemos un tipo de letra y le damos un tamaño de 14. TextAlign: A 2 (centrado). 3. Terminamos de construir la interfaz de usuario de la siguiente manera: 4. Le colocamos nombres a los controles que se deben programar así: Cuadros de Texto: txtmin txtmax txtintentos txtMiNumero Etiquetas: Lblintentos Lblmensaje Botones de comando: cmdgenerar cmdAdivinar cmdJugar cmdsalir 5. Deshabilitamos los botones Adivinar y Volver a jugar Seleccionamos el bóton a deshabilitar así: Cambiamos la propiedad Enabled a False así: 6. Copiamos el código fuente del programa. Option Explicit Public intMin As Integer Public intMax As Integer Public intIntentos As Integer Public intNumero As Long Private Sub cmdAdivinar_Click() Me.intIntentos = Me.intIntentos - 1 Me.lblintentos = Me.intIntentos If Me.intIntentos > 0 Then If Me.txtMiNumero = intNumero Then Me.lblmensaje = "MUY BIEN, EL NUMERO ERA EL: " + Me.txtMiNumero Else If Me.txtMiNumero > intNumero Then Me.lblmensaje = " EL NUMERO ES MENOR " Me.txtMiNumero.SetFocus Else Me.lblmensaje = " EL NUMERO ES MAYOR " Me.txtMiNumero.SetFocus End If End If Else Me.lblmensaje = "NO HA PODIDO ADIVINAR EL NUMERO" Me.cmdJugar.Enabled = True End If End Sub Private Sub cmdgenerar_Click() 'Inicializamos las variables públicas de control del juego. Me.intMin = CInt(Me.txtmin) Me.intMax = CInt(Me.txtmax) Me.intIntentos = CInt(Me.txtintentos) 'Bloqueamos los cuadros de texto para no cambiar los valores. Me.txtmin.Enabled = False Me.txtmax.Enabled = False Me.txtintentos.Enabled = False Randomize ' inicializar el generador aleatorio. intNumero = CLng((intMin - intMax) * Rnd + intMax) 'bloquemos el boton generar y desbloque el de adivinar Me.cmdgenerar.Enabled = False Me.cmdAdivinar.Enabled = True Me.lblintentos = Me.txtintentos Me.txtMiNumero.SetFocus End Sub Private Sub cmdJugar_Click() Me.lblmensaje = "" Me.txtMiNumero.Text = "" Me.cmdAdivinar.Enabled = False Me.txtmin.Enabled = True Me.txtmax.Enabled = True Me.txtintentos.Enabled = True Me.cmdgenerar.Enabled = True Me.txtmin.SetFocus End Sub Private Sub cmdsalir_Click() End End Sub