Está en la página 1de 17

1 OBJETOS DE MICROSOFT EXCEL

En este numeral se introduce el modelo de objetos de Microsoft Excel y se explica como el


contenido y funcionalidad de sta aplicacin, se divide en objetos discretos. Luego se
describen algunos de los objetos de mayor uso durante el trabajo rutinario en Visual Basic
para Excel; de igual manera se ofrecen sugerencias para la exploracin de las propiedades y
mtodos de los diferentes objetos.
Es importante resaltar que para lograr el mximo provecho de la programacin en Visual
Basic para Excel, resulta fundamental entender el modelo de objetos de ste ltimo, de tal
manera que se pueda hacer uso de su enorme potencial.
1.1

Modelo de objetos de Excel

El contenido y funcionalidad de una aplicacin como Microsoft Excel, se divide en


unidades discretas llamadas objetos, que tienen contenidos y funciones relacionadas. Usted
de alguna manera est familiarizado con algunos de estos objetos a travs de elementos de
la interfaz de usuario de la aplicacin como por ejemplo, libros, hojas de clculo, rango de
datos, hojas de grfico.
El mayor o primer objeto en Excel, es el objeto Application, el cual es o representa el
mismo Excel. El objeto Application contiene otros objetos a los cuales solo se puede
acceder cuando la aplicacin existe o esta corriendo. As el Objeto Application de
Microsoft Excel contiene el objeto WorkBook. Dado que el objeto WorkBook depende de
la Existencia del objeto Application para su propio existencia, se dice que el objeto
Workbook es un hijo del objeto Application.
Muchos objetos que son hijos, tambin tienen hijos por su cuenta. Por ejemplo, el objeto
WorkBook contiene, o es el padre, de la coleccin de objetos WorkSheets, que
representa todas las hojas de un libro. Adems un objeto padre puede tener varios hijos,
ms an un hijo puede tener varios padres, esto ltimo, se puede entender mediante una
analoga con la informacin gentica que cada uno de nosotros posee, la cual es una mezcla
de informaciones de diferente origen y gracias a eso tenemos una gran variedad de
caracteres genotpicos.
La manera en que estn organizados los objetos que conforman una aplicacin, respecto a
los otros, junto con la forma en que el contenido y funcionalidad estn divididos entre todos
los objetos, se denomina jerarqua de objetos o modelo de objetos, En resumen el

OBJETOS DE MICROSOFT EXCEL

contenido y funcionalidad de Microsoft Excel esta dividido entre los diferentes objetos que
lo conforman.
1.1.1

Interfaz y modelo de objeto

Existen dos maneras de interactuar con los objetos de Excel: manualmente (usando la
interfaz de usuario) o a travs del cdigo usando Visual Basic. En la interfaz de usuario, se
usa el teclado, el Mouse o ambos, para desplazarse a una parte de la aplicacin que controla
los datos que usted desea cambiar o los comandos que desea usar.
Con las instrucciones de Visual Basic, usted navega a travs del modelo de objetos desde el
primer objeto de la jerarqua hasta el objeto con el contenido y funcionalidad que busca
utilizar, y finalmente usa las propiedades y mtodos de ese objeto para conseguir el
contenido y funcionalidad deseados. En el siguiente ejemplo, se usa una instruccin de
VBA para navegar a la celda B2 de la Hoja1 y cambiar su contenido.
Hoja1.Range(B3).Value = Hola

Dado que la interfaz de usuario y Visual Basic son dos formas de acceder a los mismos
contenidos y funcionalidad, muchos objetos, propiedades, y mtodos comparten nombres
con elementos de la interfaz de usuario. Esto significa que para cada accin de la interface
de usuario, existe una instruccin equivalente en Visual Basic.
Se debe resaltar que es importante entender el lugar que ocupa un objeto en la jerarquia de
objetos, porque antes de poder trabajar con un objeto, debe navegar a travs del modelo de
objetos hasta lograr alcanzarlo. Por ejemplo no puede acceder a una celda en particular sin
haber pasado primero por la aplicacin, la cual contiene el libro de trabajo, que a su vez
contiene la hoja de calculo que contiene la celda de inters.
1.1.2

Objetos coleccin

Un objeto Coleccin, es un objeto que contiene un conjunto de objetos relacionados. Por


