SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Excel y Más por Otto J Gonzalez
Primera edición
Excel VBA
Guía Rápida
para principiantes
Aprende a crear proyectos VBA compatibles que se ejecutan
en Windows y en Mac OS X
i
© Excel y Más por Otto J González
El objetivo de esta publicación es, dar una Guía Rápida para quienes desean
aprender a programar en VBA para Excel, obteniendo las bases necesarias de
una forma práctica y sobre todo inmediata, en cuatro sencillos capítulos.
Soy MVP de Microsoft desde el año 2015, en la categoría Office Apps & Services.
Puedes visitarme en https://www.youtube.com/ottojaviergonzalez en donde encontra-
rás contenido audiovisual totalmente gratuito.
"El MVP de Microsoft es un galardón que se otorga a todas aquellas perso-
nas que con sus contribuciones ayudan y colaboran activamente en las comu-
nidades técnicas del mundo sobre herramientas de Microsoft
Excel VBA ❖ Guía Rápida
Acerca del Autor
Mi nombre es Otto Javier González, técnico pro-
gramador de Sistemas informáticos.
Mi trabajo se desarrolla dando soporte técnico a
la pequeña y mediana empresa.
En mi experiencia laboral, siempre ha estado
presente Excel. Es como la matemática, que está
presente en nuestro diario vivir. Yo soy de la opi-
nión, que si la tecnología nos da las herramien-
tas necesarias para optimizar nuestro trabajo…
pues hay que aprovecharlas al máximo.
OK... Muchos se preguntarán ¿Qué es Excel?
Excel es una Aplicación que nos permite adminis-
trar, calcular y analizar datos. Forma parte de Mi-
crosoft Office, un conjunto de productos que combina varios tipos de aplicaciones, que
nos ayudan a crear documentos, presentaciones, hojas de cálculo, bases de datos, ad-
ministrar correo electrónico, entre otras cosas.
La aplicación Microsoft Excel, es una herramienta que muchas veces ha sido subestima-
da por los usuarios, desconociendo su potencial real y no saben que podrían hacer, des-
de la tarea más sencilla, hasta los trabajos más complejos e inimaginables.
Conocer el funcionamiento de esta aplicación, es fundamental para cada usuario, ya
que hoy en día, la pequeña, mediana y gran empresa, cuentan con esta herramienta
de Office. Cabe mencionar también, que los que conocen su potencial, no invierten en
otros programas para administrar sus datos, porque saben lo que tienen en sus
manos.
Sin embargo no basta solo tener instalado este software, ya que si no sabemos cómo
utilizarlo, no podremos sacarle todo el funcionamiento que nos puede llegar a ofrecer.
¡Entrénate conmigo, mejora tus habilidades y sácale provecho a esta útil herramienta!
Otto J Gonzalez
www.excelymas.com
El Autor
1
Si eres un entusiasta y un amante de Microsoft Excel, pero que
únicamente te has dedicado a utilizar la herramienta de una
manera poco productiva, déjame decirte que no necesitas
tener amplios conocimientos de programación para
automatizar Excel según tus necesidades.
Debes tomar en cuenta que Excel ya incorpora de forma nativa
Visual Basic orientado a todas las aplicaciones que conforman
la Suite Ofimática de Microsoft.
Partiendo de ahí, ya tienes una herramienta muy importante e
imprescindible para alguien que desea ser más productivo en
su entorno laboral.
Pasos iniciales
3
Lo primero que debes hacer es activar la pestaña Programador
en la cinta de Opciones
Si eres usuario de Windows
Te diriges a Archivo > Opciones
Luego te aparecerá la siguiente ventana en donde seleccionas
Personalizar cinta de opciones y marcas la casilla de verifica-
ción correspondiente a la pestaña Programador y finalizas dan-
do clic en Aceptar
Sección 1
Activar la pestaña
Programador
4
Si eres usuario de Mac OS
Te diriges a Preferencias
Te aparecerá la siguiente
ventana
Seleccionas Barra de He-
rramientas y cinta de op-
ciones
En la siguiente ventana encontraremos la opción para activar la
pestaña Programador. Y finalizamos dando click en Guardar
5
Si eres usuario de Windows o Mac OS
Una vez activa la pestaña Programador (1), en el extremo iz-
quierdo encontrarás el botón que te permite ir al Editor de Vi-
sual Basic para Aplicaciones (2)
En Windows
En Mac OS
El entorno de Visual Basic o VBA es muy simple y fácil de en-
tender cada una de las herramientas.
En la parte superior izquierda del Editor, encontrarás el Explora-
dor de proyectos(1), y en la parte inferior, la Ventana de Propie-
dades (2)
El área de trabajo(3) la tienes a tu
derecha, que cuando agregues ob-
jetos, ya sean Formularios de
Usuarios, Módulos Estándar o Mó-
dulos de Clase, ahí será en donde
visualizarás el código de programa-
ción o el diseño de los Formula-
rios.
Si bien es cierto el entorno de VBA
es muy parecido en Windows y en
MacOS, sin embargo, en Sistemas Mac, en la última versión de
Excel, ya no es posible agregar Formularios de Usuarios como
interfaz de entrada.
Pero más adelante les mostraré una alternativa la cual nos per-
mitirá agregar Formularios de usuario en la versión MacOS
Si no tienes ningún conocimiento de programación previo, no te
preocupes. Únicamente toma en consideración algunos aspec-
Sección 2
Conociendo el
entorno de VBA
Dato interesante
Visual Basic para Aplica-
ciones fue implementa-
do por primera vez en
1993 en la versión 5.0
de Excel, en Sistema
Operativo Windows
6
tos y fundamentos para aprender a programar en Visual Basic
para aplicaciones y verás que no es difícil.
Digamos que esta guía viene siendo la receta perfecta para al-
guien que desea iniciar en la programación y automatización
de Excel en Visual Basic para Aplicaciones.
¿Y cuáles son los aspectos y fundamentos a los que me refie-
ro?
Pues, sencillamente son los siguientes:
•Los Objetos de Excel
•Declaración de Variables
•Tipos de Datos
•Asignación de Datos a las
Variables
•Ambitos de las Variables
(Su alcance dentro del pro-
yectoVBA
•Procedimientos
Formularios de Usuario
o UserForms
Nos permiten crear nuestros
propios diseños para automati-
zar las entradas de datos en
una hoja de cálculo
2
No creas que cada uno de los puntos que mencioné
en el capítulo anterior son difíciles de asimilar, ya
que una vez vayas conociendo cada objeto, cada
tipo de dato, cada ámbito, verás que la
automatización en Excel es muy divertida.
Aspectos y
Fundamentos
8
Antes de iniciar una automatización en VBA, tendrás que cono-
cer cuáles son los Objetos de Excel y de esa forma poder esta-
blecer referencias a dichos Objetos mediante código de progra-
mación VBA.
¿Y cuáles son los Objetos de Excel?
• Application
• La aplicación o instancia principal de Excel
• Workbooks
• Son los Libros de Trabajo dentro de la aplicación
• Sheet
• Son las Hojas de Cálculo dentro de un Libro de Trabajo
• Range
• Hace referencia a las celdas que contiene una Hoja de
Cálculo
Para una mejor comprensión, observa la siguiente imagen, que
te dará una mejor idea del contexto de los Objetos de Excel
Hay más objetos de Excel si hablamos
del entorno VBA, ya que los objetos
anteriormente mencionados, hacen re-
ferencia a la interfaz de usuario. Que
para automatizar una determinada ta-
rea, es muy importante entender cómo
funciona cada uno de ellos.
Sección 1
Los Objetos de
Excel Application
Workbooks
Sheets
Range
Importante
En programación
cada una de las lí-
neas de código y
objetos relaciona-
dos, se establecen
en inglés
9
Antes que nada ¿Qué es una Variable?
En términos prácticos y sin tan-
to tecnicismo, una variable es
un espacio en memoria que re-
servamos mediante la declara-
ción de un nombre, asignándole
el tipo de dato que vamos a al-
macenar. En la mayoría de los
casos las variables no son decla-
radas por los desarrolladores, lo
cual permite al sistema asignar-
le por defecto, un tipo de dato del tipo Variant
Es muy importante utilizar la sentencia Option Explicit para que
el sistema nos obligue a declarar las variables y que les asigne-
mos el tipo de dato que corresponde La palabra clave reserva-
da para declarar una variable es Dim seguida del nombre de la
variable, luego asignando el tipo de dato que utilicemos, sin olvi-
dar anteponer al tipo de dato la palabra reservada As, según el
ejemplo
Dim NombreVariable As TipoDato
Es de tomar en cuenta que las variables se declaran al princi-
pio de un procedimiento. De esa forma, si necesitas cambiar al-
gún tipo de dato, simplemente te diriges al inicio del procedi-
miento y ahí estarán todas las variables que gestionan el proce-
dimiento Sub
Sección 2
Declaración de
Variables
Toma Nota
Para dar seguimiento a
las variables declaradas,
es recomendable colocar-
le un prefijo descriptivo
que haga referencia al
tipo de dato establecido
10
Dependiendo de las tareas que vamos a automatizar, así será
la cantidad de variables a declarar y el tipo de datos a utilizar.
Algunas veces tendremos que crear variables con el tipo de da-
tos Variant, ya que dicha variable tendría que almacenar cade-
nas de texto, valores numéricos enteros, largos o tipos de fe-
chas. En esos casos pues declaramos variables de tipo Variant
Entre los tipos de datos que podemos establecer, tenemos los
siguientes:
Currency, el cual podemos utilizar para los valores de mone-
da.
Date, para los datos de tipo fecha.
Integer, para los números enteros.
Long, para los valores numéricos de gran tamaño.
String, utilizado para cadenas de texto.
Los tipos de datos antes mencionados son los que con más fre-
cuencia se utilizan, sin embargo, existen una gran cantidad de
tipos de datos que podemos establecer.
Es importante conocer y saber diferenciar los tipos de datos nu-
méricos. Si bien es cierto tenemos los tipos numéricos Integer
y Long, sin embargo existen otros tipos numéricos, que depen-
diendo del tamaño de almacenamiento que necesitemos, así
tendremos que implementarlos en nuestros desarrollos.
Checa los siguientes gráficos para que tengas una mejor idea.
El tipo Byte lo podemos utilizar para almacenar edades, ya que
no llegaríamos a utilizar un espacio tan grande como el tipo de
dato integer para almacenar una edad y por supuesto, sería
contraproducente utilizar el tipo de dato Long para pretender
almacenar datos de edades de personas.
Sección 3
Asignación de
Tipos de Datos
Byte
0 a 255
8 Bits
Integer
-32768 a 32767
2 Bytes
Long
-2.147.483.648 a
2.147.483.647
4 Bytes
11
Cuando trabajamos con variables debemos tomar en cuenta su
alcance dentro de un proyecto, ya que dependiendo el ámbito
en el que las declaremos, así tendrá efecto en parte o en el pro-
yecto completo.
Ámbito a nivel de procedimiento: implica que la variable ten-
drá su alcance en un procedimiento en particular.
Ámbito a nivel de módulo: En este ámbito podremos declarar
variables que alcancen a varios procedimientos que se encuen-
tren en un módulo. De esta forma los valores asignados a di-
chas variables, tendrán efecto en los procedimientos de donde
se les llame, obteniendo los valores almacenados en ellas.
Ámbito a nivel de proyecto: Dichas variables pueden declarar-
se en un módulo, pero si las declaramos anteponiendo la pala-
bra clave reservada Public, haremos que tengan un alcance glo-
bal, es decir, a nivel de todo el proyecto.
Sección 4
Ámbitos de las
Variables
Importante destacar
Las variables se destru-
yen cuando el procedi-
miento finaliza. Por lo
que después de ejecu-
tada, dicho espacio en
memoria se limpiará.
Toma muy en cuanta
Cuando declaras variable a
nivel de módulo, podrás cam-
biar la asignación de sus va-
lores en tiempo de ejecución
desde cualquier otro procedi-
miento, obteniendo resulta-
dos diferentes para cada uno
de ellos
12
De tal manera que no importa si llamamos dichas variables des-
de un procedimiento ubicado en otro módulo o en un User-
Form, de forma inmediata obtendremos los valores almacena-
dos, que si aún no tienen asignados valores, pues podremos
asignarlos desde cualquier punto del proyecto también.
Toma nota
observa que prácticamente es
un escenario parecido al ante-
rior. Sin embargo debes notar
que la declaración la hace-
mos de forma pública para
que su alcance tenga efecto
en todo el proyecto, pudiendo
hacer la llamada a dicha varia-
ble desde cualquier otra ubica-
ción, ya sea UserForm o un
módulo distinto.
3
Hagamos un ejercicio práctico, insertando y
automatizando un UserForm (Formulario de Usuario),
lo cual nos permitirá enviar datos a una hoja de
cálculo.
Ejercicio Práctico
14
Insertando un UserForm
En el editor de Visual Ba-
sic, damos click en inser-
tar y seleccionamos la
opción UserForm, y el
formulario se mostrará
en modo de diseño para
que le podamos insertar
los objetos que necesite-
mos para nuestra auto-
matización, entre los
cuales tenemos cuadros de texto, cuadros combinados, cua-
dros de lista y botones de comando. Hay muchísimos objetos
para cada necesidad, por lo que nuestros desarrollos tendrán
muchas posibilidades.
Debes tomar muy en cuenta que cada objeto o control que
agregues, tendrás la posibilidad de cambiar sus propiedades
según lo que necesites.
Como por ejemplo
cambiar la propie-
dad Caption del
UserForm para
que en su barra
de título se mues-
tre “Registro de
Clientes”
De esta forma podrás cambiar detalles a la interfaz de usuario
que estés desarrollando.
Sección 1
UserForm en
Windows
15
Muy bien, agreguemos un par de cajas de texto, dos etiquetas
y un botón de comando con el propósito de enviar datos a una
hoja de cálculo.
Una vez tengamos nues-
tro formulario diseñado a
nuestro gusto, debemos
aplicarle la programación
correspondiente al botón
de comando, por lo cual
daremos doble click so-
bre él, para ingresar a su
evento click.
Nuestro código quedaría de la siguiente forma.
Damos click en el comando ejecutar y precedemos a registrar
datos
16
Y ya haz programado tu primer UserForm que inserta datos en
la Hoja1 de tu libro de trabajo.
Que después de cada registro, te saldrá una caja de mensaje
confirmando que los datos fueros registrados con éxito.
Este código de programación te servirá de base para que pue-
das realizar tus propias automatizaciones, ya que contiene los
elementos claves, como el poder identificar la última fila en los
registros para agregar uno nuevo
Voy a hacer una breve explicación del código de programación.
Se han declarado tres variables, de las cuales, dos son del tipo
String y una del tipo Long.
Con la variable UltFila identificamos el número de registros con-
tenidos en el rango de datos, asignándole el conteo de las filas
que conforman la región de dicho rango, para lo cual sumamos
uno, para ubicarnos en la fila vacía y de esa forma poder escri-
bir un nuevo registro.
A la variable sMensaje que es de tipo String, se le asigna una
cadena de texto para que notifique al usuario final que los da-
tos han sido registrados con éxito.
La variable la utilizamos al final del procedimiento, haciendo
uso de la función MsgBox, la cual pide diferentes argumentos,
17
entre los cuales, los relevantes son: el Prompt o cadena de ca-
racteres que se muestran de manera informativa; tenemos tam-
bién el estilo de botones e ícono que denota el tipo de informa-
ción a notificar; y el título, lo cual aparece en la parte superior
del mensaje
A la variable sTitulo que también es del tipo string, se le ha asig-
nado el título que llevará la ventana del Msgbox
Pudimos haber puesto directamente las cadenas de texto en el
MsgBox, sin embargo, lo he realizado así con propósitos de
aprendizaje y que veas cómo se declaran las variables, y se les
asignan datos para luego mostrar sus resultados.
Generalmente yo en lo personal,
cuando creo proyectos grandes y
manejo muchas cajas de mensa-
je, lo que hago es declarar las va-
riables correspondientes al men-
saje y al título de forma pública, para hacer la llamada desde
cualquier ubicación del proyecto, y simplemente obtener su re-
sultado con la función MsgBox.
Con este ejemplo tendrás una noción más clara y precisa de
cómo gestionar información entre un UserForm y la hoja de cál-
culo.
Y ahora surge la gran pregunta...
¿Cómo podemos insertar UserForms en un Libro de Excel so-
bre un Sistema Operativo Mac?
4
En este capítulo aprenderemos a crear
proyectos que trabajen de forma compatible
para Windows y Mac
Compatibilidad
Windows y Mac OS
19
Compatibilidad para Win OS y Mac OS
Los UserForm o formularios de usuario nos permiten crear una
interfaz de entrada para que el usuario final pueda interactuar
entre el formulario y la hoja de cálculo. Como mencioné ante-
riormente en la versión actual de Office para Mac, no tiene so-
porte para insertar formularios de usuario en VBA, esto quedó
vigente únicamente hasta la versión 11 de la suite ofimática pa-
ra Mac.
Sin embargo para los usuarios de Mac, deberán tener acceso a
un PC con Windows o una máquina virtual para poder crear de-
sarrollos que incluyan formularios en la versión de Office para
Mac, de lo contrario tendrán que limitarse a realizar automatiza-
ciones únicamente a nivel de módulos.
Para crear un proyecto que incluya formularios en Mac, tendrán
que crear el proyecto desde Windows, realizando ciertas imple-
mentaciones y preparando los formularios para que sean com-
patibles con un sistema operativo Mac. Yo se que eso implicará
la necesidad de contar con más recursos, pero por el momento
es la única alternativa.
Al momento de insertar UserForms en Windows y cuando eje-
cutamos dichos UserForms en un sistema Mac, el problema
más notable es, la diferencia de resolución de pantalla entre las
dos plataformas. En Mac son 96 ppp, donde cada punto repre-
senta un pixel, mientras que en Windows, es de 72 ppp(puntos
por pulgada) y cada punto representa un “punto”.
Si no resolvemos y corregimos las diferencias de unidad de me-
dida, cuando ejecutemos el UserForm en Mac, resultará un for-
mulario más pequeño, por lo que su lectura será difícil para el
usuario final.
Jon Peltier nos resuelve este pro-
blema de una forma muy práctica y
precisa, mediante la inserción de
cierto código de programación que
cambia el tamaño de los formularios
en Mac en concordancia con las me-
didas en un sistema operativo
Windows.
Aquí te dejo el enlace de su publica-
ción original
https://peltiertech.com/userforms-for-mac-and-windows
Sección 1
Insertar un
UserForm
“While Microsoft has
substantially improved
the VB editor on the
Mac, you still can’t work
with UserForms on the
Mac. You have to build
them into your file in
Windows and them mo-
ve the file to the Mac.”
Jon Peltier
20
A continuación hagamos un ejemplo según la solución que nos
ofrece Jon Peltier.
En Windows insertaré un UserForm, pero antes agreguemos
un módulo estándar en el cual colocaremos el código fuente
que nos proporciona Jon Peltier.
Una vez tengamos nuestro módulo agregado, podríamos cam-
biarle de nombre, pero yo lo dejaré con el nombre de Módulo1.
Procedo a agregarle el código de programación de Peltier y me
quedaría de la siguiente manera.
Este código lo pueden copiar y pegar desde el enlace que les
compartí anteriormente.Agreguemos el UserForm, el cual lleva-
rá las siguientes líneas en su evento Initialize
Private Sub UserForm_Initialize()
#If Mac Then
ResizeUserForm Me
#End If
End Sub
21
Ingresamos al evento Initialize y quedaría de la siguiente mane-
ra.
En esta condición If, es-
tablecemos que, si el
Libro de trabajo es
abierto en un Mac, que
haga la llamada al pro-
cedimiento que cambia
el tamaño de un User-
Form, en donde puedes notar que le pasamos como argumen-
to el nombre del UserForm que estamos lanzando, en su defec-
to Me. También es de notar que dicho procedimiento contempla
un argumento opcional que permite establecer el porcentaje del
tamaño del formulario, sin embargo prefiero dejarlo por defecto
al porcentaje seleccionado por Peltier, que eso trabaja muy
bien.
Que si abres el libro de trabajo en Windows, como en el ejem-
plo de Peltier, obviamente la condición If será ignorada para
mostrar el formulario en su tamaño original.
Observa cómo se lanza en un Mac
¿Qué es lo que hace el procedimiento de Peltier?, pues ajustar
los valores de medidas que les explicaba anteriormente, para
que cuando se abra en un Mac, el texto y formulario se ajuste
22
al tamaño según las medidas que podríamos tener en
Windows, dando un tamaño proporcional en el Mac, para que
el UserForm sea legible a la vista del usuario final. Pueden leer
el artículo original donde Jon Peltier lo explica de mejor manera
:)
Si no tuviéramos la solución de Peltier, pues el UserForm en
los Mac se vería así
Hago la comparación con el UserForm que sí tiene aplicada la
solución de Peltier (izquierda) con el UserForm que no cuenta
con el ajuste de tamaño (derecha), que como puedes observar
el UserForm es muy pequeño. El UserForm aunque pequeño,
veo que sí es legible, pero al momento de lanzarlo, no se ve en
concordancia con la escala de las ventanas que manejamos en
Mac, lo cual puede provocar una sensación de desajuste.
En lo personal estoy muy agradecido con la solución de Jon
Peltier, ya que me ha sido de muchísima utilidad en mis desa-
rrollos que distribuyo en Mac.
Comentario Final
Hay que tomar muy en cuenta que la limitante principal para au-
tomatizar UserForms en un Mac, es precisamente eso, la caren-
cia de la posibilidad de insertar UserForms directamente en el
Editor VBA de un Mac, y es por ello que debemos hacer uso de
estas alternativas, desarrollando antes nuestros proyectos des-
de Windows, pensando en la posibilidad que puedan abrirse en
un Mac. Además, es de considerar que algunos elementos que
insertemos en Windows puede que no sean compatibles en
Mac, como la inserción de botones ActiveX que se insertan en
la interfaz de usuario en Windows, que en Mac no serán compa-
tibles, por lo que dichos botones tendrán que insertarse desde
el propio Mac. Y de esta forma iremos creando y equilibrando
un proyecto compatible para ambos sistemas operativos.
Muchas gracias por haberme acompañado en esta lectura, nos
veremos en una próxima publicación.
Otto J González
El Autor

