Está en la página 1de 43

Manual CURSO EXCEL 2013

y PROGRAMACIN (VBA) y MACROS

S diferente, intgrate

Mm011

Manual CURSO EXCEL 2013 y


PROGRAMACIN (VBA) y MACROS

Fecha: 23 / 07 / 2013
Autor: ORLANDO GUTIERREZ

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
INDICE
Pag. 3

Leccin 1 Introduccin a VBA

Pag. 5

Leccin 2 Mdulos en VBA

Pag. 6

Leccin 3 Clases en VBA

Pag. 10

Leccin 4 Macros

Pag. 13

Leccin 5 Modelo de objetos de Excel: Colecciones, Objetos, Propiedades, Mtodos, Enumeraciones

Pag. 18

Leccin 6 Objeto Excel

Pag. 19

Leccin 7 Libros

Pag. 20

Leccin 8 Hojas

Pag. 20

Leccin 9 Celdas y Rangos

Pag. 22

Leccin 10 Manejo de grficos

Pag. 24

Leccin 11 Colecciones para el manejo de grficos

Pag. 27

Leccin 12 Objetos para el manejo de grficos

Pag. 28

Leccin 13 Propiedades para el manejo de Grficos

Pag. 32

Leccin 14 Mtodos para el Manejo de Grficos

Pag. 33

Leccin 15 Controles, Cuadros de Dilogo y Formularios

Pag. 34

Leccin 16 Crear Formularios

Pag. 35

Leccin 17 Agregar Controles a Formularios

Pag. 36

Leccin 18 Programar eventos de controles en Formularios

Pag. 39 Leccin 19 Novedades en Aplicaciones para Office en Excel 2013 :Nuevas funciones de hoja de
clculo, Anlisis Rpido, Disponibilidad de nuevos orgenes de datos, Uso de los modelo OM, Creacin de grficos
dinmicos y tablas dinmicas de forma independiente, Interfaz de un nico documento, Las animaciones de
encendido y apagado mediante programacin, Escala de tiempo

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

LECCION 1

Introduccin a VBA

A la hora de programar en Visual Basic para Aplicaciones VBA , Visual Basic for Applications en ingls, se dispone
de un ambiente de programacin bastante completo: en Excel, Word y Access se dispone del Editor de Visual
Basic.
VBA es un subconjunto del lenguaje de Programacin Visual Basic y por lo tanto mantiene el conjunto de
instrucciones bsicas: secuenciales, condicionales y repetitivas.
En la siguiente figura se muestra un resumen de estas instrucciones

El valor agregado de VBA es que ofrece una librera de objetos para cada una de las herramientas de Office: Excel,
Word y Access. En las aplicaciones modernas desarrolladas con Microsoft Visual Studio .Net; esta funcionalidad la
ofrecen a travs de las caractersticas de Interop.
Editor de Visual Basic
El Editor de Visual Basic, VBE por sus siglas en ingls, es un programa independiente a Excel pero fuertemente
relacionado a l porque es el programa que permite escribir cdigo VBA que estar asociado a las macros.
Existen al menos dos alternativas para abrir este editor, la primera de ellas es a travs del botn Visual Basic de
la ficha Programador.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

El segundo mtodo para abrir este programa es, el ms sencillo y rpido y que es a travs del atajo de teclado:
ALT + F11. El Editor de Visual Basic contiene varias ventanas y barras de herramientas.

En la parte izquierda se muestra el Explorador de proyectos el cual muestra el proyecto VBA creado para el libro
actual y adems muestra las hojas pertenecientes a ese libro de Excel. Si por alguna razn no se puedes visualizar
este mdulo se puede habilitar en la opcin de men Ver y seleccionando la opcin Explorador de proyectos.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

El Explorador de proyectos tambin ayuda a crear o abrir mdulos de cdigo que se sern de gran utilidad para
reutilizar todas las funciones de cdigo VBA.
Dentro del Editor de Visual Basic se observa una ventana llamada Inmediato que est en la parte inferior. Esta
ventana es de mucha ayuda al momento de escribir cdigo VBA porque permite introducir instrucciones y observar
el resultado inmediato. Adems, desde el cdigo VBA se pueden imprimir mensajes hacia la
ventana Inmediato con el comando Debug.Print de manera de depurar el cdigo. Si no se puede observar esta
ventana se puede mostrarla tambin desde el men Ver.
El rea ms grande en blanco es donde se escribe el cdigo VBA.
LECCION 2

Mdulos en VBA

Un mdulo se utiliza para recopilar bajo un nombre un conjunto de declaraciones, instrucciones, procedimientos y
funciones.
Al crearse un mdulo desde VBA se pueden agegar variables (declaraciones) y cdigo Sub y Functions.
Ejemplo se crea un mdulo saludo.vb
Y se escribe el siguiente cdigo
Sub saludo() Subrutina, saludo del modulo
Dim saludo As String declaracin de variable local
saludo = MsgBox(Hola Mundo, vbCritical, Mi saludo) instruccin
End Sub

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Se Inicia VBA y Men>Insertar>Mdulo.
A continuacin se resumen la sintaxis para las instrucciones en VBA.

LECCION 3

Clases en VBA

Aparte de los mdulos para cdigo que tiene Excel VBA, tambin existen Mdulos de clase o Class Modules, en
estos mdulos se puede crear clases personalizadas con las cuales se puede representar en cierta forma objetos,
aunque Excel VBA no es un lenguaje orientado a objetos, se puede aprovechar algunas ventajas que da el uso de
clases.
Un mdulo de clase en VBA puede definirse como una plantilla donde crear objetos.
Definir todas las caractersticas que requiere el objeto final. Por ejemplo, se puede tener una clase llamada
clsEmpleados en donde se almacenan todas las caractersticas con respecto a un empleado. Como propiedades se
pueden definir: nombre, apellidos, domicilio, edad, casado, sueldo, fecha de ingreso, antigedad, etc. Como
mtodos se podra tener: ActualizarDatos , GuardarCambios, ValidarDatos.
Un mdulo de clase:

Es parecido a los tipos de datos definidos por el usuario UDT.


Cada mdulo define un tipo de objeto.
En ejecucin se debe crear una instancia (o objeto) de la clase.
No tiene interfaz de usuario.

Los mdulos de clase no presentan una interfaz grfica al desarrollador tal y como lo hacen los formularios. En los
formularios se puedes colocar visualmente un botn, una lista, un texto, etc. Los mdulos de clase solo contienen
cdigo definiendo las caractersticas del objeto.

Se pueden crear mltiples instancias en ejecucin.


De acuerdo a la configuracin de las propiedades de la clase se pueden crear varias instancias u objetos de una
misma clase. Esto es, la propiedad Instancing de un mdulo de clase indica cmo se trataran los objetos creados
utilizando un mdulo de clase determinado. Se tiene la opcin de que sea una clase Privada lo cual significa que no
se puede instanciar directamente por otro programa.

Proporciona mtodos y propiedades.

Eventos de un mdulo de clase: Initialize y Terminate


Los mdulos de clase presentan dos eventos:
Initialize: ocurre cuando se crea una instancia de una clase. Se usa, generalmente para inicializar cualquier
dato usado por la instancia de una clase en el cdigo.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Terminate: ocurre cuando toda referencia a una instancia de una clase son removidas de memoria al
establecer todas las variables que la refieren a un objeto a Nothing o cuando la ltima referencia al el objeto se
encuentra fuera de alcance. Usado generalmente para limpiar la memoria de objetos creados dentro de esta
instancia y generar un error si hay alguna anomala o guardar alguna informacin del objeto, etc.

Diferencias con los mdulos estndar

Deben ser creadas explcitamente (crear instancia) antes de usarlas.

No se puede utilizar el mtodo o la propiedad de una clase si no se tiene una instancia de la misma o una
referencia al componente que la contiene si la clase est configurada como Instancing = PublicNoCreatable.
Se Pueden crear mltiples instancias de la clase.
Ejemplo:
1. Iniciar VBA y en Men>Insertar>Mdulo de clase.
2. Darle un nombre por ejemplo ObAplicacion
3. Insertar el siguiente cdigo donde se crea un objeto Aplicacion:
Public WithEvents MiAplicacion as Application
Si se pulsa ahora F2 y se despliega la lista de objetos, encontrar el objeto recin creado. A continuacin se crean
dos mtodos para el objeto recin creado. El primero se encargar de insertar una nueva hoja en el libro:
Private Sub MiAplicacion_NuevaHoja(ByVal wb As Workbook, ByVal sh As Object)
Dim nombrehoja As String
nombrehoja = InputBox(Introduzca un nombre para la hoja)
ActiveSheet.Name = nombrehoja
ActiveSheet.Move After:=Sheets(Sheets.Count)
End Sub
Con este cdigo se crea un nuevo libro:
Private Sub MiAplicacion_NuevoLibro(ByVal wb As Workbook)
Dim numhojas, numactual, diferencia As Integer
por cada nuevo libro se solicita al usuario el nmero de hojas
caso necesario se agregan o eliminan hojas
Do
numhojas = Application.InputBox(Cuntas hojas va a necesitar?, Type:=1)
Loop While numhojas = False
numactual = Sheets.Count
diferencia = numactual numhojas
se eliminan las hojas de sobra y se desactivan las alertas
Do While diferencia > 0
Application.DisplayAlerts = False
Sheets.Item(diferencia).Select
ActiveWindow.SelectedSheets.Delete
diferencia = diferencia 1
Loop
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
Por ltimo se va a conectar el mdulo de clase con el objeto Aplicacin:
Option Explicit
Dim app As New ObjAplicacion
Sub Inicializa_MiAplicacion()
Set app.MiAplicacion = Application
End Sub
Otro ejemplo conteniendo propiedades
Para ilustrar sobre el uso de clases, se crear la clase Rectngulo. En aspectos generales una clase tiene un
constructor, variables privadas, mtodos de lectura/escritura de las variables privadas, propiedades y mtodos en
s. En un mdulo de clase no existen constructores, ms si existe el evento Initialize de la clase, una variable
privada se crea con la sentencia private al definir una variable, las propiedades de lectura/escritura se realizan con
las palabras clave Get y Let, las propiedades con Property y los mtodos como otros Sub o Function.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Aqu se muestra el cdigo para la clase Rectangulo