ejemplo el objeto WorkSheets representa el conjunto de todas la hojas de clculo de un
libro, mientras que el objeto WorkSheet se refiere a una hoja en particular. Los objetos
coleccin se pueden utilizar para devolver un objeto de esa coleccin o para realizar la
misma operacin a todos los objetos en una coleccin Dada.
1.2

El objeto aplicacin

Las propiedades del Objeto Aplicacin controlan la apariencia de la ventana de Excel o el


comportamiento de la aplicacin por completo. Por ejemplo el valor de ScrenUpdating
es falso cuando la actualizacin de pantalla se encuentra deshabilitada.
Adicionalmente, las propiedades del objeto aplicacin dan acceso a objetos de niveles
inferiores en la jerarqua de objetos tales como, las colecciones de Ventanas (Windows) que
representan todas las ventanas abiertas actualmente y las colecciones de libros
(Workbooks) que representan todos los libros abiertos.

OBJETOS DE MICROSOFT EXCEL

Algunos mtodos y propiedades que aplican para el objeto Application, tambin


aplican para otros objetos en niveles ms bajos. Al usar estos mtodos al nivel del objeto
aplicacin, tambin se aplican en los objetos de nivel inferior. Por ejemplo, el mtodo
Calculate aplica para los objetos Application, Workbook y Worksheet. Al
usar Application.Calculate se recalculan todas las hojas de calculo
(WorkSheets) en todo los libros (Workbooks) abiertos, mientras que el uso de este
mtodo al nivel de libro (Workbook) o Hoja de calculo (WorkSheet) permite un mayor
control.
El ejemplo siguiente crea un objeto hoja de clculo de Microsoft Excel en otra aplicacin y,
a continuacin, abre un libro en Microsoft Excel.
Set xl = CreateObject("Excel.Hoja")
xl.Application.Workbooks.Open "nuevolib.xls"

Se debe notar que muchas propiedades y mtodos que permiten devolver objetos frecuentes
de la interfaz de usuario pueden emplearse sin el calificador del objeto Application,
por ejemplo se puede hacer referencia a la celda activa (propiedad ActiveCell) de la
siguiente forma: en lugar de escribir Application.ActiveCell.Font.Bold =
True, puede escribir ActiveCell.Font.Bold = True.
1.3

El objeto Worksheet

Este objeto sirve para representar una hoja de clculo de un libro. El objeto Worksheet es
un elemento del conjunto Worksheets, que contiene todos los objetos Worksheet de
un libro.
Uso del Objteto Worksheet
Cuando se desarrolla una aplicacin en Excel, usualmente se requiere agregar hojas de
calculo nuevas al libro activo, hacer visibles o invisibles algunas de estas, leer y copiar
informacin en hojas, cambiar el formato de las celdas o limpiar su contenido, estas y otras
tareas se pueden realizar usando los mtodos y propiedades del objeto WorkSheet o el
objeto de conjunto WorkSheets. En los siguientes prrafos se presenta una introduccin
al manejo del objeto WorkSheet. El lector puede incluir las diferentes ordenes que a
continuacin se muestran, en el macro Hola usado en la seccin y ver que sucede.
Para referirse a una hoja de calculo de un libro se usa Worksheets(ndice), donde
ndice es el nombre o nmero de ndice de la hoja de clculo. El ejemplo siguiente oculta la
hoja de clculo uno del libro activo.
Worksheets(1).Visible = False

El uso del objeto WorkSheets puede resultar confuso y dificultar la lectura del cdigo, se
obtiene el mismo resultado anterior usando la instruccin:
Hoja1.Visible = False

OBJETOS DE MICROSOFT EXCEL

Dado que es posible referirse a una hoja usando su nombre, el siguiente ejemplo asume que
se tiene un libro con una hoja nombrada Datos y guarda la sentencia Excel en la celda
(1,2).
Datos.cells(1,2).value = Excel

