Академический Документы
Профессиональный Документы
Культура Документы
8.1. LA APLICACIN
Excel posee gran candad de objetos que representan diferentes elementos como pueden
ser eslos, nombres denidos para celdas y rangos, grcos, libros, hojas, rangos, ventanas,
complementos y proyectos de Visual Basic.
Entre los diferentes objetos existen relaciones muchas de ellas de jerarqua, por ejemplo las
celdas se alojan en una hoja de clculo y sta, a su vez, forma parte de un libro, estos objetos
enen dependencias entre ellos. Por lo que es necesario conocer estos objetos y sus principales caracterscas, vamos a comenzar estudiando al objeto que acta como raz de todos los
dems, es la aplicacin o aplicaon.
Este objeto cuenta con propiedades y mtodos que afectan a la aplicacin de manera global. Es posible acceder a el desde cualquier punto de una macro o funcin, mediante la referencia global Applicaon. Sus propiedades se agrupan en dos categoras: las que dan acceso
a colecciones de otros objetos, como libros, complementos o ventanas, y las que conenen
opciones que afectan al comportamiento de la propia aplicacin.
Algunas de sus propiedades que dan acceso a las colecciones de otros objetos ms importantes son:
Workbooks Conene un objeto Workbook por cada libro que haya abierto en ese momento.
Addlns Conene un objeto Addln por cada complemento instalado.
Dialogs Conene un objeto Dialog por cada cuadro de dilogo disponible.
CommandBars Conene un objeto CommandBar por cada barra de herramientas que
exista.
Names Conene un objeto Name por cada nombre que hayamos denido para celdillas.
Windows Conene un objeto window por cada ventana que haya abierta en la aplicacin.
RecentFiles Conene un objeto RecentFile por cada archivo con el que se haya trabajado
recientemente.
Adems cada uno de los objetos de cada coleccin ene sus propias propiedades y mtodos. Por ejemplo los objetos Windows cuentan con una propiedad Capon que conene el
tulo de la ventana. Cada objeto RecentFile dispone de una propiedad Name con el camino y
nombre del archivo usado recientemente.
Vamos a ver un ejemplo en el que se trabaja con el objeto applicaon y algunas de las
propiedades que acabamos de ver, en este ejemplo lo que hacemos es conseguir un listado
de ventanas recientes para ello creamos una variable ventana de window y con un bucle for
recorremos todas las ventanas recientes e imprimimos en la ventana de inmediato el valor del
tulo de cada una de ellas.
Respecto a las propiedades que afectan a las opciones del entorno, son muy variadas y en
muchos casos toman valores verdadero o falso, algunas de ellas son:
AcveCell Celda acva
AcveSheet Hoja acva
AcveWindow Ventana acva
AcveWorkbook - Libro acvo
DisplayStatusBar Controla la aparicin de la barra de estado en la ventana de Excel
ReferenceStyle indica el po de referencias a usar
DisplayStatusBar controla la aparicin de la barra de estado.
Vamos a ver un ejemplo en el que se trabaja con el objeto applicaon y algunas de las
opciones que acabamos de ver, el objevo es cambiar la visualizacin o no de la barra de estado, se llama al objeto barra de estado de la aplicacin y despus se niega el estado en el que
esta si esta a false se pone a true y se esta a true a false cambindose de este modo el estado
de la barra.
8.2.EL LIBRO
Los libros de Excel en visual Basic son los objetos Workbook, y parten del objeto Applicaon. Desde el cdigo fuente podemos acceder al libro actual, con mediante la propiedad
AcveWorkbook, y a la coleccin de todos los libros abiertos, con la propiedad Workbooks.
Tambin podemos acceder al libro que conene la macro o funcin mediante la propiedad
global ThisWorbook, esta junto a la propiedad aplicaon pueden ser usadas directamente sin
poner delante el nombre del objeto.
Mediante Workbooks usando el mtodo open podemos abrir libros existentes pero es necesario como parmetro el nombre del libro y la ruta con add podemos crear nuevos libros. El
objeto workbook posee gran candad de propiedades, colecciones y mtodos, algunas de las
ms interesantes son:
Worksheets: Coleccin con un objeto Worksheet por cada hoja de clculo que exista en
el libro.
Charts: Conene un objeto Chart por cada grco.
Names: Coleccin con los objetos Name que equivalen a todos los nombres denidos
en el libro.
Las propiedades del libro nos permiten tambin obtener y modicar su nombre, determinar si se aceptan nombres en las frmulas, saber si ene asignada una clave de acceso, etc.
Los mtodos, tambin nmerosos, pueden ser ulizados para acvar un cierto libro, Acvate; cerrarlo, Close, o protegerlo, Protect.
En el ejemplo abrimos una hoja de clculo usando el mtodo open, despus la acvamos
con el mtodo ac!vate. El siguiente paso es enumerar las hojas usando la coleccin y, por cada
una de ellas, imprimimos el nombre en la ventana Inmediato.
8.3. LA HOJA
Las hojas de un libro son los objetos Worksheet. A travs de este objeto, con sus propiedades y mtodos, podemos acceder a todo el contenido que exista en la hoja: celdillas, grcos,
elementos visuales como los diagramas, tablas dinmicas, etc. Tambin podemos recuperar y
modicar propiedades que afectan a toda la hoja.
El objeto Worksheet ene gran candad de propiedades, podemos sealar como las ms
importantes:
Names Conene los nombres denidos en la hoja.
Comments Conene Un objeto Comment por cada comentario que haya en la hoja.
Scenarios Cada escenario denido en la hoja ene una correspondencia con un objeto
Scenario.
PivotTables Conene un objeto PivotTable por cada tabla dinmica existente.
ChartObjec Conene un objeto ChartObj ect por cada grco de la hoja.
Algunas de ellas, como es el caso de PivotTables, enen elementos que, a su vez, disponen
de mlples colecciones ms.
Como ocurre con los libros, con las propiedades de worksheet es posible aadir nuevas
hojas, acvar la que nos interese, modicar sus nombres, cerrarlas, etc.
Una de las acciones mas importante que se puede llevar a cabo en un objeto worksheet es
el acceso a los datos existentes en las celdas, existen varias opciones para hacerlo y una de ellas
es mediante la propiedad cells, que necesita como parmetros el nmero de la y columna de
la celda la que vamos a hacer referencia. Otra opcin disponible es Range que acta como
si fuese una matriz, cuyo ndice es una cadena que conene una referencia de una sola celda
o de un rango, en cualquier caso lo que obtenemos es una referencia a ese rango para poder
explorarlo o modicarlo.
En el ejemplo vamos a hallar una serie de nmeros en el que comenzamos por el 1 y vamos
mulplicndolos por 3, comenzamos declarando tres variables, lo primero que hacemos es
obtener una referencia a la hoja de clculo actual, guardndola en la variable Hoja. Fijamos una
celda como punto de origen, asignndole el uno como valor inicial. Por lmo, recorremos
todas las celdillas del rango mulplicando el valor de cada una de ellas por 3 y almacenndolo
en la siguiente. En este caso como el valor que estamos asignando a las variables es una referencia a un objeto, adems del operador igual para realizar la asignacin necesitamos iniciar la
asignacin con la palabra clave Set.
Ejecutamos la macro y vemos el resultado una serie de nmeros completa.
La propiedad AcveCell es un objeto Range que conene una referencia a la celda actual.
Siempre que tengamos un objeto Range, podemos obtener la referencia correspondiente de
la propiedad Address.
En AcveCell, la propiedad Address devolver la referencia a la celda acva, aun cuando
hayamos seleccionado un rango, pero si necesitamos acceder no slo a la celda acva sino a
todo el rango actualmente seleccionado, en lugar de AcveCell debemos usar la propiedad
Selecon. Que tambin es un objeto Range y, por lo tanto, dispone de la propiedad Address.
Vamos a ver la diferencia con un ejemplo, tenemos una macro en la que imprimimos el
valor de la propiedad Address de AcveCell y Selecon, mostrando la diferencia entre ambas.
Tambin podemos si es necesario realizar una seleccin de un rango de celdas con una macro sin necesidad de usar el teclado o el ratn, ulizamos AcveSheet el rango que queremos
seleccionar y la propiedad select.
Tambin podemos necesitar acvar una celda concreta para ello usamos la propiedad ac!vate y pasamos como parmetro la celda.
En otras ocasiones podemos querer desplazarnos a una celda sin saber exactamente cual
es, realizando un desplazamiento relavo a parr de otra celda, para ello podemos usar los
mtodos Next y Previous, que devuelven una referencia a la celdilla anterior o siguiente de
una dada. En el ejemplo tenemos dos macros una que mueve hacia delante de la celda acva
y otra hacia atrs.
El mtodo Show de cada objeto Dialog nos permite mostrar el cuadro de dialogo, y devuelve un parmetro indicando la accin que a realizado el usuario sobre la ventana. Habitualmente True signica que ha hecho clic en el botn Aceptar, Abrir o equivalente, mientras que False
indica la cancelacin.
Podemos llamar al mtodo Show sin indicar ningn parmetro ya que el nmero de parmetros es variable y, varia dependiendo del cuadro de dilogo de que se trate.
Vemos un ejemplo de una macro en la que mostramos diferentes cuadros de dialogo, en la
primera lnea hacemos aparecer el cuadro de dialogo de alineacin, en la segunda lnea el cuadro de creacin de nombres y en la ulma el cuadro de dialogo de insercin de hipervnculos.
Los valores devueltos indicaran si se ha seleccionado una alineacin, se ha creado un nombre
o se ha insertado el hipervnculo, siendo True en caso armavo.
En el ejemplo tenemos una macro que muestra un msgbox en el que indicamos al usuario
si quiere poner la fecha en la celda acva, si el usuario indica que si se muestra la fecha en la
celda en la celda acva, si dice que no, no ocurre nada.
Si probamos la macro, nos aparece el mensaje y pulsamos que si automcamente no aparece la fecha en la celda acva.
El mtodo de dialogo InputBox del objeto Applicaon puede solicitar multud de datos
disntos al usuario, los posibles valores son
0 El usuario debe introducir una frmula.
1 Debe facilitarse un nmero
2 El dato solicitado es una cadena de caracteres.
4 Se solicita un valor lgico, slo puede ser VERDADERO o FALSO.
8 El usuario debe facilitar una referencia a una celdilla o un rango.
16 El valor a introducir es un cdigo de error.
64 Debe introducirse una matriz de valores.
Estos valores pueden ser combinados, bien sumndolos o con el operador Or. Esto permira mostrar una ventana que, por ejemplo, permiese tanto introducir una frmula como una
referencia a una celdilla que la contuviese.
En el ejemplo tenemos una macro en la que tenemos un InputBox que pide al usuario su
nombre y lo inserta en la celda acva. Ejecutamos la macro y vemos el resultado.
Nos aparece una ventana que conene un formulario vaco, por una parte, y una paleta
con los diversos controles que se puede insertar en el formulario. La insercin de los controles
se efecta mediante el ratn, haciendo clic en la paleta para seleccionar el control y despus
en el formulario para insertarlo.
Al insertar un formulario ste recibe un nombre y un tulo por defecto. El nombre se encuentra en la propiedad Name, y el tulo en la propiedad Capon.
Podemos editar estas propiedades en la ventana de Propiedades de Visual Basic, con los
valores que elijamos, por ejemplo Cdialog para el nombre y Datos personales para el Capon.
Un formulario vaco es una ventana sin mucha ulidad, ya que slo conene un tulo y el
botn de cierre. Para que sirva para algo tenemos que incluir en l componentes, tenemos
diferentes pos la equeta Label que se uliza para mostrar textos y tulos en el formulario,
Cuadro de texto o TextBox es un recuadro para solicitar un dato, como puede ser un texto o un
nmero. RefEdit es un Recuadro que sirve para solicitar una referencia a una celdilla o rango,
OponBu!on o botn de opcin es un Botn que permite la seleccin de mlples opciones
exclusivas entre s, CheckBox o casilla de vericar es una Casilla de acvacin/desacvacin de
opciones. CommandBu!on o botn de comando es un Botn tradicional para pulsar ejecutando una accin.
Insertar una serie de componentes en el formulario una equeta con el capon nombre, a
su lado una caja de texto, otra equeta con el capon Apellidos y a su lado una caja de texto,
una ulma equeta con el capon Fecha Nac y a su lado otra caja de texto, debajo de estos
datos insertamos dos botones uno con el capon agregar y otro con el capon cerrar.
Cada componente posee conjunto de propiedades, muchas de ellas comunes a los dems
componentes. Por ejemplo Label, CommandBu!on, OponBu!on y CheckBox disponen de
una propiedad, llamada Capon, que permite establecer el texto que se ve en el interior o al
lado del componente. Los botones, al ser pulsados o seleccionados, generan un evento Clic que
puede ser usado para responder a esa accin. Los controles CheckBox y OponBu!on cuentan
con la propiedad Value, que con su valor, True o False, indica si la opcin ha sido elegida o no.
Cuando es necesario solicitar un dato, como por ejemplo un nmero, un texto o una referencia, debemos usar componentes como por ejemplo el componente TextBox y RefEdit, los
dos disponen de una propiedad Text donde almacenan el valor introducido. TextBox se usa
para datos en general, y RefEdit para solicitar referencias a celdas o rangos, este componente
permite acceder a la hoja de clculo para seleccionar interacvamente la referencia.
Al mostrar el cuadro de dilogo, el acceso a los componentes es igual a cualquier otra ventana, al entrar hay un control acvo y ulizando la tecla Tab vamos accediendo a los dems.
Todos los controles cuentan con las propiedades TabStop con la que indicaremos si debe accederse o no al control usando la tecla Tab, por defecto esta a true y TabIndex establece el orden de acceso a los componentes. Su contenido es un nmero que indica la posicin que ocupa
el control en ese orden de acceso, independientemente de su posicin sica en el formulario.
Despus buscamos la primera celda vaca, el siguiente paso es vericar que se ingresa un
nombre en el formulario, una vez que tenemos el nombre insertamos los datos introducidos
en las correspondientes celdas de la base de datos, por ulmo limpiamos el formulario por si
el usuario quiere introducir otro dato.
En el evento clic del botn cerrar, lo nico que tenemos que hacer es cerrar el formulario.
Si probamos al macro, al ejecutarla se muestra el formulario y podemos introducir los datos, primero el nombre, los apellidos y la fecha de nacimiento, pulsamos agregar y el dato se
inserta en la primera la, insertamos otro dato mas, el nombre, los apellidos y la fecha de nacimiento. Al agregar aparecen los datos en el formulario.