Sei sulla pagina 1di 74

QU ES VISUAL BASIC PARA

APLICACIONES
Visual Basic para Aplicaciones (VBA) es el
lenguaje de programacin que Microsoft
incorpora en sus productos de Office, e incluso
algunas otras marcas que no son de Microsoft
han incorporado este lenguaje en sus
aplicaciones. Una gran ventaja de conocer y
manejar VBA es que nos permite manipular
otros programas con el mismo lenguaje
gracias a su modelo de manejo de objetos.
DEFINICIONES
Es necesario conocer algunas definiciones de los
objetos que vamos a estar trabajando para poder
establecer las bases del lenguaje tcnico que
estaremos usando.
Mdulo: los mdulos de Visual Basic para
Aplicaciones son el lugar donde se escriben los
cdigos para el desarrollo de las macros, se guardan
dentro del libro de Microsoft Excel 2016, y stos se
editan o crean dentro del Editor de Visual Basic.
Cdigos: son secuencias de instrucciones que se
desarrollan dentro de los mdulos de Visual
Procedimiento: es una rutina que se elabora a base de
cdigo en un mdulo que realiza ciertas acciones. Hay
dos tipos de procedimientos: Sub procedimientos y
Function procedimientos.
COSAS PARA TOMAR EN
CUENTA DE LOS OBJETOS
Como cada elemento de Excel es un objeto, y
Visual Basic para Aplicaciones es una aplicacin
orientada a objetos, es bueno considerar los
siguientes puntos:
Los objetos tienen propiedades y mtodos
nicos, sin embargo hay algunos que
comparten algunas propiedades y mtodos.

Las propiedades son datos del objeto que


