Top Banner
Visual Basic para Aplicaciones Ejemplos y Ejercicios M.M.I Alexander Arce Quirós C.T.E 26/10/2011 1
27
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

1

Page 2: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

EJEMPLO 1: INSTRUCCIÓN CONDICIONAL................................................................................1EJEMPLO 2: INSTRUCCIÓN CONDICIONAL................................................................................3EJEMPLO 3: INSTRUCCIÓN CONDICIONAL...............................................................................5EJERCICIOS PROPUESTOS....................................................................................................8EJEMPLO 4: INSTRUCCIÓN CONDICIONAL...............................................................................8EJEMPLO 5: INSTRUCCIÓN CONDICIONAL.............................................................................10EJEMPLO 6: BUCLE FOR...................................................................................................13EJEMPLO 7: INGRESO DE DATOS EN UNA MATRIZ..................................................................15EJEMPLO 8: BUCLE CONDICIONAL DO.................................................................................17EJEMPLO 9: RECORRIDO DE UNA MATRIZ...........................................................................19EJERCICIOS PROPUESTOS:.................................................................................................20EJEMPLO 10: CREACIÓN DE LIBROS....................................................................................20EJEMPLO 11: NOMBRA HOJAS...........................................................................................20EJEMPLO 12: CREA HOJA Y AGREGA DATOS..........................................................................21EJEMPLO 13: RELLENA LAS CELDAS DE A2 A A6 DE LA HOJA ACTIVA CON LOS PARES DEL 2 AL DIEZ.21EJEMPLO 14: CREA UNA BASE DE DATOS EN LA HOJA3 Y RELLENA LOS REGISTROS......................22

Página 1

1

2

Page 3: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplos y Ejercicios

Ejemplo 1: Instrucción condicional

Solicita un valor entero y determina si es mayor, menor o igual a cero. Devuelve un mensaje en el que indica si es negativo, cero o positivo.

Diagrama del Problema

Sub Entero1()Dim Entero As IntegerEntero = InputBox("Ingrese un número entero", "Cuadro de Ingreso de Datos")If Entero > 0 Then MsgBox "El dato es positivo", vbInformation + vbOKOnly, "Información sobre el dato ingresado"ElseIf Entero < 0 Then MsgBox "El dato es negativo", vbInformation + vbOKOnly, "Información sobre el dato ingresado"Else MsgBox "El dato es igual a Cero", vbInformation + vbOKOnly, "Información sobre el dato ingresado"End IfEnd Sub

Página 2

El Dato es Negativo

El Dato es Positivo

Fin

El Dato es igual a Cero

Entero < 0

Entero > 0

Entero

Macro Entero

1

123456789

1011

2

Page 4: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Explicación:

Línea 1: Sub es la instrucción que inicia la macro, la indicación Entero1() corresponde al nombre que

hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea

conveniente.

Línea2: Declaramos una variable de nombre Entero mediante la instrucción Dim y le asignamos el tipo de

Datos Integer (Entero) mediante la instrucción As

Línea 3: Mediante la instrucción InputBox solicitamos un dato al usuario y lo guardamos en la variable

Entero.

Línea 4: Mediante la instrucción If iniciamos el bloque de decisión y comprobamos si valor guardado en

la Variable Entero es mayor a cero y de ser así pasamos el control a la instrucción Then, que pasa

el control a la línea 5, sino pasa el control a la línea 6, literalmente “Si Entero >0 entonces”

Línea 5: Mediante la instrucción Msgbox mostramos un mensaje donde se indica que el número es

positivo.

Línea 6: Mediante la instrucción ElseIf se realiza otra comprobación, en este caso si el valor guardado en

Entero es menor a cero y de ser así se pasa el control a la instrucción Then que pasa el control a

la línea 7, sino pasa el control a la línea 8.

Línea 7: Mediante la instrucción MsgBox se muestra un mensaje donde se indica que el número es

negativo

Línea 8: Mediante la instrucción Else se indica que si no se ha cumplido ninguna de las condiciones