Se debe tener presente que el nmero de ndice de la hoja de clculo representa la posicin
de la hoja en la barra de etiquetas del libro. Worksheets(1) es la primera hoja (en el
extremo izquierdo) del libro y Worksheets(Worksheets.Count) es la ltima. En el
recuento de ndice se incluyen todas las hojas, aunque estn ocultas. Al mover una hoja
cambia el valor de su ndice, lo cual puede afectar la estructura de un programa, por esto se
recomienda en general referirse a las hojas usando su nombre.
Si una hoja de clculo es la hoja activa, puede usar la propiedad ActiveSheet para hacer
referencia a ella. El ejemplo siguiente usa el mtodo Activate para activar la hoja de
clculo Hoja1, establece la orientacin de pgina como horizontal y a continuacin
imprime la hoja de clculo.
Worksheets("Hoja1").Activate
ActiveSheet.PageSetup.Orientation = xlLandscape
ActiveSheet.PrintOut

Para un listado completo de los diferentes mtodos y propiedades del objeto WorkSheet,
se puede consultar la ayuda en lnea de Excel. En la Ilustracin 1 1, se pueden apreciar el
objeto Worksheets y los relacionados.

Ilustracin 11. Objeto WorkSheet y relacionados.

1.4

Objeto Range

Un objeto Range permite representar una celda, una fila, una columna o una seleccin de
celdas que contienen uno o ms bloques contiguos de celdas o un rango 3D. En la
Ilustracin 1 2, se puede apreciar los diferentes objetos relacionados con el objeto
Range.

OBJETOS DE MICROSOFT EXCEL

Ilustracin 12. Objetos relacionados con el objeto Range

1.4.1

Uso del objeto Range

En muchas situaciones prcticas se desea hacer referencia a un grupo de celdas (rango) para
usarlas por ejemplo como datos de un grfico, aplicarles un formato, introducir una frmula
o limpiar su contenido, estas y otras tareas se pueden realizar usando los mtodos y
propiedades del objeto Range. En los siguientes prrafos se presentan algunos ejemplos
del uso de este objeto. El lector puede incluir las diferentes ordenes que a continuacin se
indican, en el macro Hola usado en la seccin Error: Reference source not found, de tal
manera que pueda apreciar los resultados obtenidos.
Antes de iniciar el uso del objeto Range, se debe tener presente que para referirse a un
rango de una hoja, se usa la propiedad Range del objeto WorkSheet. Esta propiedad
devuelve un objeto de la clase Range, luego se usan los mtodos y propiedades de ste
objeto para lograr una caracterstica deseada. El ejemplo siguiente asigna el valor de la
celda A1 en la celda A5. Para ver en accin este macro agregue un valor en la celda A1 y
observe que sucede.
Hoja1.Range("A5").Value = Hoja1.Range("A1").Value

El ejemplo siguiente borra el contenido del rango A1:H8 y lo llena con nmeros aleatorios
asignando una frmula a cada celda del rango.
Hoja1.Range("A1:H8").ClearContents
Hoja1.Range("A1:H8").Formula = "=aleatorio()"

De forma alternativa se puede usar,


Hoja1.Activate
Range("A1:H8").ClearContents
Range("A1:H8").Formula = "=aleatorio()"

El uso del objeto Range se puede mejorar cuando se combina con la propiedad
Cells(fila, columna), la cual permite referirse a una celda usando los nmeros de

OBJETOS DE MICROSOFT EXCEL

la fila y columna correspondientes. El siguiente ejemplo asigna el valor de 40 a la celda


B1 y luego calcula el seno de sta cantidad.
Worksheets(1).Cells(1, 2).Value = 40
ActiveSheet.Cells(2, 2).Formula = "=seno(b1)"

Se debe tener en cuenta que despus de activar la hoja de clculo, se pueden usar las
propiedades Range y Cells sin una declaracin explcita de la hoja, por lo tanto es
igualmente vlido escribir,
Hoja1.Activate
Cells(1, 2) = 40
Note que se omite la propiedad value
Cells(2, 2).Formula = "=seno(b1)"

Para devolver parte de un rango se debe usar la sentencia: expresin.Cells(fila;


columna), donde expresin es una referencia que devuelve un objeto Range, mientras
que fila y columna son relativas a la esquina superior izquierda del rango. El ejemplo
siguiente establece la frmula de la celda C5.
Hoja1.Range("c5:c10").Cells(1, 1).Formula = "=40^2"

La siguiente tabla muestra algunas posibilidades de uso del mtodo Range.

REFERENCIA

DESCRIPCIN

Range("A1")

Celda A1

Range("A1:B5")

Celdas de la A1 a la B5

