SlideShare una empresa de Scribd logo
Objetos de Excel y Programación en Visual Basic · 1 de 3
__________________________________________________________________________________________________________________________
© 2001 Joaquín Caselles - Curso de Visual Excel (Ver. 2.6 · Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es
OBJETOS DE EXCEL EN VISUAL BASIC .
Jerarquía 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").Método
♣ Application El propio Excel.
Propiedades [Tipo, Lectura/Escritura] Sintaxis: Application.Propiedad = Valor
.Caption [String, L/E] Título de la Ventana Principal de Excel.
.Path [String, L] Devuelve la Carpeta donde está instalado Excel.
.WindowState [L/E] xlNormal / xlMaximized / xlMinimized. Estado de la ventana.
.DisplayAlerts [Boolean, L/E] True / False. Muestra o no los mensajes de alerta.
.ScreenUpdating [Boolean, L/E] True / False. Actualiza o no la ventana a medida que se ejecuta la subrutina.
.DisplayStatusBar [Boolean, L/E] True / False. Muestra u oculta la barra de estado.
.DisplayFormulaBar [Boolean, L/E] True / False. Muestra u oculta la barra de fórmulas.
.StatusBar [String, L/E] Devuelve o establece el texto de la barra de estado. (False si Excel tiene el control).
Métodos Argumentos Sintaxis: Application.Método Arg1:=Valor, Arg2:="Cadena", ...
.Calculate Ninguno [] Recalcula todas las fórmulas, de todas las hojas, de todos los libros abiertos.
.Help HelpFile, HelpContextId [String, Integer] Muestra un tema de ayuda.
.Quit Ninguno [] Cierra Excel.
.Run Macro, arg1, arg2, ... [String, ...] Ejecuta un Procedimiento con sus argumentos si los lleva.
♣ Workbooks Libros de trabajo de Excel. (Los *.xls)
ThisWorkbook Libro que contiene la macro que se ejecuta.
ActiveWorkbook Libro activo. (Ejemplo: NombreLibro = ActiveWorkbook.Name )
Workbooks("Libro1.xls") Referencia a un libro por su nombre. Libro llamado "Libro1.xls". ¡Debe estar abierto!
Workbooks(1) Referencia a un libro por su Índice. Primer libro de la colección. Primer libro abierto.
Workbooks(Workbooks.Count) Último libro de la colección. Último libro abierto. (Workbooks.Count es la cantidad de libros).
Propiedades [Tipo, L/E] Sintaxis: Workbooks(Workbook).Propiedad = "Texto"
Workbooks.Count [Integer, L] Devuelve el Número de libros de la colección de libros abiertos. Propiedad de la Colección.
.Name [String, L] Devuelve el Nombre del Libro. (Para cambiarlo usar el método SaveAs).
.Path [String, L] Devuelve la Ruta de acceso al archivo del libro.
.Author [String, L/E] Nombre del Autor del libro.
.Saved [Boolean, L] True / False. Si es False se han hecho cambios en el libro, y no están salvados.
Métodos Argumentos Sintaxis: Workbooks(Workbook).Método Arg1:=Valor, Arg2:=" Texto", ...
de la Colección Workbooks
.Open FileName, ReadOnly [String, Bool] Abre un libro existente: FileName:="c:dirlibro.xls"
.Add Ninguno [] Crea un nuevo libro vacío y lo agrega a la colección.
de un libro determinado
.Activate Ninguno [] Activa el libro especificado.
.Close SaveChanges, FileName [Bool, String] Cierra el libro, y lo guarda con un nombre si True.
.Protect Password, Structure, Windows [String, Bool, Bool] Protege el libro, estructura y ventanas.
.Save Ninguno [] Guarda el libro, con el nombre actual.
.SaveAs FileName [String] Guarda el libro, con un nuevo nombre.
.SaveCopyAs FileName [String] Guarda una copia del libro, con un nuevo nombre.
♣ Worksheets Colección de Hojas de Trabajo. (Las hojas de un libro Excel)
ActiveSheet Hoja activa. (Ejemplo: NombreHoja = ActiveSheet.Name )
Worksheets("Hoja1") Hoja llamada "Hoja1".
Worksheets(1) Primera hoja de la colección. (Ej: NombreHoja = Worksheets(1).Name )
Worksheets(Worksheets.Count) Última hoja de la colección. (Worksheets.Count es la cantidad de hojas).
Propiedades [Tipo, L/E] Sintaxis: Worksheets(Worksheet).Propiedad = "Cadena"
Worksheets.Count [Integer, L] Propiedad de la Colección. Devuelve el número de hojas de la colección.
.Index [Integer, L] Devuelve el índice númerico de la hoja dentro de la colección de hojas.
.Name [String, L/E] Nombre de la Hoja.
.Next [Worksheet, L] Devuelve la siguiente hoja. (.Previous) la anterior.
.UsedRange [Range, L] Devuelve un objeto Range con el rango de la hoja que tiene datos.
Objetos de Excel y Programación en Visual Basic · 2 de 3
__________________________________________________________________________________________________________________________
© 2001 Joaquín Caselles - Curso de Visual Excel (Ver. 2.6 · Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es
Métodos Argumentos Sintaxis: Worksheets(Worksheet).Método Arg1:=Valor, Arg2:="Cadena", ..
.Activate Ninguno [] Activa la hoja expecificada.
.Calculate Ninguno [] Recalcula todas las fórmulas de la hoja especificada.
.Delete Ninguno [] Elimina la hoja especificada.
.Protect Password [String] Protege la hoja de cálculo.
.Paste Destination [Range] Pega el rango copiado previamente en otro rango.
♣ Range Rangos dentro de una hoja de Trabajo. Son Colecciones de celdas.
Range("B3") Se refiere al rango indicado (Colección de una sola celda).
Range("C2:D3") Se refiere al rango indicado (Colección de varias celdas).
Range("NombreDeRango") Se refiere al rango indicado por medio de un nombre.
ActiveCell 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).
Selection.Cells Colección de celdas seleccionadas.
Propiedades [Tipo, L/E] Sintaxis: Range().Propiedad
.Count [Integer, L] Devuelve el número de celdas contenidas en el rango especificado.
.Name [String, L/E] Nombre del rango.
.Value [Cualquiera, L/E] El valor que tiene un rango. (Si son varias celdas devuelve una matriz) / …de fórmulas)
.Formula [String, L/E] La fórmula contenida en el rango en forma de cadena de texto. (Lo que hay en la barra…
.Text [String, L] El valor formateado del rango en forma de cadena de texto. (Lo que muestra la celda)
.NumberFormat [String, L/E] Formato numérico (Ejemplo: "[Blue]#,##0.00 € ;[Red]-#,##0.00 € ;""Gratis""")
.Font [Object, L/E] Contiene los atributos de fuente (.Name, .size, .Color, .Bold, .Italic, .Underline, etc)
.Interior [Object, L/E] Se refiere al interior del Objeto (.Color, .Pattern, .PatternColor,etc)
.EntireRow [Range, L] Se refiere a la Fila o Filas Completas del rango.
.EntireColumn [Range, L] Se refiere a la Columna o Columnas Completas del rango.
.Offset(RowOffset, ColumnOffset) Se refiere a un rango desplazado tantas filas y columnas desde el rango especificado.
.Row y .Column [Long, L] Devuelve el número de la primera fila (o Columna) de la primera área del rango.
.Rows y .Columns[Range, L] Se refiere a la Colección de Filas (o Columnas) del rango especificado.
.Dependents [Range, L] Devuelve un objeto Range con las celdas dependientes de rango. (.Precedents)
Métodos Argumentos Sintaxis: Range().Métoto Arg1:=Valor, Arg2:="Cadena", ...
.Select Ninguno [] Selecciona el Rango (de una o más celdas).
.Activate Ninguno [] Activa una sola celda que si está en la selección actual no cambia la selección.
.Calculate Ninguno [] Recalcula todas las fórmulas del rango especificado.
.Copy Destination [Range] Copia el rango en otro rango. Si no se pone el destino, copia al portapapeles.
.PasteSpecial [Varios Opcionales] Pega el rango copiado. Se puede especificar lo pegado (Valores, Fórmulas, etc.).
.Delete Shift [xlShiftToLeft / xlShiftUp] Elimina el rango y desplaza según indicación.
.ClearContents Ninguno [] Borra los valores del rango, pero mantiene el formato, reglas, etc.
Programación de Código en Visual Basic for Applications (VBA)
Option Explicit ' Fuerza la Declaración explícita de Variables con Dim.
Option Base 1 ' Indica el índice base de los arrays. Por omisión 0.
Option Compare {Binary | Text | Database} ' Especifica el método de Comparación de Textos en el módulo.
Dim Variable1 As Tipo ' Declara una Variable Global del Módulo de tipo Tipo.
Public Variable1 As Tipo ' Declara una Variable Pública del Proyecto de tipo Tipo.
Type TipoPersonal ' Define un Tipo de Datos Personal en forma de Registro
Campo1 As Tipo ' con varios campos del tipo deseado.
Campo2 As Tipo
End Type ' <-- Después 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 ' Asigna Valor al elemento (3,7) del array Array1.
Variable1 = NombreFunción(Arg1, Arg2) ' Asigna a Variable1 lo que devuelve NombreFunción.
Set Var_Objeto = {[New] Objeto | Nothing} ' Asigna una Referencia de Objeto a una Variable o Propiedad
Call NombreProcedimiento2(Arg1, Arg2) ' Ejecuta el Procedimiento NombreProcedimiento2.
NombreProcedimiento2 Arg1, Arg2 ' Ejecuta el Procedimiento NombreProcedimiento2.
Instrucción : Otra Instrucción más larga _ ' El Espacio + Subrayado sirve para continuar en la línea siguiente.
que no cabe en la línea anterior ' Y los (:) para escribir varias instrucciones en la misma línea.
End Sub
Objetos de Excel y Programación en Visual Basic · 3 de 3
__________________________________________________________________________________________________________________________
© 2001 Joaquín Caselles - Curso de Visual Excel (Ver. 2.6 · Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es
Function NombreFunción(ByVal Arg1 As Tipo, ByRef Arg2 As Tipo, Optional ByRef Arg3opc As Variant) As Tipo
Instrucciones y Cálculos necesarios para obtener una Expresión_Resultado ....
NombreFunción = Expresión_Resultado ' La Función NombreFunción devolverá Expresión_Resultado.
End Function
Tipos de Datos
Nombre Tamaño Contenido Rango del Contenido
Boolean 2 bytes True / False
String 1 byte Cadena 1 byte / carácter + 10 bytes de cabecera. Hasta 2.000 millones de caracteres.
Byte 1 byte Bytes 0…..255
Integer 2 bytes Enteros -32.768…..32.767 Enteros
Long 4 bytes Enteros largos -2.147.483.648…..2.147.483.647
Single 4 bytes Reales Simple Precisión en coma flotante. 1,401298E-45…..3,402823E38 (7 dígitos)
Double 8 bytes Reales Doble Precisión en coma flotante. 4,94065645841247E-324…..1,79769313486232E308
Currency 8 bytes Moneda -922.337.203.685.477,5808.....922.337.203.685.477,5807 (922 Billones) (15 + 4)
Decimal 14 bytes Reales largos +/-79.228.162.514.264.337.593.543.950.335 (29 ó 1 + 28)
Date 8 bytes Fecha y Hora 1/1/100.....31/12/9999 ( -657.434.....2.958.465 )
Object 4 bytes Objeto Almacena cualquier referencia a un objeto de Excel.
Variant 16 bytes Variante El tipo por defecto si no se especifica otro. (Admite cualquiera de los anteriores).
Estructuras de Control de Flujo
Flujo Alternativo Condicional (If)
1 If Condición Then Instruc. Si Condición Cierta : Otra Instr.
If Condición Then
Instrucciones Si Condición es Cierta
2 Else 'Cláusula Opcional
Instrucciones Si Condición es Falsa
End If
If Condición Then
Instrucciones Si Condición es Cierta
Else
3 If Condición 2 Then
Instrucciones Si Condición2 es Cierta
End If
End If
If Condición 1 Then
Instrucciones Si Condición 1 es Cierta
ElseIf Condición 2 Then
4 Instrucciones Si Condición 1 es Falsa y
Condición 2 es Cierta
End If
Flujo Alternativo Evaluativo (Select Case)
Select Case Expresión
Case Valor1 : Instrucciones si Expresión = Valor1
Case Valor2, Valor3
Instrucciones si Expresión = Valor2 ó Expresión = Valor3
Case 1 To 4, 9: Instrucciones si Expresión = 1....4 ó 9
Case 5 To 8 : Instrucciones si Expresión = 5....8
Case Else : Instrucciones Si Ninguno Anterior 'Opcional
End Select
Bucle para Recorrer Colecciones (For Each)
For Each Elemento In Colección
Instrucciones
Next Elemento
Bucle de Repetición Conocida (For Next)
For Contador = 1 To 100 Step 2 'Step es Opcional
Instrucciones
Next Contador
Bucles de Repetición Desconocida (Do Loop)
While Condición
0 Instrucciones mientras Condición sea Cierta
Wend
Do While Condición
1 Instrucciones mientras Condición sea Cierta
Loop
Do Until Condición
2 Instrucciones hasta que Condición sea Cierta
Loop
Do
3 Instruc. se repiten mientras Condición Cierta
Loop While Condición
Do
4 Instruc. se repiten hasta que Condición Cierta
Loop Until Condición
Nota: La sintaxis nº 0 está en desuso a favor de las más
modernas 1 a 4 (do … loop). (La nº 0 es idéntica a la nº1)
Referencias Abreviadas
With Objeto
.Propiedad = Valor ' Idéntico a Objeto.Propiedad = Valor
With .SubObjeto
.Método = Valor ' Idéntico a Objeto.SubObjeto.Método = Valor
End With
End With
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 instrucción With
para varios objetos.
Una iteración para cada
elemento de la Colección
En cada iteración la variable se
incrementa lo que indique Step

Más contenido relacionado

PDF
Tema 7: Funciones de orden superior en Haskell
PPTX
Programación 3: tablas de dispersión
PDF
Tema 6: Definiciones por recursión en Haskell
PDF
Tema 12: Analizadores sintácticos funcionales.
PDF
I1M2011-T4: Definición de funciones en Haskell
PDF
Tema 11: Aplicaciones de la programación funcional con Haskell
PPTX
Enum y ArrayList en Java
PDF
Funciones excel
Tema 7: Funciones de orden superior en Haskell
Programación 3: tablas de dispersión
Tema 6: Definiciones por recursión en Haskell
Tema 12: Analizadores sintácticos funcionales.
I1M2011-T4: Definición de funciones en Haskell
Tema 11: Aplicaciones de la programación funcional con Haskell
Enum y ArrayList en Java
Funciones excel

La actualidad más candente (20)

PPTX
Mapas y Diccionarios - Colecciones Parametrizadas
PPTX
Colecciones en java
PDF
Guia n5 tam 2009 1
PDF
Base de datos
PDF
Java colecciones
PPTX
Java script estructuras_datos
PPTX
Array List
PPT
Poo 4 arraylist
PDF
Vectores o arreglos con PHP
PDF
Tema 4 clases_y_objetos
PDF
Tema 10: Evaluación perezosa en Haskell
PPT
Diagramadeclase 20090223
PPTX
Complejidad Algoritmica
PDF
Arreglos php
PDF
Apunte del Lenguaje LISP
PDF
Lista fx hojas cálculo google
PDF
colecciones en java
Mapas y Diccionarios - Colecciones Parametrizadas
Colecciones en java
Guia n5 tam 2009 1
Base de datos
Java colecciones
Java script estructuras_datos
Array List
Poo 4 arraylist
Vectores o arreglos con PHP
Tema 4 clases_y_objetos
Tema 10: Evaluación perezosa en Haskell
Diagramadeclase 20090223
Complejidad Algoritmica
Arreglos php
Apunte del Lenguaje LISP
Lista fx hojas cálculo google
colecciones en java
Publicidad

Similar a Vba y objetos excel (20)

PDF
Megaguía macros y vba ayuda excel
PPT
Macros Basicos
PDF
Curso de programación
PPTX
0_Conceptos de VBA.pptx
PDF
Macros Excel
PPTX
Exce lggg l
PPT
Curso de Macros Excel
DOCX
TRABAJO DE EXCEL
PPTX
Aylincab
PPTX
Módulo de Excel
PPTX
Curso de excel avanzado tema 6 macros
PDF
COMANDOS MACROS.pdf
DOCX
Creando macros en Excel 2010 para programdores
DOCX
Excel
DOCX
Excel1
PPSX
Excel 2007
DOCX
Excel 1
DOCX
Excel 1
Megaguía macros y vba ayuda excel
Macros Basicos
Curso de programación
0_Conceptos de VBA.pptx
Macros Excel
Exce lggg l
Curso de Macros Excel
TRABAJO DE EXCEL
Aylincab
Módulo de Excel
Curso de excel avanzado tema 6 macros
COMANDOS MACROS.pdf
Creando macros en Excel 2010 para programdores
Excel
Excel1
Excel 2007
Excel 1
Excel 1
Publicidad

Último (20)

PPTX
DECRETO SUPREMO QUE MOUE MugufuODIFICA.pptx
DOCX
Un pacto necesario: Europa, Ucrania y la nueva era arancelaria.(Ampliado y ac...
PPTX
Razónes, Razones aritméticas, geométricas y financieras.
PPT
Economia Renta nacional MATERIA ECONOMIA
PPTX
HOSPITAL REGIONAL DE LORETO 12.12.24 - ALMILCAR ASENCIO SAENZ.pptx
PPT
PRESENTACIÓN PRESUPUESTO 2010_CONCEJO.ppt
PPT
04 ONCENIO DE LEGUÍA REPUBLICA PERUANA SIGLOS XX LATAM
PPTX
Presentación Portafolio, Basado en Participante
PDF
Guía para elaborar un manual de políticas contables.pdf
PPTX
CONTABILIDAD GUBERNAMENTAL II SESION 1.pptx
PPT
PRESENTACIÓN PRESUPUESTO 2013_CONCEJO.ppt
PPTX
ANALISIS DE SOCIOS Y ACCIONISTAS CONTADO.pptx
PPTX
NUEVO REGIMEN PREVISIONAL DERECHO LABORAL
PDF
unidad 5_presupuestos_POWER_FINANCIERA.pdf
PDF
saludos y gracias a todos los compañeros de trabajo y compañeras
PPTX
MÉXICO EN EL CONCIERTO INTERNACIONAL Y LAS REFORMAS
PPTX
Clase 2 Apalancamiento primera parte.pptx
PPTX
clase de administración Presupuesto_de_Capital.pptx
PPTX
Trabajo de Investigación sobre AFP en Chile
PDF
practica de presupuesto en un departamento
DECRETO SUPREMO QUE MOUE MugufuODIFICA.pptx
Un pacto necesario: Europa, Ucrania y la nueva era arancelaria.(Ampliado y ac...
Razónes, Razones aritméticas, geométricas y financieras.
Economia Renta nacional MATERIA ECONOMIA
HOSPITAL REGIONAL DE LORETO 12.12.24 - ALMILCAR ASENCIO SAENZ.pptx
PRESENTACIÓN PRESUPUESTO 2010_CONCEJO.ppt
04 ONCENIO DE LEGUÍA REPUBLICA PERUANA SIGLOS XX LATAM
Presentación Portafolio, Basado en Participante
Guía para elaborar un manual de políticas contables.pdf
CONTABILIDAD GUBERNAMENTAL II SESION 1.pptx
PRESENTACIÓN PRESUPUESTO 2013_CONCEJO.ppt
ANALISIS DE SOCIOS Y ACCIONISTAS CONTADO.pptx
NUEVO REGIMEN PREVISIONAL DERECHO LABORAL
unidad 5_presupuestos_POWER_FINANCIERA.pdf
saludos y gracias a todos los compañeros de trabajo y compañeras
MÉXICO EN EL CONCIERTO INTERNACIONAL Y LAS REFORMAS
Clase 2 Apalancamiento primera parte.pptx
clase de administración Presupuesto_de_Capital.pptx
Trabajo de Investigación sobre AFP en Chile
practica de presupuesto en un departamento

Vba y objetos excel

  • 1. Objetos de Excel y Programación en Visual Basic · 1 de 3 __________________________________________________________________________________________________________________________ © 2001 Joaquín Caselles - Curso de Visual Excel (Ver. 2.6 · Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es OBJETOS DE EXCEL EN VISUAL BASIC . Jerarquía 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").Método ♣ Application El propio Excel. Propiedades [Tipo, Lectura/Escritura] Sintaxis: Application.Propiedad = Valor .Caption [String, L/E] Título de la Ventana Principal de Excel. .Path [String, L] Devuelve la Carpeta donde está instalado Excel. .WindowState [L/E] xlNormal / xlMaximized / xlMinimized. Estado de la ventana. .DisplayAlerts [Boolean, L/E] True / False. Muestra o no los mensajes de alerta. .ScreenUpdating [Boolean, L/E] True / False. Actualiza o no la ventana a medida que se ejecuta la subrutina. .DisplayStatusBar [Boolean, L/E] True / False. Muestra u oculta la barra de estado. .DisplayFormulaBar [Boolean, L/E] True / False. Muestra u oculta la barra de fórmulas. .StatusBar [String, L/E] Devuelve o establece el texto de la barra de estado. (False si Excel tiene el control). Métodos Argumentos Sintaxis: Application.Método Arg1:=Valor, Arg2:="Cadena", ... .Calculate Ninguno [] Recalcula todas las fórmulas, de todas las hojas, de todos los libros abiertos. .Help HelpFile, HelpContextId [String, Integer] Muestra un tema de ayuda. .Quit Ninguno [] Cierra Excel. .Run Macro, arg1, arg2, ... [String, ...] Ejecuta un Procedimiento con sus argumentos si los lleva. ♣ Workbooks Libros de trabajo de Excel. (Los *.xls) ThisWorkbook Libro que contiene la macro que se ejecuta. ActiveWorkbook Libro activo. (Ejemplo: NombreLibro = ActiveWorkbook.Name ) Workbooks("Libro1.xls") Referencia a un libro por su nombre. Libro llamado "Libro1.xls". ¡Debe estar abierto! Workbooks(1) Referencia a un libro por su Índice. Primer libro de la colección. Primer libro abierto. Workbooks(Workbooks.Count) Último libro de la colección. Último libro abierto. (Workbooks.Count es la cantidad de libros). Propiedades [Tipo, L/E] Sintaxis: Workbooks(Workbook).Propiedad = "Texto" Workbooks.Count [Integer, L] Devuelve el Número de libros de la colección de libros abiertos. Propiedad de la Colección. .Name [String, L] Devuelve el Nombre del Libro. (Para cambiarlo usar el método SaveAs). .Path [String, L] Devuelve la Ruta de acceso al archivo del libro. .Author [String, L/E] Nombre del Autor del libro. .Saved [Boolean, L] True / False. Si es False se han hecho cambios en el libro, y no están salvados. Métodos Argumentos Sintaxis: Workbooks(Workbook).Método Arg1:=Valor, Arg2:=" Texto", ... de la Colección Workbooks .Open FileName, ReadOnly [String, Bool] Abre un libro existente: FileName:="c:dirlibro.xls" .Add Ninguno [] Crea un nuevo libro vacío y lo agrega a la colección. de un libro determinado .Activate Ninguno [] Activa el libro especificado. .Close SaveChanges, FileName [Bool, String] Cierra el libro, y lo guarda con un nombre si True. .Protect Password, Structure, Windows [String, Bool, Bool] Protege el libro, estructura y ventanas. .Save Ninguno [] Guarda el libro, con el nombre actual. .SaveAs FileName [String] Guarda el libro, con un nuevo nombre. .SaveCopyAs FileName [String] Guarda una copia del libro, con un nuevo nombre. ♣ Worksheets Colección de Hojas de Trabajo. (Las hojas de un libro Excel) ActiveSheet Hoja activa. (Ejemplo: NombreHoja = ActiveSheet.Name ) Worksheets("Hoja1") Hoja llamada "Hoja1". Worksheets(1) Primera hoja de la colección. (Ej: NombreHoja = Worksheets(1).Name ) Worksheets(Worksheets.Count) Última hoja de la colección. (Worksheets.Count es la cantidad de hojas). Propiedades [Tipo, L/E] Sintaxis: Worksheets(Worksheet).Propiedad = "Cadena" Worksheets.Count [Integer, L] Propiedad de la Colección. Devuelve el número de hojas de la colección. .Index [Integer, L] Devuelve el índice númerico de la hoja dentro de la colección de hojas. .Name [String, L/E] Nombre de la Hoja. .Next [Worksheet, L] Devuelve la siguiente hoja. (.Previous) la anterior. .UsedRange [Range, L] Devuelve un objeto Range con el rango de la hoja que tiene datos.
  • 2. Objetos de Excel y Programación en Visual Basic · 2 de 3 __________________________________________________________________________________________________________________________ © 2001 Joaquín Caselles - Curso de Visual Excel (Ver. 2.6 · Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es Métodos Argumentos Sintaxis: Worksheets(Worksheet).Método Arg1:=Valor, Arg2:="Cadena", .. .Activate Ninguno [] Activa la hoja expecificada. .Calculate Ninguno [] Recalcula todas las fórmulas de la hoja especificada. .Delete Ninguno [] Elimina la hoja especificada. .Protect Password [String] Protege la hoja de cálculo. .Paste Destination [Range] Pega el rango copiado previamente en otro rango. ♣ Range Rangos dentro de una hoja de Trabajo. Son Colecciones de celdas. Range("B3") Se refiere al rango indicado (Colección de una sola celda). Range("C2:D3") Se refiere al rango indicado (Colección de varias celdas). Range("NombreDeRango") Se refiere al rango indicado por medio de un nombre. ActiveCell 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). Selection.Cells Colección de celdas seleccionadas. Propiedades [Tipo, L/E] Sintaxis: Range().Propiedad .Count [Integer, L] Devuelve el número de celdas contenidas en el rango especificado. .Name [String, L/E] Nombre del rango. .Value [Cualquiera, L/E] El valor que tiene un rango. (Si son varias celdas devuelve una matriz) / …de fórmulas) .Formula [String, L/E] La fórmula contenida en el rango en forma de cadena de texto. (Lo que hay en la barra… .Text [String, L] El valor formateado del rango en forma de cadena de texto. (Lo que muestra la celda) .NumberFormat [String, L/E] Formato numérico (Ejemplo: "[Blue]#,##0.00 € ;[Red]-#,##0.00 € ;""Gratis""") .Font [Object, L/E] Contiene los atributos de fuente (.Name, .size, .Color, .Bold, .Italic, .Underline, etc) .Interior [Object, L/E] Se refiere al interior del Objeto (.Color, .Pattern, .PatternColor,etc) .EntireRow [Range, L] Se refiere a la Fila o Filas Completas del rango. .EntireColumn [Range, L] Se refiere a la Columna o Columnas Completas del rango. .Offset(RowOffset, ColumnOffset) Se refiere a un rango desplazado tantas filas y columnas desde el rango especificado. .Row y .Column [Long, L] Devuelve el número de la primera fila (o Columna) de la primera área del rango. .Rows y .Columns[Range, L] Se refiere a la Colección de Filas (o Columnas) del rango especificado. .Dependents [Range, L] Devuelve un objeto Range con las celdas dependientes de rango. (.Precedents) Métodos Argumentos Sintaxis: Range().Métoto Arg1:=Valor, Arg2:="Cadena", ... .Select Ninguno [] Selecciona el Rango (de una o más celdas). .Activate Ninguno [] Activa una sola celda que si está en la selección actual no cambia la selección. .Calculate Ninguno [] Recalcula todas las fórmulas del rango especificado. .Copy Destination [Range] Copia el rango en otro rango. Si no se pone el destino, copia al portapapeles. .PasteSpecial [Varios Opcionales] Pega el rango copiado. Se puede especificar lo pegado (Valores, Fórmulas, etc.). .Delete Shift [xlShiftToLeft / xlShiftUp] Elimina el rango y desplaza según indicación. .ClearContents Ninguno [] Borra los valores del rango, pero mantiene el formato, reglas, etc. Programación de Código en Visual Basic for Applications (VBA) Option Explicit ' Fuerza la Declaración explícita de Variables con Dim. Option Base 1 ' Indica el índice base de los arrays. Por omisión 0. Option Compare {Binary | Text | Database} ' Especifica el método de Comparación de Textos en el módulo. Dim Variable1 As Tipo ' Declara una Variable Global del Módulo de tipo Tipo. Public Variable1 As Tipo ' Declara una Variable Pública del Proyecto de tipo Tipo. Type TipoPersonal ' Define un Tipo de Datos Personal en forma de Registro Campo1 As Tipo ' con varios campos del tipo deseado. Campo2 As Tipo End Type ' <-- Después 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 ' Asigna Valor al elemento (3,7) del array Array1. Variable1 = NombreFunción(Arg1, Arg2) ' Asigna a Variable1 lo que devuelve NombreFunción. Set Var_Objeto = {[New] Objeto | Nothing} ' Asigna una Referencia de Objeto a una Variable o Propiedad Call NombreProcedimiento2(Arg1, Arg2) ' Ejecuta el Procedimiento NombreProcedimiento2. NombreProcedimiento2 Arg1, Arg2 ' Ejecuta el Procedimiento NombreProcedimiento2. Instrucción : Otra Instrucción más larga _ ' El Espacio + Subrayado sirve para continuar en la línea siguiente. que no cabe en la línea anterior ' Y los (:) para escribir varias instrucciones en la misma línea. End Sub
  • 3. Objetos de Excel y Programación en Visual Basic · 3 de 3 __________________________________________________________________________________________________________________________ © 2001 Joaquín Caselles - Curso de Visual Excel (Ver. 2.6 · Mayo 2010) vexcel.jjcaselles.com - vexcel.coninteres.es Function NombreFunción(ByVal Arg1 As Tipo, ByRef Arg2 As Tipo, Optional ByRef Arg3opc As Variant) As Tipo Instrucciones y Cálculos necesarios para obtener una Expresión_Resultado .... NombreFunción = Expresión_Resultado ' La Función NombreFunción devolverá Expresión_Resultado. End Function Tipos de Datos Nombre Tamaño Contenido Rango del Contenido Boolean 2 bytes True / False String 1 byte Cadena 1 byte / carácter + 10 bytes de cabecera. Hasta 2.000 millones de caracteres. Byte 1 byte Bytes 0…..255 Integer 2 bytes Enteros -32.768…..32.767 Enteros Long 4 bytes Enteros largos -2.147.483.648…..2.147.483.647 Single 4 bytes Reales Simple Precisión en coma flotante. 1,401298E-45…..3,402823E38 (7 dígitos) Double 8 bytes Reales Doble Precisión en coma flotante. 4,94065645841247E-324…..1,79769313486232E308 Currency 8 bytes Moneda -922.337.203.685.477,5808.....922.337.203.685.477,5807 (922 Billones) (15 + 4) Decimal 14 bytes Reales largos +/-79.228.162.514.264.337.593.543.950.335 (29 ó 1 + 28) Date 8 bytes Fecha y Hora 1/1/100.....31/12/9999 ( -657.434.....2.958.465 ) Object 4 bytes Objeto Almacena cualquier referencia a un objeto de Excel. Variant 16 bytes Variante El tipo por defecto si no se especifica otro. (Admite cualquiera de los anteriores). Estructuras de Control de Flujo Flujo Alternativo Condicional (If) 1 If Condición Then Instruc. Si Condición Cierta : Otra Instr. If Condición Then Instrucciones Si Condición es Cierta 2 Else 'Cláusula Opcional Instrucciones Si Condición es Falsa End If If Condición Then Instrucciones Si Condición es Cierta Else 3 If Condición 2 Then Instrucciones Si Condición2 es Cierta End If End If If Condición 1 Then Instrucciones Si Condición 1 es Cierta ElseIf Condición 2 Then 4 Instrucciones Si Condición 1 es Falsa y Condición 2 es Cierta End If Flujo Alternativo Evaluativo (Select Case) Select Case Expresión Case Valor1 : Instrucciones si Expresión = Valor1 Case Valor2, Valor3 Instrucciones si Expresión = Valor2 ó Expresión = Valor3 Case 1 To 4, 9: Instrucciones si Expresión = 1....4 ó 9 Case 5 To 8 : Instrucciones si Expresión = 5....8 Case Else : Instrucciones Si Ninguno Anterior 'Opcional End Select Bucle para Recorrer Colecciones (For Each) For Each Elemento In Colección Instrucciones Next Elemento Bucle de Repetición Conocida (For Next) For Contador = 1 To 100 Step 2 'Step es Opcional Instrucciones Next Contador Bucles de Repetición Desconocida (Do Loop) While Condición 0 Instrucciones mientras Condición sea Cierta Wend Do While Condición 1 Instrucciones mientras Condición sea Cierta Loop Do Until Condición 2 Instrucciones hasta que Condición sea Cierta Loop Do 3 Instruc. se repiten mientras Condición Cierta Loop While Condición Do 4 Instruc. se repiten hasta que Condición Cierta Loop Until Condición Nota: La sintaxis nº 0 está en desuso a favor de las más modernas 1 a 4 (do … loop). (La nº 0 es idéntica a la nº1) Referencias Abreviadas With Objeto .Propiedad = Valor ' Idéntico a Objeto.Propiedad = Valor With .SubObjeto .Método = Valor ' Idéntico a Objeto.SubObjeto.Método = Valor End With End With 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 instrucción With para varios objetos. Una iteración para cada elemento de la Colección En cada iteración la variable se incrementa lo que indique Step