anteriores (Entero >0 o Entero <0) se ejecute la línea 9

Línea 9: Mediante la instrucción MsgBox se muestra un mensaje indicando que el número es cero.

Línea 10: Mediante la instrucción End If acabamos con el bloque de decisión.

Línea 11: Mediante la instrucción End Sub acabamos con la macro.

Página 3

1

2

Page 5: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplo 2: Instrucción condicional

Solicita un nombre y determina si el nombre es “Alex”. Si lo es devuelve el mensaje “Hola Alex!”, caso contrario devuelve el mensaje “No te conozco Nombre”

Diagrama del Problema

Sub Nombres()Dim Nombre As StringNombre = InputBox("Ingrese su nombre", "Ingreso de Datos")If Nombre = "Alex" Then MsgBox "Hola " & Nombre & "!"Else MsgBox "No te conozco " & NombreEnd IfEnd Sub

Explicación:

Línea 1: Sub es la instrucción que inicia la macro, la indicación Nombres() corresponde al nombre que

hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea

conveniente.

Línea2: Declaramos una variable de nombre Nombre mediante la instrucción Dim y le asignamos el tipo

de Datos String (Cadena de Texto) mediante la instrucción As

Línea 3: Mediante la instrucción InputBox solicitamos un nombre al usuario y lo guardamos en la variable

Nombre.

Línea 4: Mediante la instrucción If iniciamos el bloque de decisión y comprobamos si valor guardado en

la Variable Nombre es Alex y de ser así pasamos el control a la instrucción Then, que pasa el

Página 4

Fin

No te conozco + Nombre

Hola Alex!

Nombre = Alex

Nombre

Macro Nombres

1

123456789

2

Page 6: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

control a la línea 5, sino pasa el control a la línea 6, literalmente “Si Nombre es igual a Alex

entonces”

Línea 5: Mediante la instrucción Msgbox mostramos un mensaje “Hola” y le concatenamos el valor de

Nombre.

Línea 6: Mediante la instrucción Else se indica que si no se ha cumplido la condición anterior (Nombre =

“Alex”) se ejecute la línea 7

Línea 7: Mediante la instrucción MsgBox se muestra un mensaje “No te conozco” y se le concatena el

valor de Nombre.

Línea 8: Mediante la instrucción End If acabamos con el bloque de decisión.

Línea 9: Mediante la instrucción End Sub acabamos con la macro.

Página 5

1

2

Page 7: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplo 3: Instrucción Condicional

Solicita un monto, un periodo de tiempo, una tasa y devuelve el interés simple generado. A los datos ingresados se les hace comprobación para determinar si son válidos.

Diagrama del Problema

Página 6

Macro Interés Simple

Principal

Principal > 0

Principal

Tiempo

Tiempo > 0

Tasa

Tasa > 0

Resultado = Principal * (Tasa / 100) * Tiempo

Fin

Datos no válidos

Datos no válidos

Datos no válidos

1

2

Page 8: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Sub InteresSimple()Dim Principal As CurrencyDim Tiempo As IntegerDim Tasa As SingleDim Resultado As SingleEntradaCapital: Principal = InputBox("Ingrese el capital a Invertir", "Cálculo Principal") If Principal <= 0 Then MsgBox "Datos no válidos", vbCritical + vbOKOnly, "Error en Datos" GoTo EntradaCapital End IfEntradaTiempo: Tiempo = InputBox("Ingrese el periodo de tiempo") If Tiempo <= 0 Then MsgBox "Datos no válidos", vbCritical + vbOKOnly, "Erro en Datos" GoTo EntradaTiempo End IfEntradaTasa: Tasa = InputBox("Ingrese el valor de la tasa sin el signo de %", "Ingreso de Tasa") If Tasa <= 0 Then MsgBox "Datos no válidos", vbCritical + vbOKOnly, "Error en Datos" GoTo EntradaTasa End IfResultado = Principal * (Tasa / 100) * TiempoMsgBox "El interés generado es de " & Resultado, vbInformation + vbOKOnly, "Interés Generado"End Sub