Range("C5:D9,G9:H16")

Seleccin de varias reas

Range("A:A")

Columna A

Range("1:1")

Fila uno

Range("A:C")

Columnas de la A a la C

Range("1:5")

Filas de la uno a la cinco

Range("1:1,3:3,8:8")

Filas uno, tres y ocho

Range("A:A,C:C,F:F")

Columnas A, C y F

Tabla 1-1. Ejemplos de Uso del mtodo Range (Adatado de la Ayuda en Lnea).

1.4.2

Uso de los objetos Range y Cells

Para devolver un objeto Range se puede usar el estilo de referencia Range(celda1,


celda2), donde celda1 y celda2 son objetos Range que especifican las celdas inicial y

OBJETOS DE MICROSOFT EXCEL

final del rango que se desea devolver. El ejemplo siguiente establece el color de relleno de
las celdas B1:E10.
Hoja1.Range(Hoja1.Cells(1, 2), Hoja1.Cells(10, 5)).Interior.ColorIndex
= 5

Puede obtener el mismo resultado usando la instruccin With, la cual resulta


particularmente til para manejar objetos, as la instruccin anterior es equivalente a:
With Hoja1
.Range(.Cells(1, 2), .Cells(10, 5)).Interior.ColorIndex = 5
End With

Se debe observar el punto delante de cada propiedad Cells. El punto es necesario si el


resultado del enunciado With precedente se aplica a la propiedad Cells, en cuyo caso se
indica que las celdas estn en la hoja de clculo uno (sin el punto, la propiedad Cells
devolvera las celdas de la hoja activa). A lo largo de este documento se hace uso extensivo
de los objetos Range y Cells por lo tanto se tendr tiempo de explorar sus posibilidades.
1.4.3

Trabajar con rangos 3D

Cuando se trabaja con el mismo rango en ms de una hoja, se debe utilizar la funcin Array
para especificar dos o ms hojas a seleccionar. El ejemplo siguiente da formato al borde de
un rango tridimensional de celdas.
Sub FormatoHojas()
Sheets(Array("Hoja2", "Hoja3", "Hoja5")).Select
Range("A1:H1").Select
Selection.Borders(xlBottom).LineStyle = xlDouble
End Sub

El ejemplo siguiente aplica el mtodo FillAcrossSheets para transferir los formatos y


datos del rango de la Hoja2 a los rangos correspondientes de todas las hojas de clculo del
libro activo.
Sub RellenarTodo()
Worksheets("Hoja2").Range("A1:H1") .Borders(xlBottom).LineStyle =
xlDouble
Worksheets.FillAcrossSheets (Worksheets("Hoja2") .Range("A1:H1"))
End Sub

1.5

El objeto Charts

El objeto Charts representa el conjunto de las hojas de grficos existentes en un libro


especifico o activo. Cada hoja de grficos est representada por un objeto Chart. Sin
embargo al realizar el conteo de los objetos chart de un libro, no se incluyen los grficos
incrustados en hojas de clculo, en este caso se requiere referirse a estos grficos
embebidos haciendo una llamada al objeto que los contiene (una hoja de clculo). En la

OBJETOS DE MICROSOFT EXCEL

Ilustracin 1 3, se pueden observar los diferentes objetos relacionados con el objeto


Chart.

Ilustracin 13. Objeto Chart y relacionados.

Uso del Objeto Chart


Cuando se desarrolla una aplicacin de ingeniera, la presentacin grfica de la informacin
facilita la interpretacin de los resultados y la deteccin de errores, para ste fin en Excel se
pueden agregar hojas de grficos que representen la informacin contenida en las hojas de
clculo del libro activo. Una vez creado un grfico, resulta de igual importancia su formato
y caractersticas. Estas y otras tareas se pueden realizar usando los mtodos y propiedades
del objeto Chart o el objeto de conjunto Charts. En los siguientes prrafos se presenta
una introduccin al manejo del objeto Chart. El lector puede incluir las diferentes
ordenes que a continuacin se indican, en el macro Hola, de tal manera que pueda apreciar
los diferentes resultados.
En caso de existir hojas de grficos en el libro activo, se las puede imprimir usando el
mtodo PrintOut como indica la siguiente instruccin:
Charts.PrintOut

