Recordemos que la programación de macros se hace a través del lenguaje de
Visual Basic, denominada también como programación Orientada a objetos y que
nos permite trabajar en Excel. Recalcar que cuando hablamos de macros estamos
hablando de objetos, propiedades, y métodos, donde se utilizan variables y códigos.
{jos_sb_discuss:6}
En la primera parte definiamos que es un objeto, recordando que no es más que cualquier parte de excel con la que podamos interactuar una hoja, un rango, una celda, un libro, un gráfico, columnas, etiquetas de hojas, etc y lo asimilabamos este concepto al de una Casa,Las propiedades no serían más que las características de la casa, o sea informatícamente hablando, por ejemplo las propiedades de una celda, sería ni mas ni menos, que su: color, vacía o con número, su alto y su ancho, etc…, por lo tanto las características de los objetos.
Los métodos, no son más que las acciones que podemos realizar sobre la casa, es decir, sobre los objetos, por ejemplo las acciones a realizar en un libro, en una hoja, o en una columna, serían activar, mover, copiar o borrar.
Las variables datos que se guardan en memoria (recordemos el ejemplo del armario reservado para guardar ropa y que podemos ir cambiando según temporada). Dijimos que se dividían en Públicas (Public), Privadas (Private), y también podemos encontrar las variables Estáticas (Static), La variables (Locales) y Variables (Constantes)Antes de proseguir analizando las lineas de código debemos analizar cada una de las variables que podemos utilizar en Visual Basic, comencemos.
{mospagebreak title=Variables}
DIVISIÓN DE VARIABLES.
Public
(publicas) disponibles para todos los procedimientos en todos los
módulos de todas las aplicaciones. Tenemos una excepcion, cuando utilicemos
“Option Private Modulo “ en este caso, solo son publicas dentro de vonde viven.
Ejemplo:
Public NumeroDeDias As Integer
Privadas
(private), disponibles para
procedimientos de un mismo módulo
disponible en todos los procedimientos del módulo, pero no para el código de
otros módulos. A nivel de módulo no hay diferencia entre Private y Dim.
Ejemplo:
Private NumeroDeDias As Integer
Variables Locales se declaran dentro de cada macro y solo se utilizán dentro de dicha macro en la que se han creado.
Ejemplo:
Sub
Macro1()
Dim Autor
As String
Autor = "mmm"
ActiveCell = Autor
End Sub
Variables
Estáticas (Static) son las que conservan su valor mientras el código se
está ejecutando, con esta forma de declarar variables conseguimos que las
variables Locales no se creen y se destruyan al salir y entrar de los procedimientos
donde se declararon y hacen que se mantenga su valor durante todo el periodo de
ejecución de la aplicación, recordando así el valor que tenía cuando salió de
él.
Static se utiliza
mientras se ejecuta la aplicación
Dim se utiliza
mientras se ejecuta el procedimiento.
Ejemplo:
Static x As
Byte o Static x As Long
Variables Constantes (Const), esta instrucción se utiliza cuando queremos que una variable no cambie y que siempre haga referencia a un mismo valor, han de ser Públicas.
Ejemplo:
Const Nombre As Byte = 23
Se ha definido una variable como Nombre as Byte y que su valor será siempre 23
{mospagebreak title=El Editor de Macros}
EL EDITOR DE MACROS
Antes de ver y analizar las lineas de código debemos ver y familiarizarnos con el editor de macros que se incorpora en Office en este caso veremos el editor de macros de excel
Pasos para ver el editor de Visual Basic
en Excel:
2.- Una vez dentro nos aparece las ventanas y barras de herramientas que se utilizan en Visual Basic. (Expuestas arriba)
3.- Para poder ver el explorador de proyectos, vamos al menú “Ver”> “explorador de proyectos>
4.-Para poder ver la ventana propiedades, vamos a menú Ver> Ventana de propiedades.
5.- Para poder ver la ventana Código, vamos a menú Ver > Código
6.- Para poder ver