'variables privadas
Private pnombre As String
Private plargo As Double
Private pancho As Double
'Constructora de la Clase
Private Sub Class_Initialize()
plargo = 6
pancho = 4
End Sub
'Acceso variables publicas
Public Property Let nombre(p As String)
pnombre = p
End Property
Public Property Get nombre() As String
nombre = pnombre
End Property
Public Property Let largo(x As Double)
plargo = x
End Property
Public Property Get largo() As Double
largo = plargo
End Property
Public Property Let ancho(x As Double)
pancho = x
End Property
Public Property Get ancho() As Double
ancho = pancho
End Property
'Propiedades
Property Get Area() As Double
Area = plargo * pancho
End Property
Property Get Perimetro() As Double
Perimetro = 2 * (plargo + pancho)
End Property

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
'Metodos
Public Sub Resize(f As Double)
plargo = plargo * (1 + f)
pancho = pancho * (1 + f)
End Sub
En el cdigo, en primer lugar se han declarado las variables privadas (pnombre, pancho, plargo), luego se ha
declarado el evento inicializacin de una clase (Class_Initialize), que en caso no se declare los parmetros para
la clase Rectangulo (largo, ancho) automticamente toma los valores que indica Initialize.
Luego se han declarado las propiedades de acceso lectura/escritura (Get/Let) a cada una de esas variables. Luego
se han declarado las propiedades Area y Perimetro que se calculan en funcin de los parmetros plargo y
pancho. Finalmente se cre el mtodo Resize, que reajusta el tamao de plargo y pancho en un porcentaje f.
Para el siguiente fragmento de cdigo, se requiere una hoja de Excel conteniendo la siguiente informacin:

Luego en un mdulo estndar se agrega el siguiente sub.

Sub readRectangulos()
Dim rg As Range
Dim oRec1 As Rectangulo
Dim oRec2 As Rectangulo
Set rg = Range("B3")
Set oRec1 = New Rectangulo
'Se define los datos de oRec1
oRec1.largo = rg.Offset(0, 1).Value
oRec1.ancho = rg.Offset(0, 2).Value
rg.Offset(0, 3).Value = oRec1.Area
rg.Offset(0, 4).Value = oRec1.Perimetro
'No se define los datos de oRec2
Set rg = Range("B4")
Set oRec2 = New Rectangulo
rg.Offset(0, 1).Value = oRec2.largo
rg.Offset(0, 2).Value = oRec2.ancho

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
rg.Offset(0, 3).Value = oRec2.Area
rg.Offset(0, 4).Value = oRec2.Perimetro
'Aplicando Resize a oRec1
oRec1.Resize (0.25)
Set rg = Range("B5")
rg.Offset(0, 1).Value = oRec1.largo
rg.Offset(0, 2).Value = oRec1.ancho
rg.Offset(0, 3).Value = oRec1.Area
rg.Offset(0, 4).Value = oRec1.Perimetro
'Libera memoria
Set oRec1 = Nothing
Set oRec2 = Nothing
End Sub
Se declaran dos objetos Rectangulo oRec1 y oRec2, el primero toma datos de C3 y D3 de la hoja activa, mientras
que oRec2 no toma ningn valor, mantiene los valores que se le dio en Class_Initialize para plargo y pancho. Se
escriben estos valores en la hoja, luego se modifica oRec1 con el mtodo Resize y se inscriben los valores en la
hoja.

LECCION 4

Macros

Las macros de Excel permiten automatizar tareas realizadas cotidianamente de manera de ser ms eficientes en el
trabajo. Una macro no es ms que una serie de comandos o instrucciones que permanecen almacenados dentro de
Excel y que se pueden ejecutar cuando sea necesario y cuantas veces se requiera.
Las macros se escriben en un lenguaje de programacin que es conocido como VBA. Este lenguaje permite acceder
a prcticamente todas las funcionalidades de Excel y con ello tambin ampliar la funcionalidad del programa.
Excel provee de una herramienta especial que permite crear una macro sin necesidad de conocer los detalles del
lenguaje de programacin, pero no es el caso ideal para los desarrolladores profesionales.
Las macros se crean con el Editor de Visual Basic el cual permitir introducir el cdigo con las instrucciones que
sern ejecutadas por la macro.
Existe otro mtodo que es utilizar la Grabadora de macros la cual ir grabando todas las acciones realizadas en
Excel hasta que se detenga la grabacin. Una vez grabada la macro podremos reproducir de nuevo las acciones
con tan solo un clic. La utilidad de la grabadora es visualizar el cdigo VBA generado de manera automtica el cual
puede ser modificado en las aplicaciones desarrolladas.
El cdigo de la grabadora de macros
Una manera muy interesante de descubrir y aprender ms sobre cdigo VBA es analizar el cdigo generado por
la Grabadora de macros. En el siguiente ejemplo se grabar una macro muy sencilla que solamente cambie el
color de la fuente de la celda actual.
Para comenzar se debe ir a la pestaa Programador y pulsar el comando Grabar macro lo cual mostrar el
cuadro de dilogo donde se asignar el nombre a la macro que se est por crear.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

10

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Pulsar el botn Aceptar y se comenzarn a grabar todas las acciones. Para la macro a grabar se ejecutar lo
siguiente: ir a la pestaa Inicio y pulsar el comando Color de fuente y seleccionar el color rojo para la celda activa.

Una vez hecho esto se detiene la grabacin de la macro y una alternativa para hacerlo es pulsar el icono que se
muestra en la barra de estado.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

11

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Una vez generada la macro, se pulsa el botn Macros que se encuentra en el grupo Cdigo de la ficha
Programador. Se mostrar el cuadro de dilogo Macro que enlista todas las macros creadas.

Seleccionar la macro recin creada y pulsar el botn Modificar. Esto abrir el Editor de Visual Basic y mostrar el
cdigo generado para la macro.

Observando este cdigo se aprenden varias cosas. Para empezar se observa que el objeto Selection tiene una
propiedad llamada Font que es la que hace referencia a la fuente de la celda o rango seleccionado. A su vez, la
propiedad Font tiene otra propiedad llamada Color que es precisamente la que define el color rojo de nuestra celda.
Aunque este ha sido un ejemplo muy sencillo, cuando se tenga duda sobre qu objetos utilizar al programar en
VBA se puede considerar utilizar la Grabadora de macros para obtener una idea del camino a seguir.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

12

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

LECCION 5

Modelo de objetos de Excel: Colecciones, Objetos, Propiedades, Mtodos, Enumeraciones

Elementos
El modelo de objetos de Excel se compone de objetos y colecciones de objetos. Los objetos, como cualquier objeto
de Visual Basic se componen de Propiedades, Mtodos. Para algunos casos se definen enumeraciones agrupando
conjuntos de constantes.
Los objetos en Excel (VBA) son elementos dentro de la hoja de excel. Una celda es un objeto, una hoja es un
objeto, un libro es un objeto y de esta manera existen muchos ms objetos en Excel. A esto lo conocemos como el
modelo de objetos de Excel.

Cada uno de los objetos de Excel tiene propiedades y mtodos. Las propiedades son las caractersticas del
objeto y los mtodos son las acciones que el objeto puede ejecutar.
Propiedades de un objeto
Si una persona fuera un objeto de Excel sus propiedades seran el color de sus ojos, el color de su cabello, su
estatura, su peso. De la misma manera, un objeto de Excel tiene propiedades por ejemplos, una celda (Range)
tiene las propiedades valor (Value) y direccin (Address) entre muchas otras. Estas propiedades describen mejor
al objeto.
Mtodos de un objeto
Siguiendo con el ejemplo de una persona, si fuera un objeto de Excel sus mtodos seran correr, caminar, hablar,
dormir. Los mtodos son las actividades o acciones que el objeto puede ejecutar. Los objetos de Excel se
comportan de la misma manera que el ejemplo de una persona. Una celda (Range) tiene los mtodos activar
(Activate), calcular (Calculate), borrar (Clear) entre muchos ms.
Utilizando las propiedades y los mtodos
Para acceder a las propiedades y mtodos de un objeto se hace a travs de una nomenclatura especial. Justo
despus del nombre del objeto colocamos un punto seguido del nombre de la propiedad o del mtodo. En este
ejemplo se hace uso de la propiedad Value para la celda A1:
Range("A1").Value = "Hola"
De esta manera se asigna una cadena de texto al valor de la celda A1. Ahora bien, si se quiere borrar el valor que
se acaba de colocar en la celda se puede utilizar el mtodo Clear de la siguiente manera:
Range("A1").Clear

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