Explicación:

Línea 1: Sub es la instrucción que inicia la macro, la indicación InteresSimple() corresponde al nombre

que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea

conveniente.

Línea2: Declaramos una variable de nombre Principal mediante la instrucción Dim y le asignamos el tipo

de Datos Currency (Moneda) mediante la instrucción As

Línea 3: Declaramos una variable de nombre Tiempo mediante la instrucción Dim y le asignamos el tipo

de Datos Integer (Entero) mediante la instrucción As

Línea 4: Declaramos una variable de nombre Tasa mediante la instrucción Dim y le asignamos el tipo de

Datos Single (Simple) mediante la instrucción As

Línea 5: Declaramos una variable de nombre Resultado mediante la instrucción Dim y le asignamos el

tipo de Datos Single (Simple) mediante la instrucción As

Línea 6: Asignamos una etiqueta EntradaCapital para luego hacer referencia a esa línea de código.

Línea 7: Mediante la instrucción InputBox solicitamos un capital al usuario y lo guardamos en la variable

Principal.

Página 7

1

123456789

1011121314151617181920212223242526

2

Page 9: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Línea 8: Mediante la instrucción If iniciamos el bloque de decisión y comprobamos si valor guardado en

la Variable Principal es menor o igual a cero y de ser así pasamos el control a la instrucción Then,

que pasa el control a la línea 9, sino pasa el control a la línea 11, literalmente “Si Principal es

negativo o cero entonces”

Línea 9: Mediante la instrucción MsgBox se muestra un mensaje de Datos no válidos.

Línea 10: Mediante la instrucción GoTo pasamos el control a la etiqueta EntradaCapital (Línea 6)

Línea 11: Mediante la instrucción End If acabamos con el bloque de decisión.

Línea 12: Asignamos una etiqueta EntradaTiempo para luego hacer referencia a esa línea de código.

Línea 13: Mediante la instrucción InputBox solicitamos un periodo de tiempo al usuario y lo guardamos

en la variable Tiempo.

Línea 14: Mediante la instrucción If iniciamos el bloque de decisión y comprobamos si valor guardado en

la Variable Tiempo es menor o igual a cero y de ser así pasamos el control a la instrucción Then,

que pasa el control a la línea 15, sino pasa el control a la línea 17, literalmente “Si Tiempo es

negativo o cero entonces”

Línea 15: Mediante la instrucción MsgBox se muestra un mensaje de Datos no válidos.

Línea 16: Mediante la instrucción GoTo pasamos el control a la etiqueta EntradaTiempo (Línea 12)

Línea 17: Mediante la instrucción End If acabamos con el bloque de decisión.

Línea 18: Asignamos una etiqueta EntradaTasa para luego hacer referencia a esa línea de código.

Línea 19: Mediante la instrucción InputBox solicitamos un tasa de interés al usuario y lo guardamos en la

variable Tasa.

Línea 20: Mediante la instrucción If iniciamos el bloque de decisión y comprobamos si valor guardado en

la Variable Tasa es menor o igual a cero y de ser así pasamos el control a la instrucción Then, que

pasa el control a la línea 21, sino pasa el control a la línea 23, literalmente “Si Tasa es negativo o

cero entonces”

Línea 21: Mediante la instrucción MsgBox se muestra un mensaje de Datos no válidos.

Línea 22: Mediante la instrucción GoTo pasamos el control a la etiqueta EntradaTasa (Línea 18)

Línea 23: Mediante la instrucción End If acabamos con el bloque de decisión.

Línea 24: Asignamos a la variable Resultado el valor resultante de la fórmula de interés simple (C*r*t),

siendo en este caso C=Capital, r= (Tasa/100) y t = Tiempo

Línea 25: Mediante la instrucción MsgBox se muestra un mensaje con el valor de la variable Resultado.

Línea 26: Mediante la instrucción End Sub acabamos con la macro.

Ejercicios Propuestos

1) Crear una macro que solicite dos números enteros y devuelva un mensaje indicando cuál es el mayor.