Más contenido relacionado

Similar a Excel VBA Guía Rápida para principiantes.pdf

TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdfTALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdfAngelineBocanegra
 
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdfTALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdfAngelineBocanegra
 
Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)dmcbtcv
 
Introduccion a ms excel
Introduccion a ms excelIntroduccion a ms excel
Introduccion a ms excelPaito Moya
 
Microsoft Excel
Microsoft ExcelMicrosoft Excel
Microsoft Exceldmcbtcv
 
Introcuccion a ms excel 1
Introcuccion a ms excel 1Introcuccion a ms excel 1
Introcuccion a ms excel 1Paito Moya
 
Secretos Excel desde Cero.pdf
Secretos Excel desde Cero.pdfSecretos Excel desde Cero.pdf
Secretos Excel desde Cero.pdfedwincondori37
 
Programación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdf
Programación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdfProgramación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdf
Programación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdfJesusMartinez404024
 
Basicos De Office, Vianey Alba
Basicos De Office, Vianey AlbaBasicos De Office, Vianey Alba
Basicos De Office, Vianey Albagordis19
 
Evidenciadeconocimientos mecanic al2011-2
Evidenciadeconocimientos mecanic al2011-2Evidenciadeconocimientos mecanic al2011-2
Evidenciadeconocimientos mecanic al2011-2Nathanoj Jovans
 