Para agregar un nuevo grfico al libro activo, se usa el mtodo Add del objeto Charts. El
ejemplo siguiente agrega un grfico al libro activo y sita la hoja nueva inmediatamente
despus de la hoja de clculo llamada "Hoja1".
Charts.Add after:=Worksheets("Hoja1")

Para agregar un grfico nuevo usando los datos contenidos en una hoja de clculo, puede
usar el mtodo Add junto con el objeto Range y la propiedad ActiveChart. El
siguiente ejemplo muestra como agregar un grfico de dispersin de los datos contenidos
en las celdas A1:B13 de la hoja de clculo llamada "Hoja1".
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("A1:B13"),
PlotBy:= xlColumns

OBJETOS DE MICROSOFT EXCEL

ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Ejemplo"

Se debe resaltar que existe una gran cantidad de funciones que permiten controlar el
aspecto y formato de un grfico, el usario debe notar que todas las caractersticas que puede
dar normalmente en Excel, se puede lograr a travs de cdigo en Visual Basic.
1.6

Objeto Shape

El objeto Shape representa una forma de la capa de dibujo, por ejemplo, una lnea, un
crculo, un cuadriltero, una forma libre, un objeto OLE o una imagen. El conjunto
Shapes contiene todas las formas de la capa de dibujo. Al trabajar con formas, existen tres
objetos que se pueden usar para representar formas de la capa de dibujo: el conjunto
Shapes, que representa todas las formas de un documento; el conjunto ShapeRange,
que representa un subconjunto especifico de las formas de un documento y el objeto
Shape, que representa una forma individual de un documento. Para trabajar con varias
formas al mismo tiempo se debe utilizar el conjunto ShapeRange o Shapes.

Ilustracin 14. Objeto Shapes y relacionados.

Uso del objeto Shapes


Los objetos Shapes pueden tener usos muy variados dentro de una aplicacin Excel, por
ejemplo se pueden asignar macros a las formas de una capa de dibujo, de manera que al
hacer clic sobre una de ellas se ejecute determinada accin, sin embargo en el presente
documento el uso de formas esta motivado principalmente para representaciones
geomtricas de la informacin ingresada por el usuario o para la presentacin de los
resultados de un anlisis, por ejemplo si se est desarrollando una aplicacin para el anlisis
de edificios, resulta conveniente presentar la geometra del edificio de forma grfica, para
que as el usuario pueda descubrir posibles errores en los datos ingresados, de igual manera,
si se quieren observar las deformaciones de la estructura, resulta adecuada la representacin
grfica de dichas deformaciones y otras variables de inters para el ingeniero. Teniendo en
cuenta lo anterior, las formas ms usadas en este documento sern: lneas, puntos, crculos,
splines y cuadrilteros, en cuanto a las caractersticas de formato, se buscar poder
controlar los colores y rellenos, estas y otras tareas se pueden llevar a cabo usando los
mtodos y propiedades del objeto Shape o el objeto de conjunto Shapes. En los
siguientes prrafos se presenta una introduccin al manejo del objeto Shapes, se

OBJETOS DE MICROSOFT EXCEL

10

recomienda que el lector experimenta con estas ordenes, de tal forma que logre percibir las
posibilidades del objeto Shape.
Para agregar una nueva forma a un documento, se usa el mtodo
AddShape(Tipo,Parametros), donde tipo indica la clase de forma que se desea
agregar, un rectngulo, hexgono, estrella, etc. y los parmetros dependen del tipo de forma
que se adicione al documento, por ejemplo para definir un rectngulo se requieren dos
puntos. Para indicar el tipo de forma que se desea agregar se pueden usar las constantes
predefinidas en Excel, las cuales se pueden consultar en la ayuda en lnea (buscar propiedad
AutoShapeType). El siguiente ejemplo crea un crculo, le asigna un color de relleno y
cambia el tipo de lnea, se debe notar que se usa el mtodo Select para seleccionar la
forma adicionada.
Hoja1.Shapes.AddShape(msoShapeOval, 306.75, 143.25, 89.25,
96.75).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 41
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Line.ForeColor.SchemeColor = 51
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.DashStyle = msoLineDash

A cada forma se le asigna un nombre predeterminado al agregarla al conjunto Shapes.