podemos tomar para hacer algunas decisiones
y los mtodos son acciones que se ejecutan en un
objeto.
EDITOR DE VISUAL BASIC
El Editor de Visual Basic es donde se
desarrollan las macros, y es una aplicacin
que est pegada con Microsoft Excel 2016, es
decir no se puede ejecutar el Editor de Visual
Basic si no se est ejecutando Excel. Cuando
necesitamos el Editor, oprimimos las teclas
[Alt] + [F11].
FICHA DESARROLLADOR
Otra forma de acceder al Editor de Visual
Basic es desde la ficha de Desarrollador>
Cdigo> Visual Basic. Si la ficha de
Desarrollador no est activada, se puede
activar en la ficha Archivo> Opciones>
Personalizar> Cinta de opciones, y en el
cuadro derecho donde dice Fichas principales,
activar Desarrollador.
GRABAR UNA MACRO
Grabar una macro puede ser el primer paso
para comprender cmo funcionan las macros,
ya que cuando se ejecuta este comando,
Microsoft Excel 2016 genera el cdigo por
nosotros, y esto es invaluable ya que podemos
revisar cada parte de nuestro cdigo para
entender cmo se empieza a programar. Cada
vez que vaya teniendo experiencia en la
programacin, ir dejando la prctica de
grabar macros. Cuando vaya a grabar una
macro tenga en cuenta esto:
EJECUTAR UNA MACRO
Hay varias maneras de ejecutar una macro:
Ficha Desarrollador> Cdigo> Macros
Si asign una tecla de acceso rpido a la
macro tecla [Ctrl] + la tecla correspondiente.
Con un clic a un botn, una forma o una
imagen que se le haya asignado la macro.
Desde un icono en la Cinta.
EL LENGUAJE DE
PROGRAMACIN
El lenguaje de programacin es Visual Basic
para Aplicaciones y es necesario conocer
ciertos elementos para el mejor y completo
entendimiento de ste. El lenguaje de
programacin est desarrollado con base en
instrucciones que necesitamos saber utilizar,
as como conocer su sintaxis.
ALGUNOS ELEMENTOS DEL
LENGUAJE
Los procedimientos Sub y Function pueden
tener o no los elementos listados a
continuacin. Estos elementos son algunos de
los que puede tener la estructura de una
macro, pero son los ms comunes que nos
podemos encontrar en las macros.
PROCEDIMIENTOS SUB
Los procedimientos Sub son una serie de
instrucciones. Con estos procedimientos Sub
iniciamos una macro y la terminamos con End
Sub. stos se desarrollan en los mdulos dentro
del Editor de Visual Basic. Los mdulos pueden
contener cualquier nmero de procedimientos. La
sintaxis de los procedimientos Sub es:
[Private / Public] [Static] Sub nombre
[(listaargumentos)]
[Instrucciones] [Exit sub] [Instrucciones]
End Sub
COMENTARIOS
Los comentarios son una poderosa
herramienta para documentar nuestras
macros. Estos comentarios se definen con un
apstrofe (') al inicio del rengln donde se va a
agregar el comentario. Los comentarios
tambin se pueden usar al final de una
instruccin. Cada vez que Visual Basic para
Aplicaciones encuentra un apstrofe, ignora lo
que hay despus de ste. Por ejemplo, la
primera lnea de la macro es un comentario:
VARIABLES
As como Excel utiliza miles de variables
(celdas) para manejar la informacin, Visual
Basic para Aplicaciones tambin puede tener
sus propias variables para el manejo de los
datos. Una variable es un pedazo de memoria
reservada para que nosotros pongamos cierta
informacin ah; son como cajones en un
enorme archivero, muy similar a la hoja de
clculo. La diferencia radica en que cada vez
que se necesite una variable en Visual Basic
para Aplicaciones, hay que darle un nombre y
un tipo.
NOMBRES DE VARIABLES
Cuando comenzamos con la programacin, es
muy probable que empecemos a definir
variables sin ningn tipo de orden. Al principio
esto puede que nos funcione, pero a la larga
nos va a causar dolores de cabeza; es mejor
tener en claro cmo definir nuestros nombres
de variables desde el inicio para que se haga
un buen hbito.
TIPOS DE VARIABLES
La definicin de variables es muy til por
algunas razones, entre ellas: prevenimos
errores de asignacin de datos, es decir, esto
nos sirve como validacin para que nuestra
informacin sea confiable, ya que, si definimos
una variable tipa numrica, no va aceptar que
le demos informacin tipo texto.
Ver tabla de tipos de variable en el libro
DECLARAR VARIABLES EN
UNA MACRO
La declaracin de variables tiene que ser parte
del hbito de un buen programador, ya que
forzarnos a hacer la declaracin de las
variables nos permite tener mayor control
sobre programas complejos y largos que
desarrollemos.
CAMBIAR EL FLUJO DE UNA
MACRO
El flujo del programa siempre se hace de
arriba abajo, pero eso es un flujo de programa
lineal, y no es muy efectivo; los programas que
no permiten brincar lneas de cdigo o tomar
decisiones a partir de ciertas condiciones, no
son programas tiles, porque, aunque un
programa siempre hace lo mismo, debemos
poder tomar cierto tipo de decisiones sobre la
ejecucin de la macro.
LA INSTRUCCIN IF - THEN
Esta instruccin nicamente realiza una sola de las
opciones, cuya sintaxis se escribe a continuacin:
If condicin Then
Instrucciones a realizar si la condicin es verdadera
[ElseIf]
[Instrucciones a realizar si la condicin es verdadera
en
este nuevo If]
[Else]
[Instrucciones a realizar si la condicin es falsa]
End If
LA INSTRUCCIN SELECT
CASE END SELECT
Esta instruccin es ms sencilla de utilizar cuando se
trata de tomar varias decisiones (alternativa para el If-
Then). Su sintaxis es:
Select Case variable
Case comparacin1
Cdigo a realizar si se cumple la comparacin 1
[Case comparacin2]
[Cdigo a ejecutar si se cumple la comparacin 2]
[Case Else]
[Cdigo a realizar si ninguna comparacin se cumple]
End Select
CICLOS
Los ciclos repiten una parte de
nuestra macro tantas veces como
le indiquemos. Visual Basic para
Aplicaciones tiene diferentes
instrucciones para crear ciclos y
cada una de ellas tiene sus
propias caractersticas.
CICLO FOR NEXT
Este ciclo es sumamente sencillo ya que tiene
un contador interno; la sintaxis es:
For nombrecon = numinicial To numfinal [Step
incremento]
[Instrucciones] [Exit For] [Instrucciones]
Next nombrecon
CICLO FOR EACH NEXT
CON COLECCIONES
Trabaja con todos los objetos de una
coleccin, esta forma de trabajar es muy
eficiente porque evitamos tener que usar
contadores o propiedades de los objetos. La
sintaxis es:
For Each elemento In Colleccion
[instrucciones] [Esit For] [instrucciones]
Next Element
CICLO DO WHILE
Este ciclo dura mientras una condicin sea
verdadera, y termina cuando sta cambie a
falsa. Este ciclo no tiene ningn contador
interno. Sintaxis:
Do [While condicion]
[Instrucciones] [Exit Do] [Instrucciones] Loop
INTERACCIN CON EL
USUARIO
Una de las cosas que considero ms
importantes en el desarrollo de aplicaciones en
Visual Basic para Aplicaciones, es la
interaccin con el usuario para solicitarle cierta
informacin mientras nuestra aplicacin se
est ejecutando. La interaccin con el usuario
es una de las prcticas ms comunes que los
programas hacen cuando nos muestra un
cuadro de dilogo para decidir, por ejemplo, el
nmero de copias de impresin o el tamao de
la hoja a imprimir, opciones que estn dentro
del cuadro de dilogo Imprimir.
MTODO INPUTBOX
Esta instruccin le pregunta al usuario por un nico dato.
La sintaxis de InputBox es:
InputBox(Texto [,Titulo] [,Default] [,Izquierda]
[,Arriba] [,ArchivoAyuda, IndiceArchivoAyuda] [,Tipo])
Texto: es el mensaje que se muestra en el cuadro de dilogo.
Ttulo: es un texto que aparece como nombre del cuadro de dilogo.
Default: es un dato definido que se muestra en el cuadro de dilogo; si el usuario no
escribe nada y slo oprime Enter, este valor es el que se devuelve.
Arriba e Izquierda: valores de las coordenadas de la parte superior izquierda de la
ventana; si se omiten. el cuadro de dilogo aparecer centrado en la pantalla.
ArchivoAyuda y IndiceArchivoAyuda: este parmetro es para solicitar ayuda del cuadro
de dilogo, claro, si est desarrollada la ayuda y en un archivo.
Tipo: un valor que representa a un cdigo para ver el tipo de dato que se pide ingresar
en el cuadro de dilogo. Si se omite el cuadro de dilogo devolver un dato tipo String
(texto), aunque se haya escrito un nmero. En la tabla 3.1 encontrar una lista de
cdigos vlidos.
FUNCIN MSGBOX
Esta funcin se emplea mucho para dar
mensajes al usuario, como se ha visto
anteriormente. Asimismo esta funcin se
puede usar para enviar el resultado a una
variable y trabajar con l. La sintaxis es:
MsgBox (texto [,botones] [,titulo] [,archayuda
,contexto])
Texto: mensaje que aparece en el cuadro de
dilogo.
CUADROS
PERSONALIZADOS
Los cuadros personalizados son mucho ms
amigables y se crean con relativa facilidad
dndole una nueva vista a nuestras macros,
adems que nos incluyen nuevas habilidades para
solicitar informacin. Estos cuadros se crean en
las formas del usuario (UserForms).
Cuando se requiera una forma de usuario, desde
el Editor de Visual Basic para Aplicaciones
activamos el men de Insertar> UserForm. Cada
forma de usuario contiene un cuadro de dilogo
personalizado, y un libro puede contener cualquier
nmero de formas de usuario.
CONTROLES DE CUADROS
PERSONALIZADOS
Una vez que tenemos el rea de trabajo o
contenedor para crear nuestro cuadro de dilogo,
vamos a comenzar a agregar controles. Visual
Basic para Aplicaciones cuenta con diversos
controles para el manejo de los cuadros
personalizados, los cuales se pueden observar en
la figura 3-3, y si en su Editor de Visual Basic para
Aplicaciones no aparecen, puede activarlos en el
men Ver> Cuadro de herramientas.
Seleccionar: esta herramienta permite seleccionar
uno o varios objetos para trabajarlos y cambiarles
sus propiedades.
Mostrar una forma
personalizada
UserForm#.Show
Donde # es el nmero de la forma que se
quiere mostrar.
Cerrar una forma
Unload UserForm#
Donde UserForm# es el nombre de la forma
que se quiere cerrar y descargar de memoria.
Ocultar una forma
UserForm#.Hide
Donde # es el nmero de la forma que se
quiere ocultar.
PROPIEDADES DE LOS
CONTROLES
La ventana de Propiedades que se encuentra debajo de la
ventana de Proyectos, nos muestra todas las propiedades
del objeto seleccionado en forma de lista. Esto es una
manera muy sencilla de cambiar sus propiedades. La
ventana de Propiedades tiene dos fichas, Alfabtica y Por
categoras. La primera ficha muestra todas las propiedades
del objeto seleccionado en orden alfabtico, mientras que la
segunda agrupa las propiedades por categoras. Las dos
fichas muestran las mismas propiedades ordenadas de
diferente manera. Vase la figura 3-4.
Las propiedades se pueden cambiar desde el diseo de la
forma cuando se desarrolla la forma dentro de la ventana
de Propiedades, o tambin cuando se est ejecutando una
macro a travs de instrucciones de Visual Basic para
Aplicaciones, nos permiten cambiar las propiedades de los
controles de la forma.
TRABAJAR CON RANGOS
Los rangos son propiedades del objeto
Worksheet, as que tenemos que hacer
referencia a la propiedad y al mtodo. Si se
quiere asignar un valor a un rango, utilizamos
el mtodo Value:
WorkSheet(Hoja1).Range(A1).Value = 43.5
Si el rango est en la hoja seleccionada,
podemos utilizar slo la propiedad:
Range(A1:J20).Value = 43.5
TRABAJO CON ERRORES
Existen dos tipos de errores: los errores de sintaxis y los
errores de lgica.
Errores de sintaxis: stos suceden cuando se est
escribiendo el programa y Visual Basic para Aplicaciones
detecta que la sintaxis de alguna instruccin no es correcta
y nos avisa de ello. Estos errores deben de estar
completamente arreglados para que la aplicacin se pueda
ejecutar.
Errores de lgica: cuando estos errores ocurren la macro es
detenida por Visual Basic, que muestra un cuadro de
dilogo con el nmero y la descripcin del error. Estos
mensajes son muy tcnicos y no es bueno que el usuario
se enfrente con este tipo de cuadros de dilogo, de manera
que es nuestro deber como Desarrolladores interceptarlos y
cambiarlos por algo ms manejable para el usuario.
Interceptar un error, usaremos
la instruccin:
On Error
Una vez establecida la instruccin tenemos
dos opciones:
Ignorar el error y continuar: usando el cdigo:
On Error Resume Next
Brincar a otra parte de nuestro cdigo,
siguiendo el cdigo: On Error GoTo
TomarAcciones
EJECUTAR UNA MACRO
PASO A PASO
Una de las mejores formas de depurar una
macro es ejecutarla paso a paso para ver qu
est pasando con nuestro flujo, revisar los
valores de las variables y poder tomar
acciones para corregir los errores de lgica
detectados sobre la marcha.
Una vez que por cualquier medio se haya
ejecutado la macro paso a paso, se tiene que
oprimir la tecla [F8] cada vez que se quiera
ejecutar una lnea de cdigo.
VISUALIZAR VARIABLES
Tenemos que ubicar el cursor antes,
despus, en cualquier parte de la
variable o seleccionar la variable que
se quiera inspeccionar, en el men
Depuracin> Agregar inspeccin, o
con el botn derecho del mouse
sobre la variable y en el men
contextual Agregar inspeccin.
EVENTOS
Los eventos son una forma poderosa de
ejecutar automticamente procedimientos a
travs de acciones cotidianas como cambiar a
una hoja en particular o abrir un archivo.
Hemos visto algunos eventos en este libro,
como por ejemplo en las formas
personalizadas que desarrollamos.
EVENTOS DE LIBRO
Estos eventos se activan en un libro en
particular y se tienen que desarrollar a nivel
aplicacin y ubicar dentro del mdulo de
cdigo del objeto ThisWorkbook, ya que es el
nico lugar donde trabajarn.
Existen 40 eventos de libro que puede
consultar en la ayuda de Excel, aqu vamos a
ver algunos de estos eventos.
Evento abrir
(Workbook_Open)
ste es uno de los eventos ms comunes que
se usan a la hora de programar, ya que se
ejecutan cuando un libro es abierto y ejecuta el
evento llamado Workbook_Open. El archivo
Eventos libro.xlsm, tiene el ejemplo de este
evento.
Evento antes de cerrar
(Workbook_BeforeClose)
Este evento se ejecuta antes de que el libro
sea cerrado y muchas veces trabaja en
conjunto con el evento anterior
(Workbook_Open) ya que puede ser que
cuando el libro se abri, se hayan declarado
ciertos mens contextuales que slo queremos
que estn disponibles en nuestro libro, este
evento puede eliminarlos antes de cerrar el
libro.
Evento antes de guardar
(Workbook_BeforeSave)
La siguiente rutina nos manda un recordatorio
de que se tiene que respaldar el archivo dentro
del servidor cuando grabamos el archivo.
EVENTOS DE HOJA
Este tipo de eventos son los ms usados
dentro de toda la variedad de eventos que hay,
ya que la mayora de las cosas pasan dentro
de una hoja de clculo. Con estos eventos se
pueden hacer cosas que de otra manera sera
imposible hacer. El cdigo para estos eventos
se debe hacer dentro del mdulo de la hoja,
dndole doble clic (dentro de la ventana de
proyectos de Visual Basic para Aplicaciones) al
nombre de la hoja que se va a trabajar.
Evento activar hoja
(Worksheet_Activate)
Este evento es ejecutado cuando la hoja
(donde se desarroll el cdigo) es
seleccionada, el siguiente ejemplo nos
muestra un mensaje cuando la Hoja1 es
seleccionada y puede ver este ejemplo en el
archivo Eventos Hoja.xlsm, en el mdulo de
cdigo de la Hoja1.
Evento cambiar
hoja(Worksheet_Change)
Este evento monitorea toda la hoja de clculo
para determinar si existe algn cambio dentro
de ella. Estos cambios no aplican cuando se
recalculan frmulas, se agregan o eliminan
objetos a la hoja. El siguiente ejemplo nos
muestra un mensaje cuando existe un cambio
en la Hoja2 y puede ver este ejemplo en el
archivo Eventos Hoja.xlsm, en el mdulo de
cdigo de la Hoja2.
Evento cambiar
seleccion(Worksheet_SelectionC
hange)
Este evento es ejecutado cuando el usuario
define un rango para trabajar con l, el
parmetro Range es el rango definido, un
ejemplo de cmo trabajar este evento es el
siguiente:
EVENTOS DE GRFICAS
Los eventos de las grficas aplican a las
grficas que se encuentran en una hoja
independiente y no estn incrustadas dentro
de una hoja de clculo, ya que las hojas de los
grficos crean su mdulo de cdigo y las
grficas incrustadas no.
Evento activar grfica
(Chart_Activate)

Este evento ocurre cuando seleccionamos una hoja de


grfica, veamos el siguiente cdigo que puede encontrar
en el archivo Eventos Graficas.xlsm, que contiene una hoja
con datos (Hoja1) y la hoja que contiene la grfica
(Grfica1).
OTROS EVENTOS
Estos eventos no tienen relacin con ningn
objeto, y a diferencia de los dems eventos,
stos se programan en un mdulo de cdigo
general. Estos eventos se acceden usando
mtodos de aplicacin del objeto. Y tenemos
dos eventos: OnKey y OnTime.
Evento OnKey
Este tipo de eventos nos permiten definir y
redefinir las teclas o combinaciones de teclas
para que Excel ejecute alguna accin. Si se
define alguna tecla que ya est definida por
Excel, sta dejar de funcionar como
normalmente lo hace para ejecutar las
acciones definidas por este evento.
Es importante resaltar que este evento que
usa el mtodo OnKey para asignar eventos a
las teclas, va ms all del libro que donde se
ejecut, es decir, funcionar para todos los
libros abiertos.
Evento OnTime
Este evento se ejecuta en alguna hora en
especfico o en algn da en particular. La sintaxis
del evento OnTime de la aplicacin es:
Application.OnTime tiempo, Macro[,
TiempoFinal][, Estado]
Tiempo: la hora donde se quiere ejecutar el
proceso.
Macro: el procedimiento que se va a ejecutar.
TiempoFinal: hora donde ya no se ejecutar el
procedimiento. Excel debe de estar disponible
para ejecutar este parmetro, si no lo ignorar.
OBJETO RANGE
Hasta ahora hemos usado el objeto Range
para trabajar con valores de las celdas de la
hoja de clculo, pero veremos que dentro de
sus muchos mtodos (casi 80) encontramos:
seleccin de rangos de forma dinmica,
realizar ordenaciones de informacin, usar el
pegado especial y filtros avanzados entre otras
muchas.
FILTRO AVANZADO OBJETO
RANGE
La sintaxis del filtro avanzado usando el objeto RANGE es:
Rango.AdvancedFilter Accin, Criterios, CopiarA, Unico
Esto aplicado quedara:
Range(A1:D100).AdvancedFilter xlFilterCopy,
range("G1:J2"), Range("G10:J10")
Donde Range(A1:D100) corresponde a Rango. El
parmetro xlFilterCopy es Accin, el parmetro de los
criterios es Range(G1:J2) y el ltimo parmetro
corresponde a donde se ca a copiar la informacin. La
sintaxis se puede desarrollar de siguiente manera:
Range(A1:D100).AdvancedFilter
CriteriaRange:=Range("G1:J2"), Action:=xlFilterCopy,
CopyToRange:=Range("G10:J10")
FRMULAS OBJETO RANGE
Habra ocaciones en las cuales deba de enviar
una frmula a la hoja de clculo como lo
hemos hecho anteriormente es a travs del
objeto WorksheetFunction para dejar usar una
funcin de Excel. Pero cunado queremos
envar una frmula definida por nosotros o una
funcin de Excel a la hoja de clculo, usamos
la porpiedad Formula, el siguiente ejemplo
ingresa la funcin Suma en la celda A10 de la
hoja Formula:
Range("A10").Formula = "=Sum(A2:A9)"
ARREGLOS
Los arreglos o tambin conocidos como
matrices, son variables especiales que nos
permiten almacenar ms de un dato y este
conjunto de datos comparten un nombre en
comn, imagine que tiene una cuadrcula de
Excel en memoria y que puede acceder a ella
desde la macro sin tener que interactuar con la
hoja de clculo.
ARREGLOS
DIMENSIONALES
Los arreglos dimensionales constan de solo una
columna y se manejan a travs de un solo ndice,
es decir, se tiene solo una columna para trabajar.
Al igual que todas las variables, los arreglos
necesitan definirse para poder trabajar con ellos y
que la velocidad de la ejecucin de la macro no se
vea comprometida. Para definir un arreglo:
Dim NombreArreglo()
El NombreArreglo va a ser el nombre que se le de
al arreglo y los parntesis al final, le indican que
es un arreglo el que se esta definiendo. Si por
ejemplo definimos:
Option Base 1
Esta opcin se debe de poner antes de que la
macro se ejecute, es decir, hasta arriba del
mdulo en la seccin de declaraciones, antes
del primer procedimiento Sub.
Otra forma de declarar los arreglos es
indicando cuntos elementos va a tener y esto
har que ya no se requiera de la opcin Option
Base 1.
ARREGLOS
MULTIDIMENSIONALES
Estos arreglos se usan cuando un arreglo
bidimensional no se ajusta a los
requerimientos de nuestro trabajo y hay que
manejar ms elementos, por ejemplo,
empleados y departamentos. En estos casos
tenemos que manejar columnas y renglones
para poder resolver este tema.
Para declarar un arreglo con renglones y
columnas, se agrega otro parmetro:
Dim NombreArreglo(Inicio To Final[, Inicio To
Final]) [As Tipo]
ARREGLOS DINAMICOS
En ms de una ocasin va a necesitar declarar
arreglos dinmicos por diferentes causas, pero
este concepto es debido a que cuando
declaramos el arreglo no sabemos las
dimensiones que va a tener, podemos declarar
un arreglo pensando en un nmero grande que
vaya a ser suficiente para contener toda la
posible informacin pero esto tiene sus
detalles como que puede caber la posibilidad
de que la informacin aun as no quepa o por
el otro lado, que el arreglo sea demasiado
grande y usemos recursos de mas.
DEFINIR ARREGLO
DINMICO
Dim Arreglo()
Se puede definir un tipo de datos aunque no
es necesario. Si no se define el tipo de datos,
el arreglo queda como un arreglo tipo Variant,
que significa que puede aceptar cualquier valor
incluso otro arreglo.
MENUS CONTEXTUALES
Los mens contextuales son la forma rpida
de acceder a nuestros comandos dando clic
derecho con el mouse en alguna parte de
Excel. Estos mens son muy usados, ya que
nos ahorran la tarea de mover el apuntador del
ratn a una etiqueta y buscar ah el comando
que estamos solicitando.
TRABAJO CON MENS
CONTEXTUALES
Para los mens contextuales, el objeto
CommandBar es la solucin.
Controles dentro del objeto CommandBar
Los controles vienen siendo botones o mens.
A estos controles se les puede llamar a travs
de las propiedades de Index o Caption. El
siguiente ejemplo muestra un elemento (el
primero) del men contextual que aparece
cuando damos clic en el botn izquierdo del
ratn sobre la columna.
TIPOS DEL COMMANDBAR
Los tipos que soporta el objeto CommandBar
dentro de Microsoft Excel 2013, y que se
pueden ubicar a travs de su propiedad Type,
son:
Barra de herramientas, que es el tipo 0 (cero).
La barra de mens, siendo ste el tipo 1.
Los mens contextuales que son el tipo 2.
AGREGAR UN MEN A UN
MEN CONTEXTUAL
Para agregar un men a un men contextual
se requiere del uso del mtodo Add del objeto
CommandBars.Controls, que primero se
asigna a una variable y despus se agrega el
texto y la accin que va a realizar el men, que
para este ejemplo ser nicamente dar
formato como porcentaje a las celdas
seleccionadas.
ACTIVAR/DESACTIVAR
Los mens contextuales se pueden desactivar
de un men contextual a travs de propiedad
Enabled y as controlar que no se vea el men
contextual, vea el siguiente cdigo:
Application.CommandBars("Cell").Enabled =
False
Con el cdigo anterior, al dar clic con el botn
derecho sobre cualquier celda, no aparecer
ningn men contextual, para activarlo de
nuevo, cambie su propiedad Enabled a True.
RESTAURAR
Podemos restaurar un men contextual a su
estado original con la siguiente instruccin:
CommandBars("Cell").Reset
El mtodo Reset tambin habilita elementos
desactivados, pero si el men est
completamente desactivado, este comando no
lo puede volver a activar.
LA CINTA
A travs de Visual Basic para Aplicaciones no
es posible manipular la cinta debido a su
nueva arquitectura de diseo.
El cdigo de RibbonX es un lenguaje XML
(Extensible Markup Language) que trae todos
los controles para que Visual Basic para
Aplicaciones los interprete y sepa cmo son,
qu pasa cuando se activan y en qu parte de
la cinta van a estar los controles.
LO BSICO DE RIBBONX
El programa CustomUI, nos permite crear
cdigo XML que es necesario para poder
manejar la Cinta de acuerdo con nuestras
necesidades. Este programa resulta til ya que
trae un compilador que revisa el cdigo antes
de guardarlo y ver que cuando abramos Excel
no enve errores a la hora de la ejecucin.
COSAS A CONSIDERAR
Todas las instrucciones se comienzan con un
menor que (<), y son cerradas con una diagonal
invertida y un mayor que (/>). Sin estos smbolos,
el corrector de sintaxis marca un error.
Los parmetros dentro de una instruccin son
separados con un espacio en blanco, no necesitan
comas ni punto y coma. stos pueden estar uno
por lnea o todos juntos.
Todos los textos se ponen siempre entre comillas
para que el sistema sepa que es un texto y no un
intento de instruccin mal escrito.
CREAR UNA ETIQUETA
Probablemente quiere crear una etiqueta personalizada para que sus
botones se distingan fcilmente. Esta instruccin viene por pares, ya que,
dentro de sta, se puede agregar cdigo para crear un grupo y botones.
La siguiente instruccin nos proporciona esa funcionalidad:
<tab id="NuevaEtiqueta" label="Texto" insertAfterMso="TabHome">
Aqu pueden ir otras instrucciones
</tab>
tab: comando para la creacin de una etiqueta dentro de la cinta.
id: nombre interno del control.
label: define el texto que va a aparecer como nombre de la etiqueta.
insertAfterMso: podemos definir despus de qu etiqueta insertar nuestra
etiqueta.
</tab>: fin del comando para crear una etiqueta.
CREAR UN GRUPO
Los grupos son una excelente manera de hacer que nuestros
botones se distingan fcilmente, a diferencia de la instruccin
para crear un botn, la instruccin de group viene por pares, una
que abre la instruccin con sus parmetros y la otra que cierra el
grupo, esto es por si se quiere agregar botones al grupo, se haga
dentro de ste par de instrucciones. La siguiente instruccin nos
muestra cmo hacerlo:
<group id="GrupoHerr" label="Herramientas">
Aqu pueden ir ms instrucciones
</group>
group: comando para la creacin del objeto.
id: nombre interno del control.
label: texto que definir el nombre del grupo.
</group>: fin del comando para crear un grupo.
CREAR UN BOTN
El ms simple de los controles es un botn, stos
deben de estar definidos dentro de una etiqueta y
grupo, ya sea existente o personal. El siguiente cdigo
nos muestra cmo se puede crear uno:
<button id="Boton" label="Texto" size="Largo"
onAction="Macro1" imageMso="Imagen" />
button: comando para la creacin del objeto.
id: nombre interno del control.
label: la etiqueta que aparece debajo del botn.
size: es el tamao de la imagen que se va a mostrar
en la cinta.
onAction: el procedimiento que se va a ejecutar
cuando el botn sea oprimido.
CREAR UN CASILLA DE
VERIFICACIN
RibbonX nos permite crear en la cinta, casillas de
verificacin para activar o desactivar elementos.
Esto se lleva a cabo con la siguiente instruccin:
<checkBox id="CasillaV1" label="Texto"
onAction="Macro1"/>
checkBox: comando que crea una casilla de
verificacin.
id: nombre interno del control.
label: define el texto que va a aparecer como
nombre de la etiqueta.
onAction: el procedimiento que se va a ejecutar
cuando el botn sea oprimido.
CREAR UN CONTROL DE UN
COMANDO
Podemos invocar un comando de los usados
en Excel para agregarlo a nuestras etiquetas
personales, esto lo logramos con el siguiente
cdigo:
<control idMso="Comando"/>
control: instruccin que invoca a un comando
de Excel.
idMso: identificador del control.
CREAR UN SEPARADOR
Los separadores nos permiten agrupar
visualmente nuestros comandos para darles
cierto orden dentro de nuestra etiqueta, el
cdigo:
<separator id="separator" />
id: identificador del control que es la palabra
separator.

Potrebbero piacerti anche