Wednesday, December 14, 2011

mi primera macro



En este apartado crearás una macro y te explicaremos como acceder a ella y
como parametrizarla.

Antes de empezar vamos a explicarte como poner la barra de herramientas de
macros.
Vamos a Herramientas>Personalizar...
Y activas la que se llama Visual Basic.


Te aparecerá la siguiente barra de herramientas.

Nuestra primera macro consistirá en escribir un texto en una celda y ponerla en
negrita:
1.- Pulsar el botón de grabación de la barra de herramientas de


macros.
Al pulsar el botón te aparecerá esta ventana; a continuación, pulsar el botón de
Aceptar:
Los campos del formulario asociados a la grabación de la macro son:
• Nombre de la macro: nombre del procedimiento que se creará,
¡acuérdate del nombre de la macro!
• Método abreviado: para que la macro se ejecute con la combinación de
Ctrl + la tecla que definas
• Guardar macro en...: si deseas que se grabe en este libro de trabajo o
en otro, que determines.
• Descripción: comentario del procedimiento
2.- Escribir algo y ponerlo en negrita; por ejemplo, en la celda B5
poner prueba.
3.- Pulsar el botón de parar grabación de la barra de herramientas de
macros
Ya has creado tu primera macro.


Vas a realizar una ejecución de tu macro. Primero debes borrar el contenido y
quitar las negritas de la celda B5 para así poder comprobar que se ejecuta
correctamente la macro definida en el primer punto.
Al pulsa el botón de ejecución se te mostrará la siguiente pantalla:
En esta pantalla se muestran todas las macros
creadas en todos los libros de trabajo abiertas.
Marca tu macro (la puedes distinguir por el
nombre que la macro) y pulsa el botón ejecutar:

Ahora ya tienes configurado el entorno del editor de macros
3.4.2.- Ver el código
En el explorador de objetos verás que hay varios ítems, uno de ellos se llamará
como el libro de trabajo que posees abierto.
Aprieta sobre el signo + y verás dos carpetas
Todas las macros que grabes se añadirán en la carpeta
de Módulos
Despliega la carpeta de Módulos y verás que hay una
línea que se llama Módulo1
Al hacer doble click sobre Módulo1 verás el código en la
derecha de la ventana
Un libro de trabajo (fichero de Excel) posee varias tipos de
objetos:
1.- Carpeta de Microsoft Excel Objetos
Hojas de cálculo.
Thisworkbook
2.- Formularios; que también se pueden crear (ventanas)
3.- Módulos.
4.- Módulos de clases, se pueden crear objetos .
Entre todos estos tipos de objetos, en este manual nos centraremos en las
hojas de cálculo, thisworkbook y módulos.
Tanto los formularios como los módulos de clases son herramientas propias de
Visual Basic, no exclusivas de Excel; es decir, si lees un manual de Visual
Basic que explique como realizar formularios, todo lo que aprendas te servirá
para aplicarlo al realizar formularios en Excel
3.5.- Nivel de seguridad
Las macros pueden modificar el contenido de nuestro ordenador, con lo que se
aconseja estar “protegido” contra archivos que contengan macros y nos lleguen
a nuestro ordenador, ya que se puede crear código malintencionado como
pueden ser los virus, con este formato. Cuidado.
Desde Herramientas > Macros > Seguridad... se puede configurar el nivel de
seguridad; aconsejamos el modo Medio.


Con este nivel de seguridad, al abrir un fichero de Excel con macros, se
mostrará la siguiente pantalla, que nos permite Habilitar Macros o Deshabilitar
Macros en función del origen de Excel (si te fías o no).