Para asignar un nombre ms significativo se utiliza la propiedad Name. El siguiente
ejemplo agrega un rectngulo a la Hoja1, le asigna el nombre "Cuadrado rojo" y a
continuacin establece el color de primer plano y el estilo de lnea de la forma.
With Hoja1.Shapes.AddShape(msoShapeRectangle, 144, 144, 72, 72)
.Name = "Cuadrado rojo"
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Line.DashStyle = msoLineDashDot
End With

Para agrupar un rango de formas y devolver un nico objeto Shape que representa el
nuevo grupo formado, puede utilizar los mtodos Group o Regroup. Despus de formar
el grupo, puede trabajar con l de la misma manera que con cualquier otra forma.
Dibujo de lneas
El mtodo AddLine permite agregar una lnea nueva en el plano de dibujo del documento
activo, en el siguiente ejemplo se ilustra el uso del mtodo para agregar una lnea, darle
formato y rotarla.
Hoja1.Shapes.AddLine(63.75, 161.25, 251.25, 243.75).Select
Selection.ShapeRange.Flip msoFlipVertical
Selection.ShapeRange.Line.ForeColor.SchemeColor = 51
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.DashStyle = msoLineSquareDot
Selection.ShapeRange.IncrementRotation 20.36

OBJETOS DE MICROSOFT EXCEL

1.7

11

Ayuda para la escritura de cdigo

Dada la gran cantidad de objetos disponibles en Excel, puede resultar complicado o


prcticamente imposible recordar la aplicacin o incluso el nombre de las diferentes
propiedades y mtodos de un objeto en particular, sin embargo, la siguiente metodologa
puede ayudar a facilitar el proceso.
Suponga que desea agregar o controlar la apariencia de un objeto determinado a travs de
cdigo en VBA, sin embargo desconoce el nombre del objeto y ms an sus mtodos y
propiedades, pero conoce la forma de modificar o crear el objeto usando comandos propios
de Excel. Por ejemplo imagine que desea realizar un grfico de dispersin usando la
informacin contenida en una hoja de calculo, adems desea controlar la apariencia del
grfico: lneas de divisin, fondo, color de las series, agregar lneas de tendencia etc. Esta
es una tarea sencilla usando los comandos de la interfaz de Excel, por otro lado para
realizarlo desde el cdigo se requiere tener dominio de los diferentes tipos de objetos de
Microsoft Excel. Para evitar el trabajo de consultar cada uno de los objetos, propiedades y
mtodos disponibles para realizar la tarea deseada, se puede hacer que Excel genere el
cdigo necesario, o por lo menos un cdigo de ejemplo o base, que luego se puede
modificar para que realice las tareas deseadas. Continuando con la idea del grfico de
dispersin, suponga que desea que VBA grafique los datos indicados en la Ilustracin 1 5.

Ilustracin 15. Datos usados para generar un grfico de dispersin XY.

Dado que desconoce como usar el objeto Chart, el cual permite realizar la tarea deseada,
puede usar el siguiente camino alternativo. Abra el men Herramientas> Macro>
Grabar Nueva macro..., inmediatamente debe aparecer el cuadro de macros
indicado en la Ilustracin 1 6, debe dar un nombre al macro o aceptar el sugerido por
defecto en Excel, si desea asignar una combinacin de teclas al macro lo puede hacer en el
cuadro de texto Mtodo abreviado, tambin puede indicar en donde guardar el macro y

OBJETOS DE MICROSOFT EXCEL

12

agregar una descripcin de ste. Cuando halla realizado las tareas anteriores puede dar clic
en aceptar, debe aparecer la barra de grabado de macros, la cual permite indicar el fin del
macro o si desea realizar una pausa en el proceso de grabacin. Al dar clic en aceptar se da
inicio a la grabacin del macro, es decir a los diferentes pasos que usted realizar en Excel
para crear y dar formato a un grfico de dispersin usando los datos contenidos en una hoja;
una vez halla terminado de graficar, dar formato y agregar las lneas de tendencia o
comentarios que considere pertinentes haga clic en el botn detener grabacin [
]. Excel
genera todo el cdigo requerido para efectuar las tareas realizadas por usted y lo guarda en
un modulo de cdigo que se puede consultar usando el editor de Visual Basic.

a)

b)
Ilustracin 16. a) Cuadro de dialogo Grabar Macro. b) barra de herramientas
grabar

