Ejercicios 02 - Sentencias VBA

download Ejercicios 02 - Sentencias VBA

of 3

Transcript of Ejercicios 02 - Sentencias VBA

Microsoft Word - Ejercicio 2 - Sentencias.docx

VBA - Macros Excel 2013

Funcion: InputBox() Ingreso de datos En VBA los datos se ingresan usando el mtodo InputBox() el cual abre una ventana de dilogo. La sintaxis de este mtodo es: expresin.InputBox(Prompt[,Title][,Default][,XPos][,YPox] [,HelpFile] [,Context]) donde expression Es el nombre de un determinado objeto Application. Si no se usa, asume Aplication. Prompt Cadena de caracteres, requerido. Es usado como informacin al usuario sobre lo que se le pide que ingrese. Title Cadena de caracteres de tipo Variant, opcional. Es usado para colocarlo en la barra de titulo de la ventana de dilogo. Default Es opcional. Es el valor que se asigna a la variable receptora, si no se digita ningn dato. XPos Es la posicin horizontal (en pixels) a partir de la cual se visualizar la ventana YPos Es la posicin vertical (en pixels)a partir de la cual se visualizar la ventana. HelpFile Es el nombre del archivo de ayuda. Context Es la posicin o ubicacin dentro del tema de la ayuda, relativo a la instruccin. Funcin MsgBox(..) Salida de datos Para poder emitir o imprimir en pantalla el contenido de una variable o el resultado de un clculo, se usa la funcin MsgBox (), el cual abre una ventana en cual se visualizar todos los resultados emitidos. La sintaxis de este mtodo es el siguiente: MsgBox (Prompt [,Botones] [,Title] [,HelpFile] [Context]) donde Prompt Cadena de caracteres de hasta 1024 bytes. Si ocupa ms de una lnea se puede separar usando el carcter de retorno de carro CHR(13), o un carcter de avance de lnea CHR(10) o una combinacin de los dos: CHR(13)+CHR(10). Botones Permite mostrar u determinado tipo d botn a travs de un icono. La siguiente tabla muestra la lista de las variables internas usadas para mostrar el icono. Constante Valor Descripcion

VbOKOnly 0 Muestra solo en Botn Aceptar

VbOKcancel 1 Muestra los botones Aceptar y Cancelar

VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar o Ignorar

VbYesNoCancel 3 Muestra los botones Si, No o Cancelar

VbYesNo 4 Muestra los botones Si y No

VbRetryCancel 5 Muestra los botones Reintentar y Cancelar

Vbcritical 16 Muestra el icono de mensaje critico

VbQuestion 32 Muestra el icono de pregunta de advertencia

VbExclation 48 Muestra el icono de mensaje de advertencia

VbInformation 64 Muestra el icono de mensaje de informacin

Ing. Miguel Angel Chalco Flores 1 VBA - Macros Excel 2013

Ejemplo 1 Se desea calcular el cuadrado y el cubo de un nmero menor a 100 Sub calculos() Dim x As Integer Dim y As Integer Dim z As Integer x = InputBox("Ingresa un nmero, debe ser menor a 100", "Ingreso de datos") y = x * x z = y * x MsgBox ("El cuadrado del nmero: " & x & " es : " & y & Chr(13) + Chr(10) & "El cubo del nmero: " & x & " es : " & z) End Sub Sentencia IF ELSE END IF Sintaxis If ExpresionCondicional Then [ Sentencias 1 ] Else [ Sentencias 2 ] End If Permite ejecutar el grupo de sentencias 1 siempre que la evaluacin de "ExpresinCondicional" de cmo resultado Verdadero; en caso contrario se ejecuta el grupo de sentencias 2. Ejemplo 1 La macro evala la nota de la celda A1 y si es mayor o igual a 11 devuelve la palabra Aprobado en caso contrario desaprobado en la celda B1 Sub Resultado() Dim nota As Integer, condicion As String nota = Range("A1").Value If nota >= 11 Then condicion = "Aprobado" Else condicion = "Desaprobado" End If Range("B1").Value = condicion End Sub A continuacin realizaremos un ejemplo combinado de las sentencias mencionadas anteriormente Ejemplo 2 Como saber que versin de VBA se tiene y si el sistema Windows es 32 o 64 bits