1. 2. 3.
Vamos a dar un repaso a las principales
ventanas que utilizaremos en Visual Basic:
Ventana Proyecto
- El
botón arriba señalado con el número 1 se denomina “Ver código” y si le
damos clic, nos muestra la “ventana Código”.
- El botón arriba señalado con el número 2 se denomina “Ver objeto” y si le damos clic, nos lleva a la hoja 1 de Excel.
- El botón arriba señalado con el número 3 se denomina “Alternar carpetas” y si le dais clic, veréis que cambia el orden de los elementos.
VBAProject (Mi libro.xls) = Carpeta
principal
Dentro de la ventana Proyecto tenemos también los formularios “UserForms” y los Módulos.
{mospagebreak title= Análisis de las líneas código de una macro}
ANALISIS DE LAS LINEAS DE CODIGO EN UNA MACRO
Esta parte la vamos a explicar con un sencillo ejemplo que es como mejor se entenderá.
‘Esta macro escribe ¿Qué tal
amigos? En la celda A1
Sub MiMacroUno()
Range(“A1”).Value = “¿Qué tal amigos?”
End Sub
Pues esta macro tiene cuatro líneas de código:
1ª Línea: El comentario que hacemos sobre la macro, siempre y digo siempre tiene que ir precedido del signo ‘ , para que el Editor de macros así lo reconozca como lo un comentario nuestro para facilitarnos nuestra tarea, el editor automáticamente nos lo pintará en verde, y se puede colocar en cualquier línea, no tiene efectos negativos sobre la macro al contrario nos servirá de ayuda.
2ª Línea: Sub MiMacroUno()
Aquí comienza la macro, Con Sub seguido del nombre que queráis ponerle a vuestra macro, (siempre sin espacios y todo junto), y los ().
3ª Línea
Con este código hacemos que la macro haga lo que nosotros le hemos pedido, recordad siempre que hay que hacer referencia al objeto y luego asignarle una propiedad o método.
4ª Línea: End Sub
Es el final de la macro y siempre terminan con esta instrucción.
EJEMPLO DE UNA MACRO
Hoy he querido poner esta macro muy original y que os gustara en cuanto al efecto que tiene en una hoja de Excel y que nos ayudará a familiarizarnos con el editor de macros, para probarla tenéis que hacer lo siguiente:
1.- Abrir un libro y lo guardáis con el nombre que queráis.
2.- Luego seleccionáis
3.- En Alto de fila le ponéis 100
4.- Luego os vais a la columna “C” y la seleccionáis y clic con el botón derecho de ratón y le dais a “Ancho de Columna” y le ponéis 90.
5.- Le dais a guardar
6.- Alt.+F11 y abrís el editor de visual Basic, os ponéis en la ventana de proyecto y le dais clic a
Thisworkbook, para abrir su ventana de código y escribir allí (o copias y pegáis) esta macro.
7.- Una vez hecho esto, cerráis, le decís que SI a guardar el libro y al volver a abrir el libro, veréis la ejecución de esta macro.
Private Sub Workbook_Open()
Range("C12").Select
Selection.Font.Bold = True
With Selection.Font
.Name = "verdana"
.Size = 48
End With
ActiveCell.FormulaR1C1 = "¿Qué tal amigos?"
ActiveCell.Font.Color = RGB(0, 0, 0)
For a = 1 To 255 Step 25
For b = 1 To 255 Step 25
For c = 1 To 255 Step 15
ActiveCell.Font.Color = RGB(a, b, c)
Next c
Next b
Next a
Range("C12").Select
Selection.ClearContents
With Selection.Font
.Name = "verdana"
.Size = 10
End With
End Sub
{mospagebreak title= Tipos de datos en VBA }
TIPOS DE DATOS EN VISUAL BASIC
En este apartado vamos a ver los tipos de datos que podemos utilizar en una variable en Visual Basic- Tipo de datos, como ya hemos dicho define el tipo de variables que podemos usar
- Tamaño define cuanto espacio ocupa en memoria
- Intervalo se definen los valores que puede adquirir la variable
Tipos de datos > Su tamaño > Intervalo:
Byte > 1 Byte
> de
Boolean > 2 Bytes > True o False
Single (coma
flotante/precisión simple) > 4 bytes
Ø Para valores negativos -3,402823E38 a -1,401298E-45
Ø Para valores positivos 1.401298E-45 a 3,402823E38
Double (coma
flotante/ precisión doble) > 8 bytes
Ø Para valores negativos -1,79769313486231E308 a -4,94065645841247E-324
Ø Para valores positivos 4,94065645841247E-324 a 1,79769313486231E308
Currency (entero a escala) > 8 bytes > - 922.337.203.685.477,5808 a 922.337.203.685.477,5807
Decimal > 14 Bytes
Ø +/- 79.228.162.514.264.337.593.543.950.335
Ø +/- 7,9228162514264337593543950335 Con 28 posiciones al lado del signo decimal
Ø El número más pequeño distinto de cero es +/- 0,0000000000000000000000000001
Date > 8 bytes
> del 1 de enero de
Object > 4
bytes > Cualquier referencia a tipo Object
String (Longitud Variable) > 10 bytes + longitud de cadena > Desde
String (longitud Fija) > Longitud de cadena > Desde
Variant (con números) > 22 bytes + Longitud de cadena
- Cualquier
valor numérico hasta el intervalo de un tipo Double
Variant (con Caracteres) > 22 bytes + longitud de cadena
- El mismo intervalo que para un tipo String de longitud variable
Definido por el usuario (Utilizando Type) > Número requerido por los elementos
- El
intervalo de cada elemento es el mismo que el intervalo de su tipo de
datos
Y hasta aquí la tercera parte, proximamente
EJEMPLOS DE MACROS PARA ENTENDER ESTOS TIPOS DE DATOS
ADEMAS DE AÑADIR LAS EXPRESIONES QUE SE UTILIZAN PARA CONVERTIR VARIABLES DE UN TIPO A OTRO.
A todos vosotros que estais ahi. Un saludoMonica