Sei sulla pagina 1di 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("Libro3.xls").Worksheets("Hoja2").Range("C2").Propiedad
.Mtodo

Application

El propio Excel.

Propiedades

[Tipo, Lectura/Escritura]

.Caption
.DisplayAlerts
.Path
.ScreenUpdating
.WindowState
.DisplayStatusBar
.DisplayFormulaBar

[String, L/E]
[Boolean, L/E]
[String, L]
[Boolean, L/E]
[L/E]
[Boolean, L/E]
[Boolean, L/E]

Sintaxis: Application.Propiedad = Valor

Ttulo de la Ventana Principal de Excel.


True / False. Muestra o no los mensajes de alerta.
Devuelve la Carpeta donde est instalado Excel.
True / False. Actualiza o no la ventana a medida que se ejecuta la subrutina.
xlNormal / xlMaximized / xlMinimized. Estado de la ventana.
True / False. Muestra u oculta la barra de estado.
True / False. Muestra u oculta la barra de frmulas.

Mtodos Argumentos

Sintaxis: Application.Mtodo Arg1:=Valor, Arg2:="Cadena", ...

.Calculate
.Help
.Quit
.Run

[] Recalcula todas las frmulas, de todas las hojas, de todos los libros abiertos.
[String, Integer] Muestra un tema de ayuda.
[] Cierra Excel.
[String, ...] Ejecuta una Subrutina con sus argumentos si los lleva.

Ninguno
HelpFile, HelpContextId
Ninguno
Macro, arg1, arg2, ...

Workbooks

Libros de trabajo de Excel. (Los *.xls)

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

Libro que contiene la macro que se ejecuta.


Libro activo. (Ejemplo: NombreLibro = ActiveWorkbook.Name )
Libro llamado "Libro1.xls". Debe estar abierto!
Primer libro de la coleccin. Primer libro abierto.
ltimo libro de la coleccin.ltimo libro abierto.

Propiedades

[Tipo, L/E]

Sintaxis: Workbooks(Workbook).Propiedad = "Cadena"

.Name
.Path
.Count
.Author
.Saved

[String, L]
[String, L]
[Integer, L]
[String, L/E]
[Boolean, L]

Devuelve el Nombre del Libro. (Para cambiarlo usar el mtodo SaveAs).


Devuelve la Ruta de acceso al archivo del libro.
Devuelve el Nmero de libros de la coleccin de libros abiertos.
Nombre del Autor del libro.
True / False. Si es False se han hecho cambios en el libro, y no estn salvados.

Mtodos

Argumentos

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

FileName, ReadOnly
[String, Bool] Abre un libro existente: FileName:="c:\dir\libro.xls"
Ninguno
[] Crea un nuevo libro vaco y lo agrega a la coleccin.
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.

Worksheets

Sintaxis: Workbooks(Workbook).Mtodo Arg1:=Valor, Arg2:="Cadena", ...

Hojas de Trabajo. (Las hojas de un libro Excel)

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

Hoja activa.
(Ejemplo: NombreHoja = ActiveSheet.Name )
Hoja llamada "Hoja1".
Primera hoja de la coleccin. (Ej: NombreHoja = Worksheets(1).Name )
ltima hoja de la coleccin.

Propiedades

[Tipo, L/E]

Sintaxis: Worksheets(Worksheet).Propiedad = "Cadena"

.Name
.Index
.Count
.Next
.UsedRange

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

Nombre de la Hoja.
Devuelve el ndice nmerico de la hoja dentro de la coleccin de hojas.
Devuelve el nmero de hojas de la coleccin.
Devuelve la siguiente hoja. (.Previous) la anterior.
Devuelve un objeto Range con el rango de la hoja que tiene datos.

__________________________________________________________________________________________________________________________
2001 Joaqun Caselles - Curso de Visual Excel (Ver. 2.3 Sep 2008)
vexcel.jjcaselles.com - vexcel.coninteres.es

Objetos de Excel y Programacin en Visual Basic 2 de 3

Mtodos

Argumentos

Sintaxis: Worksheets(Worksheet).Mtodo Arg1:=Valor, Arg2:="Cadena", ..

.Activate
.Calculate
.Delete
.Protect
.Paste

Ninguno
Ninguno
Ninguno
Password
Destination

[] 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.

Range