2) Crear una macro que solicite tres números y devuelva un mensaje con los números ordenados de manera descendente (de mayor a menor).

3) Crear una macro que solicite el capital invertido(Principal), el periodo de inversión y el capital obtenido al final del periodo y devuelva un mensaje con la tasa aplicada para obtener dicho capital.(Interés simple)

Página 8

1

2

Page 10: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplo 4: Instrucción Condicional

Solicita un dato y devuelve un mensaje indicando si es positivo, negativo o cero.

Diagrama del Problema

Ver Ejemplo 4

Sub Numeros()Dim Valor1 As DoubleValor1 = InputBox("Ingrese un número", "Ingreso de Datos")Select Case Valor1 Case Is > 0 MsgBox "El valor es número positivo", vbInformation + vbOKOnly, "Información" Case Is < 0 MsgBox "El valor es número negativo", vbInformation + vbOKOnly, "Información" Case Else MsgBox "El valor es cero", vbInformation + vbOKOnly, "Información"End SelectEnd Sub

Explicación:

Línea 1: Sub es la instrucción que inicia la macro, la indicación Numeros() corresponde al nombre que

hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea

conveniente.

Línea2: Declaramos una variable de nombre Valor1 mediante la instrucción Dim y le asignamos el tipo de

Datos Double (Doble) mediante la instrucción As

Línea 3: Mediante la instrucción InputBox solicitamos un dato al usuario y lo guardamos en la variable

Valor1.

Línea 4: Mediante la instrucción Select Case iniciamos el bloque de decisión y comprobamos las diversas

posibilidades para el valor guardado en la Variable Valor1, literalmente “Seleccionar el caso para

Valor1”

Línea 5: Mediante la instrucción Case Is se determina si el valor guardado en Valor1 es mayor a Cero y

de ser así se pasa el control a la línea 6, en caso contrario se pasa a la línea 7.

Línea 6: Mediante la instrucción Msgbox mostramos un mensaje donde se indica que el número es

positivo.

Línea 7: Mediante la instrucción Case Is se determina si el valor guardado en Valor1 es menor a Cero y

de ser así se pasa el control a la línea 8, en caso contrario se pasa a la línea 9.

Línea 8: Mediante la instrucción MsgBox se muestra un mensaje donde se indica que el número es

negativo

Línea 9: Mediante la instrucción Case Eslse se indica que si el valor guardado en Valor1 no cumple

ninguno de los casos anteriores se pasa el control a la línea 10.

Línea 10: Mediante la instrucción MsgBox se muestra un mensaje indicando que el número es cero.

Línea 11: Mediante la instrucción End Select acabamos con el bloque de decisión.

Página 9

1

123456789

101112

2

Page 11: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Línea 12: Mediante la instrucción End Sub acabamos con la macro.

Página 10

1

2

Page 12: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Macro Días Semana

DomingoLunesMartesMiércolesJuevesViernesSábado

Día

Dia ≥1 y Dia ≤7

Domingo

Dia

123456 7

Lunes MartesMiércole

sJueves Viernes Sábado

Datos No válidos

Fin

Ejemplo 5: Instrucción Condicional

Muestra una lista de los días de la semana, solicita que se seleccione uno de ellos y muestra el mensaje “Días solicitado es…”

Diagrama del Problema

Página 11

1

2

Page 13: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Sub DiasSemana()Dim Dia As IntegerDim Dias As StringIngresoDias:

Dia = InputBox("1-Domingo" & Chr(13) & "2-Lunes" & Chr(13) & "3-Martes" & Chr(13) & "4-Miércoles" & Chr(13) & "5-Jueves" & Chr(13) & "6-Viernes" & Chr(13) & "7-Sábado" & Chr(13) & "Ingrese el número correspondiente al día de la semana", "Ingreso de Datos")

If Dia < 1 Or Dia > 7 Then MsgBox "Datos no válidos, ingrese un número de la lista" GoTo IngresoDias End If