13

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Ver todas las propiedades y mtodos
Los objetos tienen muchas propiedades y mtodos y a veces es difcil pensar que se conocern todos por completo.
Sin embargo, el Editor de Visual Basic es de gran ayuda porque justamente al momento de escribir el cdigo
proporciona la lista completa de propiedades y mtodos para un objeto.

Esto sucede al momento de introducir el punto despus del nombre del objeto. Se puede distinguir entre las
propiedades y mtodos porque tienen iconos diferentes. En la imagen de arriba los mtodos son los que tienen el
icono de color verde.
Jerarqua Principal.
Nivel 1. Un objeto Application (representando al Excel) contiene una coleccin de libros (.xls), objeto Workbooks
Nivel 2. Un objeto Workbook (libro) contiene una coleccin de Pestaas, objeto Worksheet
Nivel 3. Las celdas de una Pestaa se representan en el objeto Range, el cual tiene dos dimensiones; celda inicial
y celda final

Objeto Application

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

14

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Objeto Workbook

Objeto Pestaa

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

15

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Objeto Range

Navegando el Modelo de Objetos


Excel tiene un modelo de objetos el cual es una jerarqua de todos los objetos que se pueden utilizar desde el
lenguaje VBA. En la parte superior de la jerarqua se encuentra el objeto Application y todos los dems objetos
estarn por debajo de l.
Acceder a objetos inferiores
Para tener acceso a los objetos que estn por debajo del objeto Application se puede utilizar el punto. El punto
ayuda a navegar por la jerarqua hacia un nivel inferior. Observar lo que se muestra en el Editor de Visual Basic al
colocar un punto despus del objeto Application:

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

16

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Por ejemplo, si se desea poner en negrillas el texto de la celda A1 se debe llegar al objeto Range el cual dar
acceso a modificar la propiedad Bold de la siguiente manera:

Aunque esta lnea de cdigo puede tomar un poco de tiempo en escribirla, pero describe por completo la jerarqua
de los objetos.
Objetos predeterminados
Existe una funcionalidad intrnseca de VBA conocida como objetos predeterminados la cual permite omitir la
escritura de algunos objetos y aun as tener un cdigo funcional. Por ejemplo, en la instruccin mostrada
previamente se puede omitir el objeto Application y tener el cdigo funcionando correctamente:

Inclusive se pueden omitir los objetos ActiveWorkbook y ActiveSheet sabiendo que el cdigo se ejecutar
siempre sobre el libro activo y la hoja que est activa al momento de la ejecucin:

Referencias completas a objetos


Se puede utilizar las referencias completas a los objetos, es decir, especificar toda la ruta completa hasta llegar al
objeto deseado. Una razn para hacer esto es porque da una claridad absoluta sobre la ubicacin exacta de cada
objeto lo cual ayudar a evitar cualquier mala interpretacin del cdigo.
Si se decides no hacer uso de los objetos predeterminados sino que se desea utilizar las referencias completas
hacia cada objeto an hay una manera de ahorrar algunas lneas de cdigo. Suponga las siguientes instrucciones
en VBA:

Se pueden ahorrar algunas palabras de este cdigo haciendo uso del bloque With de la siguiente manera.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

17

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
En ambos casos el resultado ser el mismo y en el ltimo se ahorran algunos caracteres dejando el cdigo VBA
claro y legible.
LECCION 6

Objeto Excel

El objeto Application
Cuando se escribe cdigo con VBA se trabajamos con mltiples objetos que pueden ejecutar instrucciones
adecuadamente, pero el objeto Application est en el nivel ms alto de la jerarqua del modelo de objetos de
Excel.
El objeto Application simboliza a Excel mismo y da acceso a opciones y configuraciones a nivel de la aplicacin.
Muchas de las opciones a modificar con el objeto Application son las mismas que se encuentran en la pestaa
Archivo dentro del cuadro de dilogo Opciones de Excel.
Ya que el objeto Application es el objeto principal dentro de VBA todos los dems objetos derivan de l. Es por
ello que se encontrarn frecuentemente instrucciones que comienzan especificando el objeto Application:
Application.ActiveSheet.Name = "Reporte de Ventas"
Sin embargo, VBA permite, en la mayora de los casos, omitir la escritura del objeto Application ya que supone
que todos los dems objetos provienen de l. De esta manera la siguiente instruccin tambin es vlida.
ActiveSheet.Name = "Reporte de Ventas"
Colecciones del objeto Application
El objeto Application tiene algunas colecciones que son de mucha utilidad como Sheets, Columns y Rows. La
coleccin Sheets permite acceder a todas las hojas de un libro:
Application.Sheets.Count

Es muy importante mencionar que la coleccin Sheets se referir al libro de Excel que se encuentre activo en el
momento de ejecutar esta instruccin. Las colecciones Columns y Rows permitirn acceder a las columnas y filas
de la hoja activa.

Application.Columns(5).Select
Application.Rows(5).Select
Propiedades del objeto Application
El objeto Application tiene muchas propiedades como para mencionarles todas en este manual, pero algunas de las
ms importantes son las siguientes:

ActiveWorkbook. Devuelve un objeto Workbook que representa el libro de Excel activo.


ActiveSheet. Regresa un objeto Worksheet que representa a la hoja que est actualmente seleccionada
(activa).
ActiveCell. Devuelve un objeto Range que representa la celda activa dentro de la hoja activa en el libro de
Excel activo.
ThisWorkbook. Esta propiedad devolver un objeto Workbook que representar el libro que contiene la
macro que est siendo ejecutada.

Mtodos del objeto Application


Uno de los mtodos ms utilizados del objeto Application es el mtodo InputBox mostrando un cuadro de dilogo
que solicita al usuario el ingreso de algn valor. Ejemplo:

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

18

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Impresiones = Application.InputBox(Prompt:="Nmero de impresiones:", _
Title:="Imprimir", Default:=1, Type:=1)

Esta instruccin har que Excel muestre un cuadro de dilogo pidiendo al usuario ingresar el nmero de
impresiones que desea realizar. El nmero ingresado por el usuario se guardar en la variable Impresiones.

LECCION 7

Libros

Un objeto en VBA puede contener otro objeto y ese objeto a su vez puede contener otro objeto y as
sucesivamente. La raz de todos los objetos en VBA se encuentra en el objeto Application el cual a su vez contiene
las colecciones de objetos Workbooks.
El objeto Workbook representa un libro de Excel
Un libro de Excel puede tener ms de una hoja lo cual significa que un objeto Workbook puede contener ms de un
objeto Worksheet.
Como no hay lmite en el nmero de hojas que puede tener un libro, se volvera complicado organizar esta relacin
entre los objetos Workbook y Worksheet y por esta razn se crearon las colecciones de objetos. De esta manera un
objeto Workbook tiene asociada una coleccin de objetos Worksheets la cual contiene los objetos Worksheet
que representan las hojas de ese libro de Excel.
De la misma manera, el objeto Application no tiene asignados directamente todos los libros de Excel sino que tiene
una coleccin de objetos Workbooks la cual incluir todos los objetos Workbook de los libros de Excel que se
abran en el cdigo VBA.
Abrir un libro de Excel
Para abrir un libro de Excel en VBA se puede utilizar el mtodo Open del objeto Workbooks de la siguiente manera:

Application.Workbooks.Open Filename:="C:Libro1.xlsx"

Esta instruccin abrir el archivo ubicado en C:Libro1.xlsx y lo agregar a la coleccin de objetos Workbooks.
De esta manera se pueden abrir tantos archivos como sean necesarios y para cada uno de ellos se crear un objeto
Workbook el cual ser almacenado dentro de Workbooks.
Hacer referencia a un libro en VBA
Una vez abiertos los archivos requeridos se puede hacer referencia a cada uno de ellos a travs de la coleccin de
objetos Workbooks de la siguiente manera:
Application.Workbooks(1).Activate
El nmero dentro de los parntesis indica el ndice del objeto Workbook dentro de la coleccin de objetos
Workbooks. De manera predeterminada el ndice 1 ser para el libro de Excel que contiene el cdigo VBA y a
partir de ah la numeracin ser de acuerdo al orden en se hayan abierto otros archivos.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

19

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Si se conoce el nombre del libro se puede utilizar en lugar del ndice y tener una instruccin como la siguiente:

Application.Workbooks("Libro1.xlsx").Activate
La coleccin de objetos Workbooks permitir acceder a todos los libros abiertos dentro de la aplicacin VBA.
LECCION 8

Hojas

Un objeto en VBA puede contener otro objeto y ese objeto a su vez puede contener otro objeto y as
sucesivamente. La raz de todos los objetos en VBA se encuentra en el objeto Application el cual a su vez
contiene las colecciones de objetos Worksheets.
El objeto Worksheet representa una hoja de un libro de Excel.
Acceder las hojas de un libro
Se puede acceder las hojas de cualquier libro a travs de su coleccin de objetos Worksheets. Esta coleccin
tambin puede ser accedida por el ndice de cada una de las hojas del libro:
Application.Workbooks(1).Worksheets(1).Range("A1").Value = "Hola"

Esta instruccin accede a la hoja con el ndice 1 y coloca el valor Hola Mundo en la celda A1. Tambin se puede
acceder a una hoja a travs de su nombre en caso de conocerlo:

Application.Workbooks(1).Worksheets("Hoja1").Range("A1").Value = "Hola"
Agregar una nueva hoja
A travs de la coleccin de objetos Worksheets se pueden crear nuevas hojas en un libro. Observar la siguiente
instruccin:
Worksheets.Add

Observar que no se ha iniciado la instruccin anterior con el objeto Application, ni tampoco est precedida por el
objeto Workbooks. Esta es una sintaxis aceptable dentro de VBA e indica que se agregar una nueva hoja al libro
que est activo en ese momento. Este es un mtodo abreviado que se puede utilizar si se est seguro de que el
libro activo es el libro dondse se agregar una nueva hoja. De lo contrario, se puede especificar tota la ruta
completa:

Application.Workbooks("Libro1.xlsx").Worksheets.Add

LECCION 9

Celdas y Rangos

Objeto Range
Representa una celda, una fila, una columna, una seleccin de celdas que contienen uno o ms bloques contiguos
de celdas o un rango 3D.
Usar Range(arg), donde arg asigna un nombre al rango, para obtener un objeto Range que represente una sola
celda o un rango de celdas. En el ejemplo siguiente se coloca el valor de la celda A1 en la celda A5.
Worksheets("Sheet1").Range("A5").Value = _
Worksheets("Sheet1").Range("A1").Value

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

20

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
En el ejemplo siguiente se rellena el rango A1:H8 con nmeros aleatorios y se establece la frmula de cada celda
del rango. La propiedad Range, si se emplea sin un calificador de objeto (un objeto colocado a la izquierda del
punto), devuelve un rango de la hoja activa. Si la hoja activa no es una hoja de clculo, este mtodo no se llevar
a cabo con xito. Usar el mtodo Activate para activar una hoja de clculo antes de usar la propiedad Range sin
un calificador de objeto explcito.
Worksheets("Sheet1").Activate
Range("A1:H8").Formula = "=Rand()"

'Range is on the active sheet

En el ejemplo siguiente se borra el contenido del rango denominado Criteria.


Nota: Si se usa un argumento de texto para la direccin del rango, se debe especificar la
direccin en notacin de estilo A1 (no se puede usar la notacin de estilo R1C1).
Worksheets(1).Range("Criteria").ClearContents
Usar Cells(fila, columna), donde fila es el ndice de la fila y columna es el ndice de la columna, para obtener una
sola celda. En el siguiente ejemplo se establece en 24 el valor de la celda A1.
Worksheets(1).Cells(1, 1).Value = 24
En el siguiente ejemplo se establece la frmula de la celda A2.
ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"
Aunque tambin se puede usar Range("A1") para devolver la celda A1, es posible que haya veces cuando la
propiedad Cells es ms conveniente, ya que puede usar una variable de la fila o columna. En el ejemplo siguiente
se crea los encabezados de columna y fila de Sheet1. Tener en cuenta que despus de activar la hoja de clculo, la
propiedad de las celdas se puede usar sin una declaracin de hoja explcitas (devuelve una celda de la hoja
activa).
Nota: Aunque podra usar funciones de cadena de Visual Basic para modificar las referencias de
estilo A1, es ms sencillo (y una mejor prctica de programacin) usar la notacin Cells(1, 1) .
Sub SetUpTable()
Worksheets("Sheet1").Activate
For TheYear = 1 To 5
Cells(1, TheYear + 1).Value = 1990 + TheYear
Next TheYear
For TheQuarter = 1 To 4
Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter
Next TheQuarter
End Sub
Usar expresin.Cells(fila, columna), donde expresin es una expresin que devuelve un objeto Range,
y fila y columna son relativos a la esquina superior izquierda del rango, para obtener una parte del rango. En el
siguiente ejemplo se establece la frmula para la celda C5.
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"
Usar Range(celda1, celda2), donde celda1 y celda2 son objetos Range que especifican la primera y la ltima
celda, para obtener un objeto Range. En el siguiente ejemplo se establece el estilo de lnea de los bordes de las
celdas A1:J10.
Nota: Tener en cuenta que el perodo delante de cada aparicin de la propiedad Cells.
El perodo es necesario si el resultado de la instruccin con anterior es que se aplicar
a la propiedad Cells en este caso, para indicar que son las celdas de la hoja uno
(sin el perodo, la propiedad Cells devolvera las celdas de la hoja activa).
With Worksheets(1)
.Range(.Cells(1, 1), _
.Cells(10, 10)).Borders.LineStyle = xlThick
End With

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

21

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Usar Offset(fila, columna), donde fila y columna son la fila y columna, desplaza, para devolver un intervalo con un
desplazamiento especificado al intervalo de otra. En el ejemplo siguiente se selecciona la celda situada tres filas
hacia abajo desde y una columna a la derecha de la celda en la esquina superior izquierda de la seleccin actual.
No puede seleccionar una celda que no est en la hoja activa, por lo que debe activar la hoja de clculo.
Worksheets("Sheet1").Activate
'Can't select unless the sheet is active
Selection.Offset(3, 1).Range("A1").Select
Usar Union(rango1, rango2, ...) para devolver rangos de varias reas, es decir, rangos compuestos por dos o ms
bloques contiguos de celdas. En el siguiente ejemplo se crea un objeto definido como la unin de los rangos A1:B2
y C3:D4 y, a continuacin, se selecciona el rango definido.
Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
Worksheets("sheet1").Activate
Set r1 = Range("A1:B2")
Set r2 = Range("C3:D4")
Set myMultiAreaRange = Union(r1, r2)
myMultiAreaRange.Select
Si se trabaja con selecciones que contienen ms de un rea, la propiedad Areas es til. Divide una seleccin de
varias reas en objetos de rango individuales y, a continuacin, devuelve los objetos como una coleccin. Se
puede usar la propiedad Count en la coleccin devuelta para comprobar una seleccin que contiene ms de un
rea, tal como se muestra en el siguiente ejemplo.
Sub NoMultiAreaSelection()
NumberOfSelectedAreas = Selection.Areas.Count
If NumberOfSelectedAreas > 1 Then
MsgBox "You cannot carry out this command " & _
"on multi-area selections"
End If
End Sub

LECCION 10 Manejo de grficos


A continuacin se muestra un ejemplo de cmo crear grficos en Excel con VBA. En las siguientes lecciones se
explicarn los elementos por separado.
Crear grficos personalizados puede ser una tarea prctica y sencilla si se conoce como utilizar el objeto Chart y
ChartObject, al igual que sus mtodos y propiedades.
Inicialmente en Excel solo se podan crear hojas de grficos (Chart), es decir un grfico se situaba en toda una hoja
algo similar a lo que sucede cuando se presiona la tecla F11 sobre un listado de datos, inmediatamente se crea una
hoja de grafico de los datos con el tipo de grafico por defecto. Despus Excel incorporo la posibilidad de tener
objetos de grficos dentro de una hoja existente (ChartObject).
En esta leccin se muestra como crear un grfico, manipular el rea de grfico, el rea de trazado y las series de
un objeto grafico (ChartObject), al igual que algunas de sus propiedades. Tambin se ver cmo crear un grfico
circular con un subgrfico de barras que agrupe porcentajes menores a un valor establecido y por ltimo como
exportar un grfico como una imagen.
La ventaja de crear grficos y exportarlos como imagen es que se puede utilizar dichas imgenes exportadas para
poderlas cargas en un formulario, poderlas visualizar en pginas web y otras posibilidades ms

Option Explicit
Creacion de un grafico desde VBA
Sub Crear_Grafico()
Dim ws As Worksheet
Dim migrafico As ChartObject
Set ws = ActiveSheet
Charts.Add Se crea una hoja de grafico

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

