Está en la página 1de 3

Objetos de Excel y Programacin en Visual Basic 1 de 3

OBJETOS DE EXCEL EN VISUAL BASIC


Jerarqua de Objetos: Application
Workbooks(Workbook) Worksheets(Worksheet)

.
Range

Ejemplo: Application.Workbooks("NombreLibro.xls").Worksheets("NombreHoja").Range("C2").Propiedad Application.Workbooks(ndiceLibro).Worksheets(ndiceHoja).Range("NombreRango").Mtodo

Application
Propiedades
.Caption .Path .WindowState .DisplayAlerts .ScreenUpdating .DisplayStatusBar .DisplayFormulaBar .StatusBar [String, L/E] [String, L] [L/E] [Boolean, L/E] [Boolean, L/E] [Boolean, L/E] [Boolean, L/E] [String, L/E]

El propio Excel. [Tipo, Lectura/Escritura] Sintaxis: Application.Propiedad = Valor

Ttulo de la Ventana Principal de Excel. Devuelve la Carpeta donde est instalado Excel. xlNormal / xlMaximized / xlMinimized. Estado de la ventana. True / False. Muestra o no los mensajes de alerta. True / False. Actualiza o no la ventana a medida que se ejecuta la subrutina. True / False. Muestra u oculta la barra de estado. True / False. Muestra u oculta la barra de frmulas. Devuelve o establece el texto de la barra de estado. (False si Excel tiene el control). Sintaxis: Application.Mtodo Arg1:=Valor, Arg2:="Cadena", ... [] Recalcula todas las frmulas, de todas las hojas, de todos los libros abiertos. [String, Integer] Muestra un tema de ayuda. [] Cierra Excel. [String, ...] Ejecuta un Procedimiento con sus argumentos si los lleva. Libros de trabajo de Excel. (Los *.xls) Libro que contiene la macro que se ejecuta. Libro activo. (Ejemplo: NombreLibro = ActiveWorkbook.Name ) Referencia a un libro por su nombre. Libro llamado "Libro1.xls". Debe estar abierto! Referencia a un libro por su ndice. Primer libro de la coleccin. Primer libro abierto. ltimo libro de la coleccin. ltimo libro abierto. (Workbooks.Count es la cantidad de libros). Sintaxis: Workbooks(Workbook).Propiedad = "Texto" Devuelve el Nmero de libros de la coleccin de libros abiertos. Propiedad de la Coleccin. Devuelve el Nombre del Libro. (Para cambiarlo usar el mtodo SaveAs). Devuelve la Ruta de acceso al archivo del libro. Nombre del Autor del libro. True / False. Si es False se han hecho cambios en el libro, y no estn salvados. Sintaxis: Workbooks(Workbook).Mtodo Arg1:=Valor, Arg2:=" Texto", ... [String, Bool] Abre un libro existente: FileName:="c:\dir\libro.xls" [] Crea un nuevo libro vaco y lo agrega a la coleccin.

Mtodos Argumentos
.Calculate .Help .Quit .Run Ninguno HelpFile, HelpContextId Ninguno Macro, arg1, arg2, ...

Workbooks
ThisWorkbook ActiveWorkbook Workbooks("Libro1.xls") Workbooks(1) Workbooks(Workbooks.Count)

Propiedades
.Name .Path .Author .Saved

[Tipo, L/E] [String, L] [String, L] [String, L/E] [Boolean, L] Argumentos FileName, ReadOnly Ninguno

Workbooks.Count [Integer, L]

Mtodos
.Open .Add .Activate .Close .Protect .Save .SaveAs .SaveCopyAs

de la Coleccin Workbooks

de un libro determinado