Select Case Dia Case 1 Dias = "Domingo" Case 2 Dias = "Lunes" Case 3 Dias = "Martes" Case 4 Dias = "Miércoles" Case 5 Dias = "Jueves" Case 6 Dias = "Viernes" Case 7 Dias = "Sábado"

End SelectMsgBox "Día seleccionado es " & Dias, vbExclamation + vbOKOnly, "Días"

End Sub

Explicación

Línea 1: Sub es la instrucción que inicia la macro, la indicación DiasSemana() corresponde al nombre

que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea

conveniente.

Línea 2: Declaramos una variable de nombre Dia mediante la instrucción Dim y le asignamos el tipo de

Datos Integer (Entero) mediante la instrucción As

Línea 3: Declaramos una variable de nombre Dias mediante la instrucción Dim y le asignamos el tipo de

Datos String (Cadena de Texto) mediante la instrucción As

Línea 4: Asignamos una etiqueta IngresoDias para luego hacer referencia a esa línea de código.

Línea 5, 6 y 7: Mediante la instrucción InputBox mostramos una lista al usuario y solicitamos un dato

guardándolo en la variable Dia.

Línea 4: Mediante la instrucción Select Case iniciamos el bloque de decisión y comprobamos las diversas

posibilidades para el valor guardado en la Variable Valor1, literalmente “Seleccionar el caso para

Valor1”

Página 12

1

1234

56789

1011121314151617181920212223242526272829

2

Page 14: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Línea 5: Mediante la instrucción Case Is se determina si el valor guardado en Valor1 es mayor a Cero y

de ser así se pasa el control a la línea 6, en caso contrario se pasa a la línea 7.

Línea 6: Mediante la instrucción Msgbox mostramos un mensaje donde se indica que el número es

positivo.

Línea 7: Mediante la instrucción Case Is se determina si el valor guardado en Valor1 es menor a Cero y

de ser así se pasa el control a la línea 8, en caso contrario se pasa a la línea 9.

Línea 8: Mediante la instrucción MsgBox se muestra un mensaje donde se indica que el número es

negativo

Línea 9: Mediante la instrucción Case Eslse se indica que si el valor guardado en Valor1 no cumple

ninguno de los casos anteriores se pasa el control a la línea 10.

Línea 10: Mediante la instrucción MsgBox se muestra un mensaje indicando que el número es cero.

Línea 11: Mediante la instrucción End Select acabamos con el bloque de decisión.

Línea 12: Mediante la instrucción End Sub acabamos con la macro.

Página 13

1

2

Page 15: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Sub Bucle Mensaje

Indice

Indice >0Datos Incorrectos

Inicio x= 1 hasta x= Indice

Bucle Número + x

Fin de Bucle x

Fin

Ejemplo 6: Bucle for

Solicita un número entero y muestra el mensaje “Bucle número …”.

Diagrama del Problema

Sub BucleMensaje() Dim Indice As IntegerIngreso: Indice = InputBox("Ingrese un número entero positivo", "Ingreso de Datos") If Indice <= 0 Then MsgBox "Número no válido, ingrese un número positivo", vbCritical + vbOKOnly, "Error en Datos" GoTo Ingreso End If For x = 1 To Indice MsgBox "Bucle número " & x Next xEnd Sub

Página 14

1

123456789

101112

2

Page 16: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Explicación

Línea 1: Sub es la instrucción que inicia la macro, la indicación BucleMensaje() corresponde al nombre

que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea

conveniente.

Línea 2: Declaramos una variable de nombre Indice mediante la instrucción Dim y le asignamos el tipo

de Datos Integer (Entero) mediante la instrucción As

Línea 3: Asignamos una etiqueta Ingreso para luego hacer referencia a esa línea de código.

Línea 4: Mediante la instrucción InputBox solicitamos un entero al usuario y lo guardamos en la variable

Indice.

Línea 5: Mediante la instrucción If iniciamos el bloque de decisión y comprobamos si valor guardado en

la Variable Indice es menor o igual a cero y de ser así pasamos el control a la instrucción Then,