Crea y gestiona tablas dinámicas en excel
Crea y gestiona tablas dinámicas en excelCrea y gestiona tablas dinámicas en excel
Crea y gestiona tablas dinámicas en excelvideo2brain_mx
 
Angel y cielo
Angel y cieloAngel y cielo
Angel y cielotelometo
 
Guia de aprendizaje word (1)
Guia de aprendizaje word (1)Guia de aprendizaje word (1)
Guia de aprendizaje word (1)joseferlin
 

Similar a Excel VBA Guía Rápida para principiantes.pdf (20)

TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdfTALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx (1).pdf
 
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdfTALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, TERCER PERIODO 10-2..docx.pdf
 
Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)
 
Macro
MacroMacro
Macro
 
Introduccion a ms excel
Introduccion a ms excelIntroduccion a ms excel
Introduccion a ms excel
 
Excel Avanzado
Excel AvanzadoExcel Avanzado
Excel Avanzado
 
Microsoft Excel
Microsoft ExcelMicrosoft Excel
Microsoft Excel
 
Introcuccion a ms excel 1
Introcuccion a ms excel 1Introcuccion a ms excel 1
Introcuccion a ms excel 1
 
Secretos Excel desde Cero.pdf
Secretos Excel desde Cero.pdfSecretos Excel desde Cero.pdf
Secretos Excel desde Cero.pdf
 