Ninguno [] Activa el libro especificado. SaveChanges, FileName [Bool, String] Cierra el libro, y lo guarda con un nombre si True. Password, Structure, Windows [String, Bool, Bool] Protege el libro, estructura y ventanas. Ninguno [] Guarda el libro, con el nombre actual. FileName [String] Guarda el libro, con un nuevo nombre. FileName [String] Guarda una copia del libro, con un nuevo nombre. Coleccin de Hojas de Trabajo. (Las hojas de un libro Excel) Hoja activa. (Ejemplo: NombreHoja = ActiveSheet.Name ) Hoja llamada "Hoja1". Primera hoja de la coleccin. (Ej: NombreHoja = Worksheets(1).Name ) ltima hoja de la coleccin. (Worksheets.Count es la cantidad de hojas). Sintaxis: Worksheets(Worksheet).Propiedad = "Cadena" Propiedad de la Coleccin. Devuelve el nmero de hojas de la coleccin. Devuelve el ndice nmerico de la hoja dentro de la coleccin de hojas. Nombre de la Hoja. Devuelve la siguiente hoja. (.Previous) la anterior. Devuelve un objeto Range con el rango de la hoja que tiene datos.

Worksheets
ActiveSheet Worksheets("Hoja1") Worksheets(1) Worksheets(Worksheets.Count)

Propiedades
.Index .Name .Next .UsedRange

[Tipo, L/E] [Integer, L] [String, L/E] [Worksheet, L] [Range, L]

Worksheets.Count [Integer, L]