22

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
With ActiveChart en la hoja de gafico activa
.SetSourceData ws.Range(A1).CurrentRegion establecer el origen de los datos a graficar
.Location xlLocationAsObject, ws.Name mover a la hoja1, con lo cual pasa de objeto Chart a ChartObject
End With
Set migrafico = ws.ChartObjects(1) se crea una referencia
With migrafico
.Width = 300 ancho
.Height = 150 alto
.Left = 180 distancia con la parte izquierda de la hoja
.Top = 10 distancia con la parte superior de la hoja
.Chart.Legend.Position = xlLegendPositionBottom poner leyenda en la parte inferior del grafico
End With
End Sub
Modifica el area de grafico (ChartArea) del grafico activo
Sub Area_Grafico()
Dim ws As Worksheet
Dim grafico As Chart
Dim area As ChartArea
Set ws = ActiveSheet hoja activa
Set grafico = ws.ChartObjects(1).Chart grafico 1
Set area = grafico.ChartArea area de grafico
With area
.Shadow = True
.Select
.Border.ColorIndex = 3
.Border.Weight = xlMedium
.Interior.ColorIndex = 34
.AutoScaleFont = False
.Font.Size = 14
End With
End Sub
Modifica el area de trazado (PlotArea) del grafico activo
Sub Area_Trazado()
Dim ws As Worksheet
Dim grafico As Chart
Dim trazado As PlotArea
Set ws = ActiveSheet
Set grafico = ws.ChartObjects(1).Chart
Set trazado = grafico.PlotArea
With trazado
.Top = 20
.Left = 35
.Height = 100
.Width = 200
End With
End Sub
Modificar las series del grafico
Sub Series()
Dim ws As Worksheet
Dim grafico As Chart
Dim serie As Series
Set ws = ActiveSheet
Set grafico = ws.ChartObjects(1).Chart
Set serie = grafico.SeriesCollection(Xdata)

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

23

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
With serie
.ChartType = xlLine
.Border.Weight = xlThick
.MarkerStyle = xlMarkerStyleCircle
.MarkerBackgroundColorIndex = xlColorIndexAutomatic
.MarkerForegroundColorIndex = xlColorIndexAutomatic
.MarkerSize = 10
End With
End Sub
Crea un grafico circular con subgrafico de barras (agrupa todos los porcentajes < 5%)
Sub Grafico_Circular()
Dim ws As Worksheet
Dim rng As Range
Dim grafico As Chart
Dim grupo As ChartGroup
Set ws = ThisWorkbook.Sheets(Hoja2)
Set rng = ws.Range(A1).CurrentRegion
Set grafico = Charts.Add
With grafico
.ChartType = xlBarOfPie tipode grafico
.SetSourceData rng fuente de datos
.ApplyDataLabels xlDataLabelsShowPercent mostrar etiquetas de porcentaje
Set grupo = .ChartGroups(1)
With grupo
.SplitType = xlSplitByPercentValue
.SplitValue = 5 menor que 5% combinado
.GapWidth = 200 espacio entre el grafico circular y las barras
.SecondPlotSize = 55 % relativo al tamao del circulo
End With
.Location xlLocationAsObject, ws.Name establecer como objeto de grafico
End With
End Sub
Exportar un grafico como imagen
Sub Exporta_Grafico()
Dim ws As Worksheet
Dim grafico As Chart
Set ws = ThisWorkbook.Sheets(Hoja2)
Set grafico = ws.ChartObjects(1).Chart
grafico.Export C:\grafico.gif, filtername:=GIF se exporta el grafico a la unidad C como imagen gif
End Sub

LECCION 11 Colecciones para el manejo de grficos


Conjunto Axes
Usar el mtodo Axes para devolver el conjunto Axes. El siguiente ejemplo muestra el nmero de ejes del grfico.
With myChart
MsgBox .Axes.Count
End With

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

24

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Utilizar Axes(type, group), donde type es el tipo de eje y group es el grupo de ejes, para devolver un solo objeto
Axis.
Type puede ser una de las siguientes opciones
XlAxisType puede ser una de estas constantes XlAxisType.
xlCategory
xlSeries xlValue
Grupo puede ser cualquiera de las siguientes constantes XlAxisGroup : xlPrimary o xlSecondary.
El siguiente ejemplo establece el texto del ttulo del eje de categoras.
With myChart.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Caption = "1994"
End With
Conjunto ChartGroups
Una coleccin de todos los objetos ChartGroup del grfico especificado. Cada objeto ChartGroup representa una
o varias series trazadas con el mismo formato de un grfico. Un grfico contiene uno o varios grupos de grficos,
cada grupo de grficos contiene una o varias series y cada serie contiene uno o varios puntos. Por ejemplo, un
nico grfico puede contener un grupo de grficos de lnea, que contiene todas las series trazadas con el formato
de grfico de lnea y en un grupo de grficos de barras, que contiene todas las series trazadas con el formato de un
grfico de barras.
Usar el mtodo ChartGroups para devolver el conjunto ChartGroups. El siguiente ejemplo muestra el nmero de
grupos de grficos en el grfico.
MsgBox myChart.ChartGroups.Count
Para devolver un solo objeto ChartGroup, utilizar ChartGroups(index), donde index es el nmero de ndice del
grupo de grficos. El siguiente ejemplo agrega lneas de unin al grupo de grficos uno del grfico.
myChart.ChartGroups(1).HasDropLines = True
Dado que el nmero de ndice de un grupo de grficos determinado puede cambiar si se modifica el formato de
grfico del grupo, puede ser conveniente utilizar uno de los mtodos abreviados para grupos de grficos para
devolver un grupo de grficos determinado. El mtodo PieGroups devuelve el conjunto de grupos de grficos
circulares del grfico especificado, el mtodo LineGroups devuelve el conjunto de grupos de grficos de lneas,
etc. Cada uno de estos mtodos se puede utilizar con un nmero de ndice para devolver un
objeto ChartGroup individual, o sin nmero de ndice para devolver un conjunto ChartGroups. Existen los
siguientes mtodos para grupos de grficos:
AreaGroups
BarGroups
ColumnGroups
DoughnutGroups
LineGroups
PieGroups
Conjunto DataLabels
Una coleccin de todos los objetos DataLabel para la serie especificada. Cada objeto DataLabel representa un
rtulo de datos para una lnea de tendencia o un punto. Para obtener una serie sin puntos definidos (por ejemplo,
una serie de rea), el conjunto DataLabels contiene un nico rtulo de datos.
Usar el mtodo DataLabels para devolver el conjunto DataLabels. El siguiente ejemplo establece el formato
numrico de los rtulos de datos de la serie uno del grfico.
With myChart.SeriesCollection(1)

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

25

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
.HasDataLabels = True
.DataLabels.NumberFormat = "##.##"
End With
Para devolver un solo objeto DataLabel, utilizar DataLabels(index), donde index es el nmero de ndice del rtulo
de datos. El siguiente ejemplo establece el formato numrico del quinto rtulo de datos de la serie uno del grfico.
myChart.SeriesCollection(1).DataLabels(5).NumberFormat = "0.000"
HiLoLines
Representa las lneas de mximos y mnimos del grupo de grficos especificado. Las lneas de mximos y mnimos
conectan el punto mximo con el mnimo en todas las categoras del grupo de grficos. Slo pueden tener lneas de
mximos y mnimos los grupos de lneas bidimensionales. Este objeto no es un conjunto. Ningn objeto representa
una lnea de mximo y mnimo individual; este tipo de lneas se activan o se desactivan para todos los puntos de
un grupo de grficos.
Usar la propiedad HiLoLines para devolver el objeto HiLoLines. El siguiente ejemplo asigna el color azul a las lneas
de mximos y mnimos del grupo de grficos uno.
myChart.ChartGroups(1).HiLoLines.Border.Color = RGB(0, 0, 255)
Conjunto LegendEntries
Una coleccin de todos los objetos de LegendEntry de la leyenda del grfico especificado. Cada entrada de
leyenda consta de dos partes: el texto de la entrada, que es el nombre de la serie o lnea de tendencia asociada
con la entrada; y el marcador de entrada, que vincula visualmente la entrada de leyenda con su serie o lnea de
tendencia en el grfico. Las propiedades de formato para el marcador de entrada y su serie o lnea de tendencia se
encuentran en el objeto LegendKey.
Usar el mtodo LegendEntries para devolver el conjunto LegendEntries. El siguiente ejemplo ejecuta un ciclo en
el conjunto de elementos de leyenda del grfico y cambia a azul el color de la fuente.
With myChart.Legend
For i = 1 To .LegendEntries.Count
.LegendEntries(i).Font.ColorIndex = 5
Next
End With
Para devolver un solo objeto LegendEntry, utilizar LegendEntries(index), donde index es el nmero de ndice del
elemento de leyenda. No es posible devolver entradas de leyenda por nombre.
El nmero de ndice representa la posicin de la entrada de leyenda en la leyenda. LegendEntries(1) est en la
parte superior de la leyenda; LegendEntries(LegendEntries.Count) est en la parte inferior.
En el ejemplo siguiente se cambia el estilo de fuente en cursiva el texto de la entrada de leyenda en la parte
superior de la leyenda (generalmente es la leyenda para la serie uno) en myChart.
myChart.Legend.LegendEntries(1).Font.Italic = True
Conjunto Points
Una coleccin de todos los objetos Point en la serie especificada de un grfico.
Usar el mtodo Points para devolver el conjunto Points. En el siguiente ejemplo se agrega un rtulo de datos al
ltimo punto de la serie uno del grfico.
Dim pts As Points
Set pts = myChart.SeriesCollection(1).Points
pts(pts.Count).ApplyDataLabels Type:=xlShowValue
Usar puntos(ndice), donde index es el nmero de ndice del punto, para devolver un solo objeto de punto. Puntos
se numeran de izquierda a derecha de la serie. Points(1) es el punto del extremo izquierdo y es el punto del
extremo izquierdo y Points(Points.Count) es el punto ms a la derecha. En el ejemplo siguiente se establece el
estilo del marcador para el tercer punto de la serie uno del grfico. La serie especificada debe ser una lnea de 2D,
dispersin o serie de radiales.
myChart.SeriesCollection(1).Points(3).MarkerStyle = xlDiamond
Conjunto SeriesCollection
Una coleccin de todos los objetos Series en el grfico especificado o el grupo de grficos.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