Programación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdf
Programación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdfProgramación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdf
Programación VBA con Excel - Manuel Ángel Torres Remon-FREELIBROS.ME.pdf
 
Basicos De Office, Vianey Alba
Basicos De Office, Vianey AlbaBasicos De Office, Vianey Alba
Basicos De Office, Vianey Alba
 
Evidenciadeconocimientos mecanic al2011-2
Evidenciadeconocimientos mecanic al2011-2Evidenciadeconocimientos mecanic al2011-2
Evidenciadeconocimientos mecanic al2011-2
 
Manual excel-vba-ing-1-civil
Manual excel-vba-ing-1-civilManual excel-vba-ing-1-civil
Manual excel-vba-ing-1-civil
 
Crea y gestiona tablas dinámicas en excel
Crea y gestiona tablas dinámicas en excelCrea y gestiona tablas dinámicas en excel
Crea y gestiona tablas dinámicas en excel
 
Angel y cielo
Angel y cieloAngel y cielo
Angel y cielo
 
Dever informatica
Dever informaticaDever informatica
Dever informatica
 
Guia de aprendizaje word (1)
Guia de aprendizaje word (1)Guia de aprendizaje word (1)
Guia de aprendizaje word (1)
 
Guia de aprendizaje word (1)
Guia de aprendizaje word (1)Guia de aprendizaje word (1)
Guia de aprendizaje word (1)
 