Rangos dentro de una hoja de Trabajo.

Range("B3")
Range("C2:D3")
Range("NombreRango")
ActiveCell

Se refiere al rango indicado (de una sola celda).


Se refiere al rango indicado (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).

Propiedades

Sintaxis: Range().Propiedad

[Tipo, L/E]

.Count
[Integer, L]
.Dependents
[Range, 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)

Devuelve el nmero de celdas contenidas en el rango especificado.


Devuelve un objeto Range con las celdas dependientes de rango.
Nombre del rango.
El valor que tiene un rango. (Si son varias celdas devuelve una matriz)
La frmula contenida en el rango en forma de cadena de texto.
Devuelve el valor formateado del rango en forma de cadena de texto.
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)
Devuelve la Fila o filas enteras del rango.
Devuelve la Columna o columnas enteras del rango.
[Int, Int] Se desplaza tantas filas y columnas desde el rango seleccionado.

Mtodos

Argumentos

Sintaxis: Range().Mtoto Arg1:=Valor, Arg2:="Cadena", ...

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

Ninguno
Ninguno
Ninguno
Destination
[Varios Opcionales]
Shift
Ninguno

[] 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.

Programacin de Cdigo en Visual Basic for Applications (VBA)


Option Explicit
Option Base 1

' Declaracin forzosa de Variables.


' Indica el ndice base de los arrays. Por omisin 0.

Type TipoPersonal
Campo1 As Tipo
Campo2 As Tipo

' Define un Tipo de Datos Personal en forma de Registro


'
con varios campos del tipo deseado.

End Type

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

Sub NombreRutina(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 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)
Call NombreRutina2(Arg1, Arg2)
NombreRutina2 Arg1, Arg2
Cdigo : Ms codigo : Cdigo largo 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.
' Ejecuta la Rutina o Macro NombreRutina2.
' Ejecuta la Rutina o Macro NombreRutina2.

' El Espacio + Subrayado sirve para continuar en la lnea siguiente.


' Y los (:) para escribir varias instrucciones en la misma lnea.

Function NombreFuncin(ByVal Arg1 As Tipo, ByRef Arg2 As Tipo) As Tipo


Cdigo ....
NombreFuncin = Expresin
' La Funcin NombreFuncin devolver Expresin.
End Function
__________________________________________________________________________________________________________________________
2001 Joaqun Caselles - Curso de Visual Excel (Ver. 2.3 Sep 2008)
vexcel.jjcaselles.com - vexcel.coninteres.es

Objetos de Excel y Programacin en Visual Basic 3 de 3

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

Bucles de Repeticin Desconocida

If Condicin Then
Cdigo Si Condicin es Cierta
Else
Cdigo Si Condicin es Falsa
End If
If Condicin Then Cdigo Si Condicin es Cierta
If Condicin 1 Then
Cdigo Si Condicin 1 es Cierta
ElseIf Condicin 2 Then
Cdigo Si Condicin 1 es Falsa y
Condicin 2 es Cierta
End If

While Condicin
Cdigo mientras Condicin sea Cierta
Wend

Do While Condicin
Cdigo mientras Condicin sea Cierta
Loop

Do Until Condicin
Cdigo hasta que Condicin sea Cierta
Loop
Do

Bucles de Repeticin Conocida


For Contador = 1 To 100 Step 2
Cdigo
En cada iteracin la variable
Next Contador
incrementa lo que indique Step

Cdigo se repite mientras Condicin


Loop While Condicin
Do

se

Cdigo se repite hasta que Condicin


Loop Until Condicin

For Each Elemento In Coleccin


Cdigo
Una iteracin para cada
Next Elemento
elemento de la Coleccin

Flujo Alternativo Evaluativo


Select Case Variable
Case Valor1, Valor3 : Cdigo si Variable = Valor1 Valor3
Case Valor2
: Cdigo si Variable = Valor2
Case Else
: Cdigo Si Ninguno Anterior (Clusula Opcional)
End Select
Select Case Variable
Case 1 To 4, 9
Case 5 To 8
Case Else
End Select

: Cdigo si Variable = 1....4 9


: Cdigo si Variable = 5....8
: Cdigo Si Ninguno Anterior (Clusula Opcional)

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.3 Sep 2008)
vexcel.jjcaselles.com - vexcel.coninteres.es

Potrebbero piacerti anche