Para visualizar el cdigo generado, se debe ingresar al editor de Visual Basic (ver numeral
Error: Reference source not found), ir a la seccin Mdulos de la ventana proyecto y
hacer doble clic sobre el Modulo1 (en este ejemplo se supone que este es
el nico macro grabado), a continuacin debe aparecer la ventana del editor con
el cdigo generado por Excel, ver Ilustracin 1 7 y Tabla 1 -2.

OBJETOS DE MICROSOFT EXCEL

13

Ilustracin 17. Macro grabado por Excel.

Ahora puede modificar el cdigo generado por Microsoft Excel de tal forma que realice las
tareas deseadas, para tal fin no se requiere gran conocimiento de todos los mtodos y
propiedades del objeto Chart. Suponga que se desea indicar a VBA el rango de los datos a
graficar para que el automticamente efecte las tareas de formato por usted, para tal fin se
asume que en la las celdas D1 y E1 se indica el nmero de fila y columna de inicio del
rango, mientras en las celdas D2, E2 se indican la fila y columna fin del rango. Solo se
requiere remplazar las primera cuatro lneas de cdigo para obtener el resultado deseado.
Range("A1:B13").Select
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("A1:B13"),
PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Grfico"

Se cambia por:
Fi=cells(1,4).value: Ci=cells(1,5).value
Ff=cells(2,4).value: Cf=cells(2,5).value
Nombre=cells(3,4).value
Range(cells(Fi,Ci),cells(Ff,Cf)).Select
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range(cells(fi,ci),cells(ff,cf)),
PlotBy:= _ xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=Nombre

Se debe notar que se supone que la hoja donde se encuentran los datos es la hoja activa, de
lo contrario las propiedades cells() deberan ser precedidas por el nombre de la hoja
donde se encuentran los datos (Hoja1.cells()), adicionalmente se han usado las

OBJETOS DE MICROSOFT EXCEL

14

variables Fi, Ci, Ff, Cf para referirse a las celdas inicial y final del rango a graficar, de igual
manera se usa nombre para indicar el nombre del nuevo grfico, resaltando que no se
pueden usar nombres de hojas de grficos o clculo existentes dado que se producir un
error en tiempo de ejecucin.
De manera similar se puede proceder con todos los objetos considerados hasta el momento,
por ejemplo si desea conocer como dar formato a travs de cdigo a una hoja de clculo,
grabe un macro con todas las opciones de formato que desee, luego examine y use el
cdigo generado automticamente. Esta es una metodologa rpida y efectiva incluso si se
conocen los comando que se deben ejecutar para realizar una tarea especifica, dado que
puede evitar la escritura de gran parte del cdigo y slo basta con unas cuantas
modificaciones para tener una aplicacin funcionando como se desea.
Se debe notar que la facilidad que Excel brinda para la generacin y uso de cdigo, de
alguna manera libera parte de la tarea de estudiar detalladamente cada uno de los objetos y
mtodos de esta poderosa hoja de clculo. Esto permite que el usuario se centre en las
tareas de codificacin tpicas del lenguaje de programacin VBA, y por otro lado slo se
requiere tener presentes algunas ordenes bsicas que permitan interactuar con los diferentes
objetos de la aplicacin.
Finalmente se recomienda de manera muy especial, acompaar la lectura del cdigo
generado por Excel con la consulta de la ayuda en lnea, de esta forma se puede lograr una
mejor comprensin de las diferentes instrucciones.
Finalmente se debe notar que el cdigo que genera la grabadora de macros no es muy
eficiente o robusto, por lo tanto siempre resulta conveniente su edicin para as economizar
lneas de cdigo y mejorar su legibilidad.

Sub Grafico()
'
' Grafico Macro
' Macro grabada el 01/04/01 por Carlos Arturo Coronado R.
'
'

Range("A1:B13").Select
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("A1:B13"),
PlotBy:= _
XlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Grfico"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Ejemplo del Uso de Macros"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Abscisas
(m)"

OBJETOS DE MICROSOFT EXCEL

15

.Axes(xlValue, xlPrimary).HasTitle = True