__________________________________________________________________________________________________________________________ 2001 Joaqun Caselles - Curso de Visual Excel (Ver. 2.6 Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es

Objetos de Excel y Programacin en Visual Basic 2 de 3

Mtodos
.Activate .Calculate .Delete .Protect .Paste

Argumentos Ninguno Ninguno Ninguno Password Destination

Sintaxis: Worksheets(Worksheet).Mtodo Arg1:=Valor, Arg2:="Cadena", .. [] Activa la hoja expecificada. [] Recalcula todas las frmulas de la hoja especificada. [] Elimina la hoja especificada. [String] Protege la hoja de clculo. [Range] Pega el rango copiado previamente en otro rango. Rangos dentro de una hoja de Trabajo. Son Colecciones de celdas. Se refiere al rango indicado (Coleccin de una sola celda). Se refiere al rango indicado (Coleccin de varias celdas). Se refiere al rango indicado por medio de un nombre. Se refiere a la Celda Activa (Ojo! No el Rango activo). (Si hay activo un rango de varias celdas, se refiere a la Celda Superior Izquierda). Coleccin de celdas seleccionadas. Sintaxis: Range().Propiedad Devuelve el nmero de celdas contenidas en el rango especificado. Nombre del rango. El valor que tiene un rango. (Si son varias celdas devuelve una matriz) / de frmulas) La frmula contenida en el rango en forma de cadena de texto. (Lo que hay en la barra El valor formateado del rango en forma de cadena de texto. (Lo que muestra la celda) Formato numrico (Ejemplo: "[Blue]#,##0.00 ;[Red]-#,##0.00 ;""Gratis""") Contiene los atributos de fuente (.Name, .size, .Color, .Bold, .Italic, .Underline, etc) Se refiere al interior del Objeto (.Color, .Pattern, .PatternColor,etc) Se refiere a la Fila o Filas Completas del rango. Se refiere a la Columna o Columnas Completas del rango. Se refiere a un rango desplazado tantas filas y columnas desde el rango especificado. Devuelve el nmero de la primera fila (o Columna) de la primera rea del rango. Se refiere a la Coleccin de Filas (o Columnas) del rango especificado. Devuelve un objeto Range con las celdas dependientes de rango. (.Precedents) Sintaxis: Range().Mtoto Arg1:=Valor, Arg2:="Cadena", ... [] Selecciona el Rango (de una o ms celdas). [] Activa una sola celda que si est en la seleccin actual no cambia la seleccin. [] Recalcula todas las frmulas del rango especificado. [Range] Copia el rango en otro rango. Si no se pone el destino, copia al portapapeles. Pega el rango copiado. Se puede especificar lo pegado (Valores, Frmulas, etc.). [xlShiftToLeft / xlShiftUp] Elimina el rango y desplaza segn indicacin. [] Borra los valores del rango, pero mantiene el formato, reglas, etc.

Range
Range("B3") Range("C2:D3") Range("NombreDeRango") ActiveCell Selection.Cells

Propiedades

[Tipo, L/E]

.Count [Integer, L] .Name [String, L/E] .Value [Cualquiera, L/E] .Formula [String, L/E] .Text [String, L] .NumberFormat [String, L/E] .Font [Object, L/E] .Interior [Object, L/E] .EntireRow [Range, L] .EntireColumn [Range, L] .Offset(RowOffset, ColumnOffset) .Row y .Column [Long, L] .Rows y .Columns [Range, L] .Dependents [Range, L]

Mtodos
.Select .Activate .Calculate .Copy .PasteSpecial .Delete .ClearContents

Argumentos Ninguno Ninguno Ninguno Destination [Varios Opcionales] Shift Ninguno

Programacin de Cdigo en Visual Basic for Applications (VBA)


Option Explicit Option Base 1 Option Compare {Binary | Text | Database} Dim Variable1 As Tipo Public Variable1 As Tipo Type TipoPersonal Campo1 As Tipo Campo2 As Tipo End Type ' Fuerza la Declaracin explcita de Variables con Dim. ' Indica el ndice base de los arrays. Por omisin 0. ' Especifica el mtodo de Comparacin de Textos en el mdulo. ' Declara una Variable Global del Mdulo de tipo Tipo. ' Declara una Variable Pblica del Proyecto de tipo Tipo. ' Define un Tipo de Datos Personal en forma de Registro ' con varios campos del tipo deseado.

' <-- Despus de una comilla simple todo es un Comentario aclaratorio y aparece en verde.

Sub NombreProcedimiento(ByVal Arg1 As Tipo, ByRef Arg2 As Tipo, Optional ByRef Arg3opc As Variant) Const Constante1 As Tipo = Valor ' Declara una Constante y le asigna el valor Valor. Dim Variable1 As Tipo ' Declara una Variable Local de tipo Tipo. Dim Array1(5, 8) As Tipo ' Declara un Array de 5 x 8 datos del tipo Tipo. Hasta 60 dimensiones. Dim Array1(3 to 7) As Tipo ' Declara un Array de 5 datos (del 3 al 7) del tipo Tipo. Array1(3,7) = Valor Variable1 = NombreFuncin(Arg1, Arg2) Set Var_Objeto = {[New] Objeto | Nothing} Call NombreProcedimiento2(Arg1, Arg2) NombreProcedimiento2 Arg1, Arg2 Instruccin : Otra Instruccin ms larga que no cabe en la lnea anterior End Sub ' Asigna Valor al elemento (3,7) del array Array1. ' Asigna a Variable1 lo que devuelve NombreFuncin. ' Asigna una Referencia de Objeto a una Variable o Propiedad ' Ejecuta el Procedimiento NombreProcedimiento2. ' Ejecuta el Procedimiento NombreProcedimiento2. ' El Espacio + Subrayado sirve para continuar en la lnea siguiente. ' Y los (:) para escribir varias instrucciones en la misma lnea.

__________________________________________________________________________________________________________________________ 2001 Joaqun Caselles - Curso de Visual Excel (Ver. 2.6 Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es

Objetos de Excel y Programacin en Visual Basic 3 de 3

Function NombreFuncin(ByVal Arg1 As Tipo, ByRef Arg2 As Tipo, Optional ByRef Arg3opc As Variant) As Tipo Instrucciones y Clculos necesarios para obtener una Expresin_Resultado .... NombreFuncin = Expresin_Resultado ' La Funcin NombreFuncin devolver Expresin_Resultado. End Function

Tipos de Datos
Nombre Boolean String Byte Integer Long Single Double Currency Decimal Date Object Variant Tamao Contenido 2 bytes 1 byte Cadena 1 byte Bytes 2 bytes Enteros 4 bytes Enteros largos 4 bytes Reales 8 bytes Reales 8 bytes Moneda 14 bytes Reales largos 8 bytes Fecha y Hora 4 bytes Objeto 16 bytes Variante Rango del Contenido True / False 1 byte / carcter + 10 bytes de cabecera. Hasta 2.000 millones de caracteres. 0..255 -32.768..32.767 Enteros -2.147.483.648..2.147.483.647 Simple Precisin en coma flotante. 1,401298E-45..3,402823E38 (7 dgitos) Doble Precisin en coma flotante. 4,94065645841247E-324..1,79769313486232E308 -922.337.203.685.477,5808.....922.337.203.685.477,5807 (922 Billones) (15 + 4) +/-79.228.162.514.264.337.593.543.950.335 (29 1 + 28) 1/1/100.....31/12/9999 ( -657.434.....2.958.465 ) Almacena cualquier referencia a un objeto de Excel. El tipo por defecto si no se especifica otro. (Admite cualquiera de los anteriores).

Estructuras de Control de Flujo


Flujo Alternativo Condicional
If Condicin Then Instrucciones Si Condicin es Cierta 2 Else 'Clusula Opcional Instrucciones Si Condicin es Falsa End If If Condicin Then Instrucciones Si Condicin es Cierta Else 3 If Condicin 2 Then Instrucciones Si Condicin2 es Cierta End If End If If Condicin 1 Then Instrucciones Si Condicin 1 es Cierta ElseIf Condicin 2 Then 4 Instrucciones Si Condicin 1 es Falsa y Condicin 2 es Cierta End If (If)

Bucle para Recorrer Colecciones (For Each)


For Each Elemento In Coleccin Instrucciones Una iteracin para cada Next Elemento elemento de la Coleccin

1 If Condicin Then Instruc. Si Condicin Cierta : Otra Instr.

Bucle de Repeticin Conocida

(For Next)

For Contador = 1 To 100 Step 2 'Step es Opcional Instrucciones En cada iteracin la variable se Next Contador incrementa lo que indique Step

Bucles de Repeticin Desconocida (Do Loop)


0 While Condicin Instrucciones mientras Condicin sea Cierta Wend Do While Condicin Instrucciones mientras Condicin sea Cierta Loop Do Until Condicin Instrucciones hasta que Condicin sea Cierta Loop Do Instruc. se repiten mientras Condicin Cierta Loop While Condicin Do Instruc. se repiten hasta que Condicin Cierta Loop Until Condicin

2 (Select Case) 3

Flujo Alternativo Evaluativo

Select Case Expresin Case Valor1 : Instrucciones si Expresin = Valor1 Case Valor2, Valor3 Instrucciones si Expresin = Valor2 Expresin = Valor3 Case 1 To 4, 9 : Instrucciones si Expresin = 1....4 9 Case 5 To 8 : Instrucciones si Expresin = 5....8 Case Else : Instrucciones Si Ninguno Anterior 'Opcional End Select

Nota: La sintaxis n 0 est en desuso a favor de las ms modernas 1 a 4 (do loop). (La n 0 es idntica a la n1)

Referencias Abreviadas
With Objeto .Propiedad = Valor With .SubObjeto .Mtodo = Valor End With End With ' Idntico a Objeto.Propiedad = Valor ' Idntico a Objeto.SubObjeto.Mtodo = Valor Nota: Una vez que se ha entrado en un bloque With no es posible cambiar el objeto. Por tanto, no se puede utilizar una nica instruccin With para varios objetos.

__________________________________________________________________________________________________________________________ 2001 Joaqun Caselles - Curso de Visual Excel (Ver. 2.6 Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es

También podría gustarte