Guia de aprendizaje word
Guia de aprendizaje word Guia de aprendizaje word
Guia de aprendizaje word
 
Guia de aprendizaje word (1)
Guia de aprendizaje word (1)Guia de aprendizaje word (1)
Guia de aprendizaje word (1)
 

Último

Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 

Último (20)

Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 

Excel VBA Guía Rápida para principiantes.pdf

  • 1. Excel y Más por Otto J Gonzalez Primera edición Excel VBA Guía Rápida para principiantes Aprende a crear proyectos VBA compatibles que se ejecutan en Windows y en Mac OS X
  • 2. i © Excel y Más por Otto J González El objetivo de esta publicación es, dar una Guía Rápida para quienes desean aprender a programar en VBA para Excel, obteniendo las bases necesarias de una forma práctica y sobre todo inmediata, en cuatro sencillos capítulos. Soy MVP de Microsoft desde el año 2015, en la categoría Office Apps & Services. Puedes visitarme en https://www.youtube.com/ottojaviergonzalez en donde encontra- rás contenido audiovisual totalmente gratuito. "El MVP de Microsoft es un galardón que se otorga a todas aquellas perso- nas que con sus contribuciones ayudan y colaboran activamente en las comu- nidades técnicas del mundo sobre herramientas de Microsoft Excel VBA ❖ Guía Rápida Acerca del Autor Mi nombre es Otto Javier González, técnico pro- gramador de Sistemas informáticos. Mi trabajo se desarrolla dando soporte técnico a la pequeña y mediana empresa. En mi experiencia laboral, siempre ha estado presente Excel. Es como la matemática, que está presente en nuestro diario vivir. Yo soy de la opi- nión, que si la tecnología nos da las herramien- tas necesarias para optimizar nuestro trabajo… pues hay que aprovecharlas al máximo. OK... Muchos se preguntarán ¿Qué es Excel? Excel es una Aplicación que nos permite adminis- trar, calcular y analizar datos. Forma parte de Mi- crosoft Office, un conjunto de productos que combina varios tipos de aplicaciones, que nos ayudan a crear documentos, presentaciones, hojas de cálculo, bases de datos, ad- ministrar correo electrónico, entre otras cosas. La aplicación Microsoft Excel, es una herramienta que muchas veces ha sido subestima- da por los usuarios, desconociendo su potencial real y no saben que podrían hacer, des- de la tarea más sencilla, hasta los trabajos más complejos e inimaginables. Conocer el funcionamiento de esta aplicación, es fundamental para cada usuario, ya que hoy en día, la pequeña, mediana y gran empresa, cuentan con esta herramienta de Office. Cabe mencionar también, que los que conocen su potencial, no invierten en otros programas para administrar sus datos, porque saben lo que tienen en sus manos. Sin embargo no basta solo tener instalado este software, ya que si no sabemos cómo utilizarlo, no podremos sacarle todo el funcionamiento que nos puede llegar a ofrecer. ¡Entrénate conmigo, mejora tus habilidades y sácale provecho a esta útil herramienta! Otto J Gonzalez www.excelymas.com El Autor
  • 3. 1 Si eres un entusiasta y un amante de Microsoft Excel, pero que únicamente te has dedicado a utilizar la herramienta de una manera poco productiva, déjame decirte que no necesitas tener amplios conocimientos de programación para automatizar Excel según tus necesidades. Debes tomar en cuenta que Excel ya incorpora de forma nativa Visual Basic orientado a todas las aplicaciones que conforman la Suite Ofimática de Microsoft. Partiendo de ahí, ya tienes una herramienta muy importante e imprescindible para alguien que desea ser más productivo en su entorno laboral. Pasos iniciales
  • 4. 3 Lo primero que debes hacer es activar la pestaña Programador en la cinta de Opciones Si eres usuario de Windows Te diriges a Archivo > Opciones Luego te aparecerá la siguiente ventana en donde seleccionas Personalizar cinta de opciones y marcas la casilla de verifica- ción correspondiente a la pestaña Programador y finalizas dan- do clic en Aceptar Sección 1 Activar la pestaña Programador
  • 5. 4 Si eres usuario de Mac OS Te diriges a Preferencias Te aparecerá la siguiente ventana Seleccionas Barra de He- rramientas y cinta de op- ciones En la siguiente ventana encontraremos la opción para activar la pestaña Programador. Y finalizamos dando click en Guardar
  • 6. 5 Si eres usuario de Windows o Mac OS Una vez activa la pestaña Programador (1), en el extremo iz- quierdo encontrarás el botón que te permite ir al Editor de Vi- sual Basic para Aplicaciones (2) En Windows En Mac OS El entorno de Visual Basic o VBA es muy simple y fácil de en- tender cada una de las herramientas. En la parte superior izquierda del Editor, encontrarás el Explora- dor de proyectos(1), y en la parte inferior, la Ventana de Propie- dades (2) El área de trabajo(3) la tienes a tu derecha, que cuando agregues ob- jetos, ya sean Formularios de Usuarios, Módulos Estándar o Mó- dulos de Clase, ahí será en donde visualizarás el código de programa- ción o el diseño de los Formula- rios. Si bien es cierto el entorno de VBA es muy parecido en Windows y en MacOS, sin embargo, en Sistemas Mac, en la última versión de Excel, ya no es posible agregar Formularios de Usuarios como interfaz de entrada. Pero más adelante les mostraré una alternativa la cual nos per- mitirá agregar Formularios de usuario en la versión MacOS Si no tienes ningún conocimiento de programación previo, no te preocupes. Únicamente toma en consideración algunos aspec- Sección 2 Conociendo el entorno de VBA Dato interesante Visual Basic para Aplica- ciones fue implementa- do por primera vez en 1993 en la versión 5.0 de Excel, en Sistema Operativo Windows
  • 7. 6 tos y fundamentos para aprender a programar en Visual Basic para aplicaciones y verás que no es difícil. Digamos que esta guía viene siendo la receta perfecta para al- guien que desea iniciar en la programación y automatización de Excel en Visual Basic para Aplicaciones. ¿Y cuáles son los aspectos y fundamentos a los que me refie- ro? Pues, sencillamente son los siguientes: •Los Objetos de Excel •Declaración de Variables •Tipos de Datos •Asignación de Datos a las Variables •Ambitos de las Variables (Su alcance dentro del pro- yectoVBA •Procedimientos Formularios de Usuario o UserForms Nos permiten crear nuestros propios diseños para automati- zar las entradas de datos en una hoja de cálculo
  • 8. 2 No creas que cada uno de los puntos que mencioné en el capítulo anterior son difíciles de asimilar, ya que una vez vayas conociendo cada objeto, cada tipo de dato, cada ámbito, verás que la automatización en Excel es muy divertida. Aspectos y Fundamentos
  • 9. 8 Antes de iniciar una automatización en VBA, tendrás que cono- cer cuáles son los Objetos de Excel y de esa forma poder esta- blecer referencias a dichos Objetos mediante código de progra- mación VBA. ¿Y cuáles son los Objetos de Excel? • Application • La aplicación o instancia principal de Excel • Workbooks • Son los Libros de Trabajo dentro de la aplicación • Sheet • Son las Hojas de Cálculo dentro de un Libro de Trabajo • Range • Hace referencia a las celdas que contiene una Hoja de Cálculo Para una mejor comprensión, observa la siguiente imagen, que te dará una mejor idea del contexto de los Objetos de Excel Hay más objetos de Excel si hablamos del entorno VBA, ya que los objetos anteriormente mencionados, hacen re- ferencia a la interfaz de usuario. Que para automatizar una determinada ta- rea, es muy importante entender cómo funciona cada uno de ellos. Sección 1 Los Objetos de Excel Application Workbooks Sheets Range Importante En programación cada una de las lí- neas de código y objetos relaciona- dos, se establecen en inglés
  • 10. 9 Antes que nada ¿Qué es una Variable? En términos prácticos y sin tan- to tecnicismo, una variable es un espacio en memoria que re- servamos mediante la declara- ción de un nombre, asignándole el tipo de dato que vamos a al- macenar. En la mayoría de los casos las variables no son decla- radas por los desarrolladores, lo cual permite al sistema asignar- le por defecto, un tipo de dato del tipo Variant Es muy importante utilizar la sentencia Option Explicit para que el sistema nos obligue a declarar las variables y que les asigne- mos el tipo de dato que corresponde La palabra clave reserva- da para declarar una variable es Dim seguida del nombre de la variable, luego asignando el tipo de dato que utilicemos, sin olvi- dar anteponer al tipo de dato la palabra reservada As, según el ejemplo Dim NombreVariable As TipoDato Es de tomar en cuenta que las variables se declaran al princi- pio de un procedimiento. De esa forma, si necesitas cambiar al- gún tipo de dato, simplemente te diriges al inicio del procedi- miento y ahí estarán todas las variables que gestionan el proce- dimiento Sub Sección 2 Declaración de Variables Toma Nota Para dar seguimiento a las variables declaradas, es recomendable colocar- le un prefijo descriptivo que haga referencia al tipo de dato establecido
  • 11. 10 Dependiendo de las tareas que vamos a automatizar, así será la cantidad de variables a declarar y el tipo de datos a utilizar. Algunas veces tendremos que crear variables con el tipo de da- tos Variant, ya que dicha variable tendría que almacenar cade- nas de texto, valores numéricos enteros, largos o tipos de fe- chas. En esos casos pues declaramos variables de tipo Variant Entre los tipos de datos que podemos establecer, tenemos los siguientes: Currency, el cual podemos utilizar para los valores de mone- da. Date, para los datos de tipo fecha. Integer, para los números enteros. Long, para los valores numéricos de gran tamaño. String, utilizado para cadenas de texto. Los tipos de datos antes mencionados son los que con más fre- cuencia se utilizan, sin embargo, existen una gran cantidad de tipos de datos que podemos establecer. Es importante conocer y saber diferenciar los tipos de datos nu- méricos. Si bien es cierto tenemos los tipos numéricos Integer y Long, sin embargo existen otros tipos numéricos, que depen- diendo del tamaño de almacenamiento que necesitemos, así tendremos que implementarlos en nuestros desarrollos. Checa los siguientes gráficos para que tengas una mejor idea. El tipo Byte lo podemos utilizar para almacenar edades, ya que no llegaríamos a utilizar un espacio tan grande como el tipo de dato integer para almacenar una edad y por supuesto, sería contraproducente utilizar el tipo de dato Long para pretender almacenar datos de edades de personas. Sección 3 Asignación de Tipos de Datos Byte 0 a 255 8 Bits Integer -32768 a 32767 2 Bytes Long -2.147.483.648 a 2.147.483.647 4 Bytes
  • 12. 11 Cuando trabajamos con variables debemos tomar en cuenta su alcance dentro de un proyecto, ya que dependiendo el ámbito en el que las declaremos, así tendrá efecto en parte o en el pro- yecto completo. Ámbito a nivel de procedimiento: implica que la variable ten- drá su alcance en un procedimiento en particular. Ámbito a nivel de módulo: En este ámbito podremos declarar variables que alcancen a varios procedimientos que se encuen- tren en un módulo. De esta forma los valores asignados a di- chas variables, tendrán efecto en los procedimientos de donde se les llame, obteniendo los valores almacenados en ellas. Ámbito a nivel de proyecto: Dichas variables pueden declarar- se en un módulo, pero si las declaramos anteponiendo la pala- bra clave reservada Public, haremos que tengan un alcance glo- bal, es decir, a nivel de todo el proyecto. Sección 4 Ámbitos de las Variables Importante destacar Las variables se destru- yen cuando el procedi- miento finaliza. Por lo que después de ejecu- tada, dicho espacio en memoria se limpiará. Toma muy en cuanta Cuando declaras variable a nivel de módulo, podrás cam- biar la asignación de sus va- lores en tiempo de ejecución desde cualquier otro procedi- miento, obteniendo resulta- dos diferentes para cada uno de ellos
  • 13. 12 De tal manera que no importa si llamamos dichas variables des- de un procedimiento ubicado en otro módulo o en un User- Form, de forma inmediata obtendremos los valores almacena- dos, que si aún no tienen asignados valores, pues podremos asignarlos desde cualquier punto del proyecto también. Toma nota observa que prácticamente es un escenario parecido al ante- rior. Sin embargo debes notar que la declaración la hace- mos de forma pública para que su alcance tenga efecto en todo el proyecto, pudiendo hacer la llamada a dicha varia- ble desde cualquier otra ubica- ción, ya sea UserForm o un módulo distinto.
  • 14. 3 Hagamos un ejercicio práctico, insertando y automatizando un UserForm (Formulario de Usuario), lo cual nos permitirá enviar datos a una hoja de cálculo. Ejercicio Práctico
  • 15. 14 Insertando un UserForm En el editor de Visual Ba- sic, damos click en inser- tar y seleccionamos la opción UserForm, y el formulario se mostrará en modo de diseño para que le podamos insertar los objetos que necesite- mos para nuestra auto- matización, entre los cuales tenemos cuadros de texto, cuadros combinados, cua- dros de lista y botones de comando. Hay muchísimos objetos para cada necesidad, por lo que nuestros desarrollos tendrán muchas posibilidades. Debes tomar muy en cuenta que cada objeto o control que agregues, tendrás la posibilidad de cambiar sus propiedades según lo que necesites. Como por ejemplo cambiar la propie- dad Caption del UserForm para que en su barra de título se mues- tre “Registro de Clientes” De esta forma podrás cambiar detalles a la interfaz de usuario que estés desarrollando. Sección 1 UserForm en Windows
  • 16. 15 Muy bien, agreguemos un par de cajas de texto, dos etiquetas y un botón de comando con el propósito de enviar datos a una hoja de cálculo. Una vez tengamos nues- tro formulario diseñado a nuestro gusto, debemos aplicarle la programación correspondiente al botón de comando, por lo cual daremos doble click so- bre él, para ingresar a su evento click. Nuestro código quedaría de la siguiente forma. Damos click en el comando ejecutar y precedemos a registrar datos
  • 17. 16 Y ya haz programado tu primer UserForm que inserta datos en la Hoja1 de tu libro de trabajo. Que después de cada registro, te saldrá una caja de mensaje confirmando que los datos fueros registrados con éxito. Este código de programación te servirá de base para que pue- das realizar tus propias automatizaciones, ya que contiene los elementos claves, como el poder identificar la última fila en los registros para agregar uno nuevo Voy a hacer una breve explicación del código de programación. Se han declarado tres variables, de las cuales, dos son del tipo String y una del tipo Long. Con la variable UltFila identificamos el número de registros con- tenidos en el rango de datos, asignándole el conteo de las filas que conforman la región de dicho rango, para lo cual sumamos uno, para ubicarnos en la fila vacía y de esa forma poder escri- bir un nuevo registro. A la variable sMensaje que es de tipo String, se le asigna una cadena de texto para que notifique al usuario final que los da- tos han sido registrados con éxito. La variable la utilizamos al final del procedimiento, haciendo uso de la función MsgBox, la cual pide diferentes argumentos,
  • 18. 17 entre los cuales, los relevantes son: el Prompt o cadena de ca- racteres que se muestran de manera informativa; tenemos tam- bién el estilo de botones e ícono que denota el tipo de informa- ción a notificar; y el título, lo cual aparece en la parte superior del mensaje A la variable sTitulo que también es del tipo string, se le ha asig- nado el título que llevará la ventana del Msgbox Pudimos haber puesto directamente las cadenas de texto en el MsgBox, sin embargo, lo he realizado así con propósitos de aprendizaje y que veas cómo se declaran las variables, y se les asignan datos para luego mostrar sus resultados. Generalmente yo en lo personal, cuando creo proyectos grandes y manejo muchas cajas de mensa- je, lo que hago es declarar las va- riables correspondientes al men- saje y al título de forma pública, para hacer la llamada desde cualquier ubicación del proyecto, y simplemente obtener su re- sultado con la función MsgBox. Con este ejemplo tendrás una noción más clara y precisa de cómo gestionar información entre un UserForm y la hoja de cál- culo. Y ahora surge la gran pregunta... ¿Cómo podemos insertar UserForms en un Libro de Excel so- bre un Sistema Operativo Mac?
  • 19. 4 En este capítulo aprenderemos a crear proyectos que trabajen de forma compatible para Windows y Mac Compatibilidad Windows y Mac OS
  • 20. 19 Compatibilidad para Win OS y Mac OS Los UserForm o formularios de usuario nos permiten crear una interfaz de entrada para que el usuario final pueda interactuar entre el formulario y la hoja de cálculo. Como mencioné ante- riormente en la versión actual de Office para Mac, no tiene so- porte para insertar formularios de usuario en VBA, esto quedó vigente únicamente hasta la versión 11 de la suite ofimática pa- ra Mac. Sin embargo para los usuarios de Mac, deberán tener acceso a un PC con Windows o una máquina virtual para poder crear de- sarrollos que incluyan formularios en la versión de Office para Mac, de lo contrario tendrán que limitarse a realizar automatiza- ciones únicamente a nivel de módulos. Para crear un proyecto que incluya formularios en Mac, tendrán que crear el proyecto desde Windows, realizando ciertas imple- mentaciones y preparando los formularios para que sean com- patibles con un sistema operativo Mac. Yo se que eso implicará la necesidad de contar con más recursos, pero por el momento es la única alternativa. Al momento de insertar UserForms en Windows y cuando eje- cutamos dichos UserForms en un sistema Mac, el problema más notable es, la diferencia de resolución de pantalla entre las dos plataformas. En Mac son 96 ppp, donde cada punto repre- senta un pixel, mientras que en Windows, es de 72 ppp(puntos por pulgada) y cada punto representa un “punto”. Si no resolvemos y corregimos las diferencias de unidad de me- dida, cuando ejecutemos el UserForm en Mac, resultará un for- mulario más pequeño, por lo que su lectura será difícil para el usuario final. Jon Peltier nos resuelve este pro- blema de una forma muy práctica y precisa, mediante la inserción de cierto código de programación que cambia el tamaño de los formularios en Mac en concordancia con las me- didas en un sistema operativo Windows. Aquí te dejo el enlace de su publica- ción original https://peltiertech.com/userforms-for-mac-and-windows Sección 1 Insertar un UserForm “While Microsoft has substantially improved the VB editor on the Mac, you still can’t work with UserForms on the Mac. You have to build them into your file in Windows and them mo- ve the file to the Mac.” Jon Peltier
  • 21. 20 A continuación hagamos un ejemplo según la solución que nos ofrece Jon Peltier. En Windows insertaré un UserForm, pero antes agreguemos un módulo estándar en el cual colocaremos el código fuente que nos proporciona Jon Peltier. Una vez tengamos nuestro módulo agregado, podríamos cam- biarle de nombre, pero yo lo dejaré con el nombre de Módulo1. Procedo a agregarle el código de programación de Peltier y me quedaría de la siguiente manera. Este código lo pueden copiar y pegar desde el enlace que les compartí anteriormente.Agreguemos el UserForm, el cual lleva- rá las siguientes líneas en su evento Initialize Private Sub UserForm_Initialize() #If Mac Then ResizeUserForm Me #End If End Sub
  • 22. 21 Ingresamos al evento Initialize y quedaría de la siguiente mane- ra. En esta condición If, es- tablecemos que, si el Libro de trabajo es abierto en un Mac, que haga la llamada al pro- cedimiento que cambia el tamaño de un User- Form, en donde puedes notar que le pasamos como argumen- to el nombre del UserForm que estamos lanzando, en su defec- to Me. También es de notar que dicho procedimiento contempla un argumento opcional que permite establecer el porcentaje del tamaño del formulario, sin embargo prefiero dejarlo por defecto al porcentaje seleccionado por Peltier, que eso trabaja muy bien. Que si abres el libro de trabajo en Windows, como en el ejem- plo de Peltier, obviamente la condición If será ignorada para mostrar el formulario en su tamaño original. Observa cómo se lanza en un Mac ¿Qué es lo que hace el procedimiento de Peltier?, pues ajustar los valores de medidas que les explicaba anteriormente, para que cuando se abra en un Mac, el texto y formulario se ajuste
  • 23. 22 al tamaño según las medidas que podríamos tener en Windows, dando un tamaño proporcional en el Mac, para que el UserForm sea legible a la vista del usuario final. Pueden leer el artículo original donde Jon Peltier lo explica de mejor manera :) Si no tuviéramos la solución de Peltier, pues el UserForm en los Mac se vería así Hago la comparación con el UserForm que sí tiene aplicada la solución de Peltier (izquierda) con el UserForm que no cuenta con el ajuste de tamaño (derecha), que como puedes observar el UserForm es muy pequeño. El UserForm aunque pequeño, veo que sí es legible, pero al momento de lanzarlo, no se ve en concordancia con la escala de las ventanas que manejamos en Mac, lo cual puede provocar una sensación de desajuste. En lo personal estoy muy agradecido con la solución de Jon Peltier, ya que me ha sido de muchísima utilidad en mis desa- rrollos que distribuyo en Mac. Comentario Final Hay que tomar muy en cuenta que la limitante principal para au- tomatizar UserForms en un Mac, es precisamente eso, la caren- cia de la posibilidad de insertar UserForms directamente en el Editor VBA de un Mac, y es por ello que debemos hacer uso de estas alternativas, desarrollando antes nuestros proyectos des- de Windows, pensando en la posibilidad que puedan abrirse en un Mac. Además, es de considerar que algunos elementos que insertemos en Windows puede que no sean compatibles en Mac, como la inserción de botones ActiveX que se insertan en la interfaz de usuario en Windows, que en Mac no serán compa- tibles, por lo que dichos botones tendrán que insertarse desde el propio Mac. Y de esta forma iremos creando y equilibrando un proyecto compatible para ambos sistemas operativos. Muchas gracias por haberme acompañado en esta lectura, nos veremos en una próxima publicación. Otto J González El Autor