4.1.- Insertar controles
Las macros se ejecutan cuando se produce un evento. Lo más habitual
consiste en crear un botón y asignar el evento click sobre dicho botón a una
macro. Para hacer esto debes:
Pulsar el botón de Cuadro de Controles
Se mostrará la herramienta de controles; al añadir cualquier control,
pasaremos al modo diseño, que se señala (y se quita) con
esta opción:
En este caso, seleccionamos la opción de añadir un botón
pulsando:
Entonces entraremos en modo diseño; para ver las propiedades del
botón (o de cualquier otro control que hubiéramos seleccionado) hay
que pulsar dicha opción.
Una vez insertado el botón (y en modo diseño) has de hacer doble clic sobre el
mismo, y accederás al editor de Visual Basic, con lo que ya puedes
poner el código que desees. En el caso de querer modificar atributos
del botón (y/o del resto de controles) has de acceder en Excel (no
desde el editor de visual basic), estar en modo diseño, seleccionar el
control y pulsar el botón de Propiedades.
En el caso


Para leer o escribir en una celda de la hoja en la que nos encontramos se
utiliza la función Cells (fila, columna)
En el siguiente ejemplo leeremos los datos de la primera columna, hasta
encontrar el símbolo ***, que nos indicará “parar de leer”; la información que se
va leyendo se acumula en una variable que después se graba en la celda B1;
al aparecer los ***, se finaliza esta acumulación y el último dato, es el
acumulado total.
1. Private Sub CommandButton1_Click()
2. Dim fila As Long, acumulado As Double
3. fila = 1 ‘indicar la primera fila
4. acumulado= 0 ‘valor donde se acumula el resultado
5. While Cells(fila, 1) <> "***"
6. ‘acumular el valor
7. acumulado = acumulado + Cells(fila, 1)
8. fila = fila + 1 ‘incrementar la fila
9. Wend
10. cells(1,2)= acumulado ‘escribir el resultado en B2(fila=1, columna=2)
11. End Sub
Ahora queremos borrar las líneas que no tengan valores numéricos. La primera
duda que surge es...¿cómo se borra una fila en Excel?
Existen 2 opciones para resolverlo:
• Hacer un manual con todos los objetos y métodos (manual de más de
200 páginas)
• Enseñarte cómo descubrirlo... en 4 líneas.
Opto por la segunda opción, y los pasos para seguir serán:
1.- Pulsa el botón de grabación
2.- Borra alguna línea en Excel
3.- Para la grabación de la macro
4.- Ver el código
En mi ejemplo borré dos líneas, y el código que se genera es el siguiente:
1. Sub Macro2()
2. '
3. ' Macro2 Macro
4. ' Macro grabada el 21/10/2007 por Casa
5. '
6. '
7. Rows("17:17").Select
8. Selection.Delete Shift:=xlUp
9. Rows("24:24").Select
10. Selection.Delete Shift:=xlUp
11. End Sub

Te habrás fijado que accedes a la celda de la hoja de cálculo del fichero de
excel que tienes activo.
La hoja de cálculo se denomina Sheet y el fichero de Excel es el Workbook.
Imagínate que deseas leer la celda A1 de la hoja que se llama “hoja2”; para
hacer esto puedes poner:
Sheets(“hoja2”).Cells(1,1)
Si el libro de trabajo se llamará “libro2.xls”,pondrías:
Workbooks("libro2.xls").Sheets("hoja2").Cells(1, 1)
Esta instrucción resulta útil cuando se trabaja con varias hojas de cálculo o
varios ficheros de Excel.
Atención, ya que algunas funciones sólo se pueden ejecutar cuando la hoja
está activa. Por ejemplo, no se puede borrar una línea de una hoja que no esta
activa. Para ello habría que utilizar previamente el método select para
seleccionar la hoja; es decir:
Sheets(“hoja2”).Select
La idea es que Sheet, Worbook y Cells son objetos que tienen propiedades y
métodos, algunos compartidos, y otros propios y diferentes.
Si deseas añadir, por ejemplo, una hoja, sería tan sencillo como:
Sheets.Add

El objeto Application posee gran cantidad de métodos y propiedades. Una de
las más útiles y menos utilizadas es StatusBar. Con este método podemos
escribir en la barra de status, como veremos ahora.
Prueba la siguiente línea de código:
Application.StatusBar = "Esto se ha ejecutado con el método StatusBar"









No comments:

Post a Comment