que pasa el control a la línea 6, sino pasa el control a la línea 8, literalmente “Si Indice es

negativo o cero entonces”

Línea 6: Mediante la instrucción MsgBox se muestra un mensaje de Datos no válidos.

Línea 7: Mediante la instrucción GoTo pasamos el control a la etiqueta Ingreso (Línea 3)

Línea 8: Mediante la instrucción End If acabamos con el bloque de decisión.

Línea 9: Mediante la instrucción For se inicia un bucle inicia con un contador x = 1 aumentando en 1 y

mediante la instrucción To se indica que finaliza cuando x tenga el mismo valor que Indice.

Línea 10: Mediante la instrucción MsgBox se muestra un mensaje en el cual se indica el valor de la x para

cada repetición del bucle.

Línea 11: Mediante la instrucción Next se aumenta el valor de la x en 1 y se devuelve el control a la línea

10

Línea 12: Mediante la instrucción End Sub acabamos con la macro.

Página 15

1

2

Page 17: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplo 7: Ingreso de Datos en una Matriz

Solicita un conjunto de cuatro Referencias a celdas y las muestra luego en un mensaje.

Diagrama del Problema

Sub LlenaMatrix() Dim MiMatriz(3) As String Dim Resultado As String For x = 0 To 3 MiMatriz(x) = InputBox("Ingrese una referencia a celda tipo A1", "Ingreso de Datos") Next x For j = 0 To 3 Resultado = Resultado & Chr(13) & MiMatriz(j) Next j MsgBox "Las referencias ingresadas son: " & Resultado, vbInformation + vbOKOnly, "Salida de Datos"End Sub

Explicación

Línea 1: Sub es la instrucción que inicia la macro, la indicación LlenaMatrix()

corresponde al nombre que hemos asignado a dicha macro, este nombre

puede cambiarse por cualquier otro que se crea conveniente.

Línea 2: Declaramos una Matriz de nombre MiMatriz de cuatro elementos mediante la

instrucción Dim y le asignamos el tipo de Datos String (Cadena de Texto)

mediante la instrucción As

Línea 3: Declaramos una variable de nombre Resultado mediante la instrucción

Dim y le asignamos el tipo de datos String ( Cadena de Texto) mediante la

instrucción As.

Línea 4: Mediante la instrucción For se inicia un bucle inicia con un contador x = 0

aumentando en 1 y mediante la instrucción To se indica que finaliza cuando x

tenga el valor 3.

Línea 5: Mediante la instrucción InputBox solicitamos una referencia al usuario y lo

guardamos como el elemento x de la matriz MiMatriz. Esta instrucción se repite

4 veces gracias al bucle, así se llenan cada uno de los elementos de la

matriz.

Línea 6: Mediante la instrucción Next se aumenta el valor de la x en 1 y se devuelve el control a la línea

5.

Línea 7: Mediante la instrucción For se inicia un bucle inicia con un contador j = 0 aumentando en 1 y

mediante la instrucción To se indica que finaliza cuando j tenga el valor 3.

Línea 8: Se concatena en cada ciclo del bucle los valores guardados en los elementos de la matriz

MiMatriz en la variable Resultado. El uso de la función Chr con el parámetro 13 es para ingresar

Página 16

Maccro Llena Matriz

Bucle inicio en x=0 hasta x= 3

MiMatriz(x)

Fin de bucle x

Bucle Inicia con j=0 hasta j=3

Resultado= Resultado + MiMatriz(j)

Fin bucle j

Resultado

Fin

1

123456789

10111213

2

Page 18: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

un retorno de carro para que aparezcan los resultado en una lista y no en la misma línea de

mensaje cuando se muestren en pantalla.

Línea 9: Mediante la instrucción Next se aumenta el valor de la j en 1 y se devuelve el control a la línea 8

Línea 10: Mediante la instrucción MsgBox se muestra un mensaje con el valor de la variable Resultado.

Línea 11: Mediante la instrucción End Sub acabamos con la macro.

Página 17

1

2