.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ordenadas (m)"
End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection.Interior
.ColorIndex = 20
.PatternColorIndex = 1
.Pattern = xlSolid
End With
ActiveChart.ChartArea.Select
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
Selection.Shadow = False
With Selection.Interior
.ColorIndex = 19
.PatternColorIndex = 1
.Pattern = xlSolid
End With
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Trendlines.Add(Type:=xlPolynomial,
Order:=6 _
, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
ActiveChart.Deselect
End Sub
Tabla 1-2. Cdigo fuente del macro generado automticamente por Excel.

1.8

Examinador de objetos

La metodologa propuesta en la seccin anterior, es una importante herramienta para


explorar los diferentes objetos disponibles en Excel y en particular para aprender sobre su
uso, si embargo en ciertas situaciones se necesita un conocimiento ms detallado de un
objeto particular, de sus mtodos y propiedades. Visual Basic tiene otra para explorar la
biblioteca de objetos de Microsoft Excel, de hecho tal vez esta sea la herramienta ms

OBJETOS DE MICROSOFT EXCEL

16

potente de todas, se trata del Examinador de objetos, el cual permite examinar


todos los objetos disponibles en un proyecto, ver sus propiedades, mtodos, eventos y
adems ver los procedimientos y constantes que estn disponibles en las bibliotecas de
objetos del proyecto. De esta forma, puede utilizar el Examinador de objetos para encontrar
y utilizar objetos que ha creado y tambin objetos de otras aplicaciones.
Para utilizar el
Microsoft:

Examinador de objetos siga los siguientes pasos, recomendados por

1. Active el Editor de Visual Basic.


2. En el men Ver, elija Examinador de objetos (F2) o utilice el cuadro de herramientas
abreviado.

3. Seleccione el nombre del proyecto o biblioteca que desea ver en la lista


Proyecto/Biblioteca.
4. Utilice la lista Clases para seleccionar la clase; utilice la lista Miembros para
seleccionar los miembros especficos de la clase o proyecto.
5. Vea informacin acerca de la clase o miembro que seleccion en la seccin Details en la
parte inferior de la ventana.
6. Utilice el botn Ayuda para mostrar el tema de Ayuda para la clase o el miembro que
seleccion.
Para obtener mayor informacin acerca del Examinador de objetos, busque Examinador de
objetos en la Ayuda.
1.9

Trabajo con otras aplicaciones

Visual Basic para aplicaciones le permite crear nuevos objetos y recuperar otros ya
existentes en muchas aplicaciones Microsoft, adems otras aplicaciones (Pertenecientes a

OBJETOS DE MICROSOFT EXCEL

17

otras compaas de software) tambin pueden proporcionar objetos que se pueden crear
usando Visual Basic. Si desea ms informacin sobre objetos, mtodos y propiedades que
proporciona una determinada aplicacin debe consultar su documentacin.
Para crear un objeto nuevo u obtener uno de otra aplicacin, debe usar las funciones
CreateObject o GetObject respectivamente, como se indica a continuacin:
' Arranca Microsoft Excel y crear un nuevo objeto Worksheet.
Set ExcelWorksheet = CreateObject("Excel.Sheet")
' Arranca Microsoft Excel y abre un objeto Worksheet ya existente.
Set ExcelWorksheet = GetObject("Hoja1.XLS")
' Arrancar Microsoft Word.
Set WordBasic = CreateObject("Word.Basic")

Finalmente, tenga presente que la mayor parte de las aplicaciones disponen de un mtodo
Exit o Quit que permite cerrar la aplicacin incluso cuando no est visible, esto puede
resultar de utilidad en algunas situaciones.
1.10 Conclusin
En esta seccin se han cubierto los aspectos y temas fundamentales del modelo de objetos
usado en Microsoft Excel.
Se dan algunas ideas sobre el uso de los diferentes objetos, resaltando los mtodos y
propiedades de mayor utilidad desde el punto de vista de desarrollo de aplicaciones de
ingeniera.
Se presenta una metodologa sencilla para lograr familiarizar al lector con los diferentes
objetos de Excel, para tal fin se requiere usar la herramienta grabar Macro. Sin embargo se
hace nfasis en la ineficiencia o redundancia de parte del cdigo generado de esta manera.
Se presenta el uso del Examinado de Objetos, como herramienta clave y fundamental para
la comprensin detallada del modelo y uso de los diferentes objetos de Excel.

También podría gustarte