Ing. Miguel Angel Chalco Flores 2 VBA - Macros Excel 2013

NOTA: VBA 7 es una nueva base de cdigo, en sustitucin de la versin anterior de VBA. VBA 7 existe para las versiones de 32 bits y 64 bits de Office 2010 y Office 2013. Dispone de dos constantes de compilacin condicional: VBA7 y Win64. La constante VBA7 ayuda a asegurar la compatibilidad con versiones anteriores de su cdigo comprobando si su solicitud est usando VBA 7 o la versin anterior de VBA. La constante de Win64 se utiliza para probar si el cdigo se ejecuta como 32 bits o como 64 bits. Estas dos constantes de compilacin se demuestran ms adelante en este artculo. Con ciertas excepciones aparecen en otra parte de este artculo, las macros en un documento (esto tambin incluye libro y presentaciones) que han trabajado con la versin de 32 bits de que la aplicacin funcionar cuando el documento se carga en la versin de 64 bits de la misma aplicacin. Los siguientes son frecuentemente preguntas que se relacionan con las versiones de 32 bits y 64 bits de Microsoft Office. Cundo debo utilizar la versin de 64 bits de Microsoft Office? Esto es ms una cuestin de qu aplicacin host (Excel, Word, etc.) que est utilizando. Por ejemplo, Excel es capaz de manejar hojas de clculo mucho ms grandes con la versin de 64 bits de Microsoft Office. Puedo instalar versiones de 64 bits y 32 bits de Microsoft Office de lado a lado? No. Para nuestro caso este ser el cdigo a ingresar: Sub EsOffice64Bits() #If VBA7 And Win64 Then 'Pregunta si esta version usa VBA7 y el Sistema es a 64 bits Office64 = True #Else Office4 = False #End If If Office64 Then 'Devolvera un mensaje en una caja donde nos dice si la version es a 32 o 64 bits MsgBox "Tienes instalado Office de 64 bits.", vbInformation, "Curso de Excel 2013 - VBA" Else MsgBox "Tienes instalado Office de 32 bits.", vbInformation, " Curso de Excel 2013 - VBA " End If End Sub Ejemplo 3 Comprobar que un nmero escrito en la celda activa es el requerido. Si se cumple, muestra un mensaje diciendo "El cdigo es correcto". Si no se cumple, la macro termina y no informa nada. Sub ComprobarCodigo_1() If ActiveCell = "12170196" Then MsgBox ("El cdigo es correcto") End If End Sub Ejemplo 4

Ing. Miguel Angel Chalco Flores 3 VBA - Macros Excel 2013

Al igual que el ejemplo anterior comprobar que un nmero escrito en una celda determinada es el requerido. Si se cumple, muestra un mensaje diciendo "El cdigo es correcto". Si no se cumple, muestra un mensaje diciendo "El cdigo no es correcto". Sub ComprobarCodigo_2() If Range("A1") = "12170196" Then MsgBox("El cdigo es correcto", vbInformation, "Curso de Excel 2013 - VBA") Else MsgBox("El cdigo no es correcto" ,vbInformation, "Curso de Excel 2013 - VBA") End If End Sub Rutina para agregar un libro Sub Agregarlibro() Workbooks.Add End Sub Rutina para mostrar un mensaje en pantalla con la cantidad de libros abiertos Sub Contarlibros() MsgBox Workbooks.Count End Sub Rutina para borrar el contenido de la celda A1 Sub limpiarango() Range(A1).ClearContents End Sub

Ing. Miguel Angel Chalco Flores 4