26

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Usar el mtodo SeriesCollection para devolver el conjunto SeriesCollection. En el siguiente ejemplo se ajusta el
color interior de cada serie del conjunto:
For X = 1 To myChart.SeriesCollection.Count
With myChart.SeriesCollection(X)
.Interior.Color = RGB(X * 75, 50, X * 50)
End With
Next X
Para devolver un solo objeto Series, utilizar SeriesCollection(index), donde index es el nombre o nmero de
ndice de la serie. En el siguiente ejemplo se establece en rojo el color interior de la serie uno del grfico.
myChart.SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
Conjunto TrendLines
Una coleccin de todos los objetos Trendline para la serie especificada. Cada objeto de la lnea de
tendencia representa una lnea de tendencia de un grfico. Una lnea de tendencia muestra la tendencia, o la
direccin de los datos en una serie.
Utilizar el mtodo Trendlines para devolver el conjunto Trendlines. En el siguiente ejemplo se muestra el nmero
de lneas de tendencia de la serie uno del grfico.
MsgBox myChart.SeriesCollection(1).Trendlines.Count
Usar el mtodo Add para crear una nueva lnea de tendencia y agregarla a la serie. En el ejemplo siguiente se
agrega una lnea de tendencia lineal a la serie uno del grfico.
With myChart.SeriesCollection(1).Trendlines
.Add Type:=xlLinear, Name:="Linear Trend"
End With
Para devolver un solo objeto TrendLine, utilizar Trendlines(index), donde index es el nmero de ndice de la lnea
de tendencia. En el siguiente ejemplo se cambia el tipo de lnea de tendencia de la serie uno del grfico. Si la serie
no tiene lnea de tendencia, este ejemplo dar error.
myChart.SeriesCollection(1).Trendlines(1).Type = xlMovingAvg
El nmero de ndice representa el orden en que se agregan lneas de tendencia a la serie. Trendlines(1) es la
primera lnea de tendencia agregado a la serie y se agrega de la primera lnea de tendencia a la serie
y Trendlines(Trendlines.Count) es el ltimo agregado.
LECCION 12 Objetos para el manejo de grficos
Objeto Chart
Representa el grfico Microsoft Graph especificado.
Utilizar la propiedad Chart para devolver el objeto Chart. La mayora de las veces, se crear una referencia a un
grfico de Microsoft Graph y despus se utilizar la referencia en el cdigo.
Objeto PlotArea
Representa el rea de trazado del grfico especificado. Es el rea en que se trazan los datos de un grfico. El rea
de trazado de un grfico 2D contiene los marcadores de datos, rtulos de datos, lneas de divisin y elementos
opcionales del grfico situados en el rea de grfico. El rea de trazado de un grfico 3D contiene los elementos
anteriores ms los planos inferior y laterales, ejes, ttulos de los ejes y rtulos de las marcas de graduacin del
grfico.
El rea de trazado est rodeado por el rea del grfico. El rea del grfico en un grfico 2D contiene los ejes, el
ttulo del grfico, los ttulos de los ejes y la leyenda. El rea del grfico en un grfico 3D contiene el ttulo del
grfico y la leyenda.
Utilizar la propiedad PlotArea para devolver un objeto PlotArea. El siguiente ejemplo coloca un borde discontinuo
alrededor del rea de grfico y un borde punteado alrededor del rea de trazado.
With myChart
.ChartArea.Border.LineStyle = xlDash
.PlotArea.Border.LineStyle = xlDot
End With

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

27

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Objeto Series
Representa una serie del grfico especificado. Objeto Series es un miembro de la coleccin SeriesCollection
Para devolver un solo objeto Series, utilizar SeriesCollection(index), donde index es el nombre o nmero de
ndice de la serie. En el siguiente ejemplo se establece el color interior de la serie uno del grfico.
myChart.SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
El nmero de ndice de la serie indica el orden en que las series se agregan al grfico. SeriesCollection(1) es la
primera serie que se agregan a la tabla, se agrega de la primera serie al grfico
y SeriesCollection(SeriesCollection.Count) es el ltimo agregado.
Objeto SeriesLine
Representa las lneas de serie del grupo de grficos especificado. Las lneas de serie conectan los valores de datos
de cada serie. Slo pueden tener lneas de serie los grupos de grficos de columnas o barras 2D apiladas. Este
objeto no es un conjunto. Ningn objeto representa una lnea de serie individual; las lneas de serie se activan o se
desactivan para todos los puntos de un grupo de grficos.
Utilizar la propiedad SeriesLines para devolver el objeto SeriesLines. En el siguiente ejemplo se agregan lneas
de serie al grupo de grficos uno del grfico. El grfico debe ser 2D de barras o columnas apiladas.
With myChart.ChartGroups(1)
.HasSeriesLines = True
.SeriesLines.Border.Color = RGB(0, 0, 255)
End With
Objeto Point
Representa un nico punto de una serie del grfico especificado. El objeto de punto es un miembro de la coleccin
Points, que contiene todos los puntos de la serie especificada.
Usar puntos(ndice), donde index es el nmero de ndice del punto, para devolver un solo objeto
de punto . Puntos se numeran de izquierda a derecha de la serie. Points(1) es el punto del extremo izquierdo y es
el punto del extremo izquierdo y Points(Points.Count) es el punto ms a la derecha. En el ejemplo siguiente se
establece el estilo del marcador para el tercer punto de la serie uno. Para que este ejemplo funcione, la serie uno
debe ser una lnea de 2D, dispersin o serie de radiales.
myChart.SeriesCollection(1).Points(3).MarkerStyle = xlDiamond
Objeto ChartTitle
Representa el ttulo del grfico especificado.
Usar la propiedad ChartTitle para devolver el objeto ChartTitle. El siguiente ejemplo agrega un ttulo al grfico.
With myChart
.HasTitle = True
.ChartTitle.Text = "February Sales"
End With
LECCION 13 Propiedades para el manejo de Grficos
Propiedad ChartType
Devuelve o establece el tipo de grfico. XlChartType de lectura y escritura.
XlChartType puede ser una de estas constantes XlChartType.
xl3DArea. rea 3D
xl3DAreaStacked. rea 3D apilada
xl3DAreaStacked100. rea 3D apilada
xl3DBarClustered. Barras 3D agrupadas

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

28

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
xl3DBarStacked. Barras 3D apiladas
xl3DBarStacked100. Barras 3D 100% apiladas
xl3DColumn. Columnas 3D
xl3DColumnClustered. Columnas 3D agrupadas
xl3DColumnStacked. Columnas 3D apiladas
xl3DColumnStacked100. Columnas 3D 100% apiladas
xl3DLine. Lneas 3D
xl3DPie. Circular 3D
xl3DPieExploded. Circular 3D seccionado
xlArea. rea
xlAreaStacked. rea apilada
xlAreaStacked100. rea apilada 100%
xlBarClustered. Barra agrupada
xlBarOfPie. Circular con subgrfico de barras
xlBarStacked. Barra apilada
xlBarStacked100. Barra apilada 100%
xlBubble. Burbuja
xlBubble3DEffect. Burbujas con efectos 3D
xlColumnClustered. Columna agrupada
xlColumnStacked. Columna apilada
xlColumnStacked100. Columna apilada 100%
xlConeBarClustered. Barra cnica agrupada
xlConeBarStacked. Barra cnica apilada
xlConeBarStacked100. Barra cnica apilada 100%
xlConeCol. Columna 3D cnica
xlConeColClustered. Columna cnica agrupada

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