Page 19: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplo 8: Bucle Condicional Do

Juego donde se le pide adivinar un número entre 1 y 100, en cinco intentos.

Diagrama del Problema

Juego Adivina

ElNumero aleatorio de 1 a

100

Contador=1

Contador < 6

MiNumero

MiNumero = ElNumero

Has adivinado el numero en +Contador + intentos

Has perdido, el número es + ElNumero

MiNumero < ElNumeroEl número

buscado es mayor

El número buscado es

menor

Contador + 1

Fin

Página 18

1

2

Page 20: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Sub JuegoAdivina()Dim Contador As IntegerDim MiNumero As IntegerDim ElNumero As IntegerContador = 1Randomize ‘ Esta instrucción permite generar un número al azarElNumero = Int((100 * Rnd) + 1) ‘Int transforma en entero y Rnd es el número generado por RandomizeDo While Contador < 6 MiNumero = InputBox("Ingrese un número de 1 a 100") If MiNumero = ElNumero Then MsgBox "Has adivinado en número en " & Contador & " intentos" Exit Do Else Contador = Contador + 1 If MiNumero < ElNumero Then MsgBox "El número buscado es mayor a " & MiNumero, vbInformation + vbOKOnly, "Salida de Datos" Else MsgBox "El número buscado es menor a " & MiNumero, vbInformation + vbOKOnly, "Salida de Datos" End If End IfLoopIf MiNumero <> ElNumero Then MsgBox "Perdiste!" & Chr(13) & "El Número buscado era " & ElNumeroEnd Sub

Página 19

1

123456789

1011121314151617181920212223242526

27

2

Page 21: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Ejemplo 9: Recorrido de una Matriz

Se solicita un nombre, se busca en la matriz de nombres que se cuenta y se emite un mensaje si no está dentro de la lista de nombres.

Comprueba Nombre

Nombres()

Nombre

Bucle para cada elemento de Nombres()

Nombre=Nombres(i)El Nombre se

encuentra en la base de datos

Fin de Bucle Nombres()

El Nombre no se encuentra en la base de datos

Fin

Sub ListaNombres() Dim Nombres(4) As String Dim Nombre As String Dim NombreComprueba As String NombreComprueba = "" 'Ingreso de los nombres en la matriz

Página 20

1

123456

2

Page 22: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Nombres(0) = "Alexander" Nombres(1) = "Carlos" Nombres(2) = "Juan" Nombres(3) = "Marta" Nombres(4) = "Carmen" 'Solicitud del nombre Nombre = InputBox("Ingrese un Nombre", "Nombre") 'Recorrido de la matriz For Each Name In Nombres If Nombre = Name Then MsgBox "El Nombre se encuentra en la base de datos", vbInformation + vbOKOnly, "Resultado de Búsqueda" NombreComprueba = Name Exit For End If Next Name If NombreComprueba <> Nombre Then MsgBox "El nombre no se encuentra en la base de datos", vbExclamation + vbOKOnly, "Resultado de Búsqueda"End Sub

Ejercicios Propuestos:

1) Crear una macro que solicite dos números enteros y devuelva un listado de todos los números comprendidos entre ellos.

2) Crear una macro que solicite cuatro nombres y devuelva el mensaje “Hola, {Nombre}”

Ejemplo 10: Creación de libros

La siguiente macro crea un libro nuevo y oculta sus dos últimas hojas.

Sub CreaLibro() Dim LibroCreado As Workbook Set LibroCreado = Workbooks.Add LibroCreado.Worksheets(2).Visible = False LibroCreado.Worksheets(3).Visible = FalseEnd Sub

Ejemplo 11: Nombra Hojas

La siguiente macro crea un libro nuevo y da el nombre de “Principal”, “Datos Borrador”, “Datos Fijos” a sus respectivas hojas.

Sub NombraHojas() Dim LibroCreado As Workbook Set LibroCreado = Workbooks.Add

Página 21

1

123456789

1011121314151617181920

21222324252627

282930

2

Page 23: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