29

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
xlConeColStacked. Columna cnica apilada
xlConeColStacked100. Columna cnica apilada 100%
xlCylinderBarStacked. Barra cilndrica apilada
xlCylinderCol. Columna 3D cilndrica
xlCylinderColStacked. Columna cilndrica apilada
xlCylinderBarClustered. Barra cilndrica agrupada
xlCylinderBarStacked100. Barra cilndrica apilada 100%
xlCylinderColClustered. Columna cilndrica agrupada
xlCylinderColStacked100. Columna cilndrica apilada 100%
xlDoughnut. Anillos
xlDoughnutExploded. Anillos seccionado
xlLineMarkers. Lneas con marcadores
xlLineMarkersStacked100. Lnea apilada 100% con marcadores
xlLineStacked100. Lnea apilada 100%
xlLine. Lnea
xlLineMarkersStacked. Lneas apilada con marcadores
xlLineStacked. Lnea apilada
xlPie. Circular
xlPieExploded. Circular seccionado
xlPieOfPie. Circular con subgrfico circular
xlPyramidBarClustered. Barra piramidal agrupada
xlPyramidBarStacked. Barra piramidal apilada
xlPyramidBarStacked100. Barra piramidal apilada 100%
xlPyramidCol. Columna piramidal 3D
xlPyramidColStacked. Columna piramidal apilada
xlPyramidColClustered. Columna piramidal agrupada

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

30

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
xlPyramidColStacked100. Columna piramidal apilada 100%
xlRadar. Radial
xlRadarFilled. Radial relleno
xlRadarMarkers. Radial con marcadores de datos
xlStockHLC. Mximos, mnimos, cierre
xlStockOHLC. Apertura, mximos, mnimos, cierre
xlStockVHLC. Volumen, mximos, mnimos, cierre
xlStockVOHLC. Volumen, apertura, mximos, mnimos, cierre
xlSurface. Superficie 3D
xlSurfaceTopView. Superficie (vista superior)
xlSurfaceTopViewWireframe. Superficie (estructura metlica vista superior)
xlSurfaceWireframe. Superficie 3-D (estructura metlica)
xlXYScatter. Dispersin
xlXYScatterLines. Dispersin con lneas
xlXYScatterLinesNoMarkers. Dispersin con lneas y sin marcadores de datos
xlXYScatterSmooth. Dispersin con lneas suavizadas
xlXYScatterSmoothNoMarkers. Dispersin con lneas suavizadas y sin marcadores de datos
expression.ChartType
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
En este ejemplo se establece el tamao de la burbuja del grupo de grficos uno en un 200% del tamao
predeterminado si el grfico es una burbuja 2D.
With myChart
If .ChartType = xlBubble Then
.ChartGroups(1).BubbleScale = 200
End If
End With
Propiedad Font
Devuelve una fuente de objeto que representa la fuente del objeto especificado. Objeto de fuente de
lectura/escritura solo para el objeto de la hoja de datos, para todos los dems objetos, objeto Font de slo lectura.
expression.Font
expresin Requerida. Una expresin que devuelve uno de los objetos arriba mencionados.
En este ejemplo se establece como cursiva y negrita de 14 puntos la fuente del ttulo del grfico.
With myChart.ChartTitle.Font

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

31

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
.Size = 14
.Bold = True
.Italic = True
End With
Propiedad ScaleType
Devuelve o establece el tipo de escala del eje de valor. Se aplica slo para el eje de valores.
XlScaleType de lectura y escritura.
XlScaleType puede ser una de estas constantes XlScaleType.
xlScaleLinear
xlScaleLogarithmic
expression.ScaleType
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

LECCION 14 Mtodos para el Manejo de Grficos


Mtodo Chart
Devuelve un objeto Chart que representa el grfico de Microsoft Graph.
Mtodo SeriesCollection
Devuelve un objeto que representa una sola serie o un conjunto de series del grfico o grupo de grficos.
expression.SeriesCollection(Index)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Index Variant opcional.El nombre o nmero de la serie.
En este ejemplo se activan las rtulos de datos en la serie uno.
myChart.SeriesCollection(1).HasDataLabels = True
Mtodo DataLabels
Devuelve un objeto que representa un nico rtulo de datos o un conjunto de rtulos de datos para la serie.
expression.DataLabels(Index)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Index Variant opcional.El nmero del rtulo de datos.
En este ejemplo se configuran los rtulos de datos de la serie uno para que muestren la leyenda, suponiendo que
sus valores estn visibles cuando se ejecute el ejemplo.
With myChart.SeriesCollection(1)
.HasDataLabels = True
With .DataLabels
.ShowLegendKey = True
.Type = xlValue
End With
End With

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

32

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
LECCION 15 Controles, Cuadros de Dilogo y Formularios
Los formularios en VBA no son ms que un cuadro de dilogo de Excel donde se puede colocar controles que
permitirn a solicitar informacin del usuario. Se puede colocar cajas de texto, etiquetas, cuadros combinados,
botones de comando, etc.
Los formularios de Excel son creados desde el Editor de Visual Basic. El editor de los formularios se muestra a
continuacin:

Los formularios se componen de controles, a continuacin se muestra un ejemplo.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

33

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

LECCION 16 Crear Formularios


Un formulario en VBA es un cuadro de dilogo donde se agregan diversos tipos de controles como botones de
comando, cajas de texto, casillas de verificacin, y otros controles ms que sern de utilidad para obtener
informacin de un usuario ya sea para procesarla y devolver algn resultado o simplemente almacenarla.
Los formularios permiten crear aplicaciones en Excel para extender el uso y funcionalidad de la herramienta y
aunque su uso est fuertemente relacionado con los usuarios avanzados de Excel, no es tan complicado utilizarlos.
Para agregar un nuevo formulario en la Pestaa Programador, seleccionar Visual Basic y se mostrar el editor de
VBA . Se realiza clic derecho sobre VBA Project y se selecciona la opcin Insertar > UserForm:

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

34

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
De inmediato el panel principal mostrar el formulario recin creado as como un pequeo cuadro de dilogo con el
ttulo Cuadro de herramientas el cual contiene los controles que se pueden agregar al formulario.

El Cuadro de herramientas tiene un botn para cada tipo de control como etiqueta, cuadro de texto, cuadro
combinado, cuadro de lista, casilla de verificacin, botn de opcin, etc. Para agregar un control al formulario es
necesario hacer clic en el botn correspondiente dentro del Cuadro de herramientas y posteriormente hacer clic
dentro del formulario. Otra manera de agregar un control al formulario es pulsar el botn del control y arrastrarlo
sobre el formulario.
LECCION 17 Agregar Controles a Formularios
Como ejemplo se agregar una etiqueta, un cuadro de texto, un cuadro de lista y un botn de comando de manera
que el formulario quede de la siguiente manera:

Para cambiar el texto de la etiqueta y del botn de comando se debe modificar la propiedad llamada Caption y eso
se realiza desde la ventana Propiedades. Si esta ventana no se muestra actualmente en el Editor de Visual Basic se
puede seleccionar desde el men Ver o tambin se puede hacer clic derecho sobre alguno de los controles y
seleccionar la opcin Propiedades lo cual mostrar la ventana:

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

35

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Al lado derecho de la propiedad se ingresa el valor de dicha propiedad para el control seleccionado. En la imagen
anterior se estn viendo las propiedades de la etiqueta llamada Label1 y por ejemplo se coloca el
texto Temperatura. Para hacer el cambio de esta propiedad para el botn de comando solo se debes seleccionar de
la lista desplegable que se encuentra en la parte superior de la misma ventana Propiedades. Al terminar el cambio
de la propiedad Caption se tendr el formulario de la siguiente manera:

En la imagen anterior se puedes notar que tambin se cambi en el ttulo del formulario y se puedes hacer
modificando tambin la propiedad Caption del formulario mismo.
LECCION 18 Programar eventos de controles en Formularios
Agregar opciones al cuadro de lista
Un ltimo cambio que se har a los controles es agregar los valores al cuadro de lista. Para el ejemplo solo se
necesitan los valores Celsius y Fahrenheit pero no existe una propiedad del control que permita hacerlo sino que se
debe utilizar cdigo VBA. Para especificar estas opciones se debe hacer doble clic sobre el formulario y seleccionar
el cdigo para el procedimiento Initialize donde colocaremos las instrucciones necesarias para agregar las opciones.
El procedimiento Initialice captura el evento de arranque del formulario cuando este se muestra:

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

36

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

La instruccin AddItem es la que permite agregar un nuevo elemento al cuadro de lista y la instruccin ListIndex
permite indicar el valor que estar seleccionado al cargarse el formulario y que ser la opcin Celsius ya que es la
primera opcin de la lista y por lo tanto tiene asociado el ndice cero.

Cdigo del botn de comando


Finalmente en el ejemplo se agrega cdigo VBA al botn de comando que ser el encargado de hacer la conversin,
solo se realiza doble clic sobre el botn para mostrar la ventana de cdigo asociada. El cdigo que se coloca en el
procedimiento Click es el siguiente:
Private Sub CommandButton1_Click()

'Validar que se ha especificado una temperatura


If TextBox1.Value = "" Then
MsgBox "Debe especificar una temperatura"
Exit Sub
End If

'Si es Celsius convertir a Fahrenheit


If ComboBox1.ListIndex = 0 Then
temperatura = TextBox1.Value * 1.8 + 32
MsgBox temperatura & " Fahrenheit"
'Si es Fahrenheit convertir a Celsius
Else
temperatura = (TextBox1.Value - 32) * 5 / 9
MsgBox temperatura & " Celsius"
End If

End Sub

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

37

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
La primera validacin dentro del cdigo verifica que el cuadro de texto no est vaco en cuyo caso desplegar un
mensaje solicitando ingresar una temperatura y posteriormente sale de la subrutina. La segunda validacin es para
saber si el cuadro de lista tiene seleccionada la opcin Celsius y por lo tanto hacer la conversin a Fahrenheit para
mostrar el resultado. Por el contrario, si el cuadro de lista tiene seleccionada la opcin Fahrenheit se har la
conversin a Celsius. Para probar el funcionamiento del formulario es suficiente con pulsar el botn Ejecutar que se
encuentra en la barra de herramientas Estndar:

Una vez terminada la construccin del formulario y el cdigo necesario para su funcionamiento, se debe dar un
paso adicional para llamar el formulario desde una hoja de Excel.
Cargar formulario desde una hoja de Excel
Para cargar un formulario desde una hoja de Excel ser suficiente con agregar un botn de comando ActiveX desde
la ficha Programador:

Al hacer doble clic sobre el botn se mostrar el cdigo asociado al evento Click del botn y se debe colocar una
sola instruccin:

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

38

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Con esto ser suficiente para que al momento de pulsar el botn de la hoja de Excel se muestre el formulario
VBA recin creado y se pueda realizar la conversin de temperaturas.
LECCION 19 Novedades en Aplicaciones para Office en Excel 2013 : Nuevas funciones de hoja de
clculo, Anlisis Rpido, Disponibilidad de nuevos orgenes de datos, Uso de los modelo OM, Creacin
de grficos dinmicos y tablas dinmicas de forma independiente, Interfaz de un nico documento, Las
animaciones de encendido y apagado mediante programacin, Escala de tiempo
Si se desarrolla soluciones de libro personalizadas, se pueden usar las siguientes mejoras de programabilidad y
caractersticas en Microsoft Excel 2013
Aplicaciones para Office en Excel
Microsoft Excel 2013 aporta la web a Excel. Nuevas aplicaciones para Office ofrecen una gran cantidad de nuevos
escenarios y soluciones en un entorno de fcil de usar para el desarrollo de aplicaciones web dinmicas. Esto
significa que ahora se pueden usar populares lenguajes dinmicos (por ejemplo, Python, PHP, Perl y JavaScript) y
las herramientas de desarrollo de web (por ejemplo, Microsoft Visual Studio 2012) para el desarrollo de
aplicaciones. El desarrollo de Web tambin permite usar las comunidades de Desarrollador global y la disponibilidad
de varios ejemplos de cdigo, frameworks y bibliotecas, que amplan la utilizacin de la aplicacin para los
diferentes escenarios. Se pueden crear dos tipos de aplicaciones para Office en Excel, aplicaciones de contenido y
aplicaciones del panel de tareas.
Aplicaciones de Contenido para Office integran las caractersticas basadas en web como contenido que se
puede mostrar en conjunto con el documento. Aplicaciones de contenido para Office permiten integrar
visualizaciones de datos basada en web; escenarios de multimedia incrustados, como la integracin de un
reproductor de vdeo de YouTube o una galera de imgenes as como otras funciones de contenido externos. La
siguiente figura muestra una implementacin de una aplicacin de contenido en Excel 2013.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

39

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Applicaciones del panel de tareas para Office permite trabajar en-paralelo con un documento de Office y dejar que
los profesionales desarrolladores de Office proporcionen informacin contextual y funcionalidad para mejorar la
visualizacin y experiencia de creacin de documentos. Por ejemplo, una aplicacin de panel de tareas para Office
puede buscar y recuperar informacin sobre el producto desde un servicio web basado en el nombre del producto o
nmero de parte segn una seleccin del usuario en el documento. En la siguiente figura, se muestra un ejemplo.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

40

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Nuevas funciones de hoja de clculo


Microsoft Excel 2013 agrega cincuenta nuevas funciones de hoja de clculo para la compatibilidad con el formato
de documento abierto (ODF 1.2).
Y, ahora se pueden usar las funciones de servicio de web (en la categora de las funciones de Web ) para acceder
a los servicios de Web de REST de forma annima. De especial atencin es la funcin FILTERXML, que permite
utilizar expresiones XPath para filtrar el XML devuelto por una llamada a funcin WEBSERVICE.
Anlisis rpido
Anlisis rpido, tal como se muestra en la siguiente figura, es una nueva herramienta de la interfaz de usuario
contextual que permite el acceso con un solo clic a las caractersticas de anlisis de datos, como las frmulas,
formato condicional, minigrficos, tablas, grficos y tablas dinmicas. Se puede habilitar y deshabilitar la
presentacin de la nueva caracterstica de anlisis rpido en Excel 2013 mediante programacin utilizando los
mtodos Show y Hide del objeto QuickAnalysis .

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

41

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS

Disponibilidad de nuevos orgenes de datos


Se puede conectar a un conjunto de nuevos orgenes de datos compatibles con PowerPivot, incluyendo OData
fuentes, Azure, fuentes de datos de SharePoint y los proveedores de OLE DB adicionales. Los nuevos
objetos DataFeedConnection, ModelConnection, TextConnection y WorksheetDataConnection contienen
datos y la funcionalidad necesaria para conectarse a orgenes de datos nuevos.
Uso de los modelos OM
Un nuevo modelo de objetos de DataModel (una adicin al existente de Visual Basic para el modelo de objetos de
aplicaciones) permite cargar y actualizar los orgenes de datos mediante programacin. Esta extensin para el
modelo de PowerPivot introducida en Excel 2010 permite integrar orgenes de datos adicionales y la capacidad de
combinar datos de varios orgenes de datos mediante programacin. Los nuevos objetos en este modelo incluyen
Model, ModelChanges, ModelRelationship y objetos de ModelTable.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

42

Manual CURSO EXCEL 2013


y PROGRAMACIN (VBA) y MACROS
Creacin de grficos dinmicos y tablas dinmicas de forma independiente
Se puede usar la separacin de grficos dinmicos de las tablas dinmicas en Excel 2013. Grficos dinmicos y
tablas dinmicas basadas en un origen de datos OLAP o PowerPivot pueden estar desconectadas y se puede crear
un grfico dinmico independientemente de cualquier tabla dinmica, y se puede navegar a travs de datos
mediante el uso de la experiencia de un solo grfico dinmico. Esto es en contraste con el paradigma actual que se
crea un grfico dinmico como un complemento a una tabla dinmica. Esta funcin disociar est representada en
Excel 2013 cliente y servicios de Microsoft Excel.
Interfaz de un nico documento
El cambio a una interfaz de documento nico (SDI Single Document Interface) en Excel 2013 repercute en
programacin. SDI significa que cada libro tendr su propia ventana de nivel superior de la aplicacin y tendr su
propia cinta correspondiente. Todos los mtodos de la ventana de nivel de la aplicacin existente, eventos y
propiedades no se ven afectadas por este cambio. Todos los mtodos existentes de la ventana de nivel de libro ,
propiedades y eventos ahora funcionan en la ventana de nivel superior para ese libro.
Las animaciones de encendido y apagado mediante programacin
Se puede usar la propiedad EnableMacroAnimations nueva en el objeto Application para alternar la
visualizacin de las animaciones. Las animaciones estn deshabilitadas de forma predeterminada durante la
ejecucin de la macro. Para habilitar la animacin, se agrega Application.EnableMacroAnimations = True al
principio de la macro. Para permitir que Excel muestre animaciones durante la ejecucin de la macro, se debe
asegurar esta configuracin para cada macro.
Escala de tiempo
Excel 2013 incluye un nuevo control de escala de tiempo para filtrar datos modelados. La escala de tiempo ofrece
una manera visual para ver y cambiar un intervalo de fechas y filtros para ser utilizados en objetos dinmicos,
como las tablas dinmicas y grficos dinmicos. Las escalas de tiempo estn relacionadas con las segmentaciones
de datos y permiten ampliar los miembros del modelo de objetos relacionados con la segmentacin de datos
existente. Adems, se introdujeron dos nuevos objetos especfico de la escala de tiempo: los
objetos TimelineState y TimelineViewState .
Conclusin
Excel 2013 ofrece una gran cantidad de nuevas caractersticas para programadores. Las Aplicaciones de Office
proporcionan una oportunidad para que los programadores integren caractersticas de aplicaciones web en Excel
2013, ya sea como contenido que se puede mostrar en conjunto con la hoja de clculo, o en-paralelo con la hoja
de clculo. Otras caractersticas nuevas es la extensin del modelo de objetos VBA Excel 2013 incluyendo anlisis
rpido, la escala de tiempo, un nuevo modelo de objetos, la disponibilidad de nuevos orgenes de datos y la
capacidad de crear grficos dinmicos y tablas dinmicas de forma independiente entre s. Adems, existen nuevas
funciones de hoja de clculo y la capacidad para usar las funciones de servicio de Web para acceder a los servicios
web REST de forma annima.

Todos los derechos reservados, prohibida la reproduccin, Instituto Gala de Venezuela

43