With LibroCreado .Worksheets(1).Name = "Principal" .Worksheets(2).Name = "Datos Borrador" .Worksheets(3).Name = "Datos Fijos" End WithEnd Sub

Ejemplo 12: Crea hoja y agrega datos

La siguiente macro solicita diez datos numéricos, crea una hoja llamada “Suma de Datos” e ingresa los datos en columna a partir de la celda que se le especifique.

Caso 1: Se ingresan todos los datos una vez digitados en el rango correspondienteSub IngresaDatos() Dim LibroCreado As Workbook Dim Datos(9) As Double Dim Rango As String Set LibroCreado = Workbooks.Add With LibroCreado .Worksheets.Add After:=Worksheets(Worksheets.Count) .Worksheets(Worksheets.Count).Name = "Suma de Datos" End With For x = 0 To 9 Datos(x) = InputBox("Ingrese Dato", "Ingreso de Datos") Next x Rango = InputBox("Ingrese el rango o referencia", "Ingreso de Rangos") For j = 0 To 9 WorkSheets(“Suma de Datos”).Range(Rango).Offset(j, 0).Value = Datos(j) Next jEnd Sub

Caso II: Los Datos se van agregando a como se ingresan.Sub IngresoDatos2() Dim LibroCreado As Workbook Dim Datos As Double Dim Rango As String Set LibroCreado = Workbooks.Add With LibroCreado .Worksheets.Add After:=Worksheets(Worksheets.Count) .Worksheets(Worksheets.Count).Name = "Suma de Datos" End With Rango = InputBox("Ingrese el rango o referencia", "Ingreso de Rangos") For x = 0 To 9 Datos = InputBox("Ingrese Dato", "Ingreso de Datos") WorkSheets(“Suma de Datos”).Range(Rango).Offset(x, 0).Value = Datos Next xEnd Sub

Ejemplo 13: Rellena las celdas de A2 a A6 de la hoja activa con los pares del 2 al diez.

Sub rellenar() Dim Fila As Integer

Página 22

1

123456

789

101112131415161718192021222324

252627282930313233343536373839

4041

2

Page 24: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

Fila = 2 For i = 2 To 10 Step 2 ActiveSheet.Cells(Fila, 1).Value = i Fila = Fila + 1 Next iEnd Sub

Ejemplo 14: Crea una base de datos en la Hoja3 y rellena los registros.

Sub Registros() 'Rellenar los registros de una Base de Datos. Hoja3 Dim Nombre As String Dim Ciudad As String Dim Edad As Integer Dim fecha As Date 'Activar Hoja3 Worksheets("Hoja3").Activate With ActiveSheet .Range("B4").Value = "Nombre" .Range("C4").Value = "Ciudad" .Range("D4").Value = "Edad" .Range("E4").Value = "Fecha" End With

'Para poner negrita y centrar la cabecera

Range("B4:E4").Select With Selection .Font.Bold = True .HorizontalAlignment = xlCenter End With

'Activar casilla B5

ActiveSheet.Range("B5").Activate Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 'Mientras la variable Nombre sea diferente a cadena vacía

Do While Nombre <> "" Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") Edad = Val(InputBox("Entre la Edad : ", "Edad")) fecha = CDate(InputBox("Entra la Fecha : ", "Fecha")) 'Copiar los datos en las casillas correspondientes

With ActiveCell .Value = Nombre .Offset(0, 1).Value = Ciudad .Offset(0, 2).Value = Edad .Offset(0, 3).Value = fecha End With 'Hacer activa la celda de la fila siguiente a la actual

Página 23

1

123456

789

1011121314151617181920

21

222324252627

28

293031

3233343536

37383940414243

2

Page 25: Visual Basic Para Aplicaciones(Ejemplos y Ejercicios)

ActiveCell.Offset(1, 0).Activate Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") Loop

'Seleccionamos la Base de Datos y la ponemos de color amarillo

Application.Goto Reference:="R4C2" Selection.CurrentRegion.Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End WithEnd Sub

Página 24

1

1234

5

6789

101112

2