Más allá con VBA
Esto es solo el principio
Tras haber leído todos los capítulos hasta aquí, está empezando a comprender todas las posibilidades que tiene a su disposición. Sin embargo, esto es solo el comienzo del aprendizaje de VBA y la forma básica de cómo utilizarlo para permitir ahorrar tiempo a sus usuarios.
Estas no son las únicas cosas que se pueden aprender; hay otras más adelante.
Este libro abarca temas que le hacen descubrir los fundamentos de la programación y pronto, con la experiencia, se sentirá tentado de ir más allá. Para que siga adelante, aquí tiene algunas ideas de temas sobre los que puede seguir aprendiendo.
Módulos de clase
Ya ha visto en los capítulos Manipular celdas de Excel y Manipular hojas de Excel la posibilidad de trabajar con objetos que tienen distinto grado de sofisticación, y de utilizar sus propiedades, métodos e incluso sus eventos.
Ha escrito sus ejercicios en módulos, ha escrito funciones y procedimientos en formularios de usuario. El tema que deliberadamente no se ha tratado hasta ahora, considerado de un nivel más avanzado, se refiere a los módulos de clase.
Definición básica de un módulo de clase
Un módulo de clase es un módulo que le permite crear sus propios objetos. Usted almacena en él las variables que desee, permitiendo al resto de sus programas acceder a sus propiedades, pero también a sus métodos e incluso a sus eventos.
Así que puede crear su propio tipo de datos.
Para despertar su interés, he aquí un ejemplo.
Agregar un módulo de clase
Para agregar un módulo de clase a su proyecto, haga clic en el menú Insertar - Módulo de clase.
Aparecerá en la carpeta Módulos de clase. Puede darle el nombre que quiera. Este nombre se utilizará, después, para crear el objeto.
![images/cap22_img_01.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap22_img_01.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
En este ejemplo, el módulo de clase se llamará clsExpediente.
Una vez creado el módulo de clase, puede añadirle lo que necesite.
Variables
Puede almacenar variables en un módulo de clase, que serán visibles (Public) o no (Private) desde el programa que lo llame. Los tipos de datos son idénticos a los vistos en este libro.
Private strExpediente As String
Private dtFechaApertura As Date
Private rngCeldas As Range
Ejemplo 1: declarar variables privadas en un módulo de clase
Propiedades
Tal y como ha descubierto en este libro...
Continuar progresando en el control de Excel
Este libro le ha permitido descubrir ciertas características de Excel que puede manipular con VBA. Estas no son las únicas funcionalidades que quedan por descubrir. A través de la grabadora de macros, puede aprender algunas de ellas por su cuenta.
Tablas dinámicas
Las tablas dinámicas le permiten realizar cálculos sobre conjuntos de datos. Agrupando la información y organizándola según sus propios criterios, podrá ver, por ejemplo, totales por categoría, resultados por trimestres y mucho más, todo ello de forma muy sencilla.
![images/cap22_img_05.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap22_img_05.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Es menos frecuente tener la necesidad de generarlas mediante programación, pero, aun así, se puede hacer.
El tipo de objeto VBA que representa una tabla dinámica es PivotTable. También hace referencia a PivotField para sus campos.
La función de Excel IMPORTARDATOSDINAMICOS corresponde a GetPivotData en VBA.
Formatos condicionales
Cuando se trabaja con conjuntos de datos y se desea resaltar los números que destacan o cumplen ciertos criterios, el formato condicional es una herramienta especialmente eficaz. Puede, sin utilizar inicialmente código VBA, jugar con el color del texto, el color del fondo de la celda o incluso con los iconos que estarían visibles.
En VBA, utilizando FormatConditions, podrá manipular las condiciones y los formatos directamente...
Controlar una aplicación que no sea Excel
Cuando empezó a programar en VBA con este libro, solo utilizamos objetos de Excel.
Debe saber que el lenguaje VBA también puede utilizarse con otras aplicaciones de Microsoft, como Access, Word, Outlook o PowerPoint. Por lo tanto, puede utilizar la base de conocimientos que ha adquirido para considerar trabajar con estas otras herramientas.
Al añadir las bibliotecas dedicadas, puede manipular documentos de Word o correos electrónicos creados con Outlook. A continuación, se presentan algunos códigos de muestra para controlar dichas aplicaciones.
Crear y escribir en un documento de Word
Agregando la librería Microsoft Word 16.0 Object Library, se pueden manipular objetos de Word.
Para añadir una biblioteca, utilice el menú Herramientas de VBE y seleccione Referencias. Las bibliotecas aparecen en orden alfabético: marque las que quiera añadir a su proyecto y desmarque las que no necesite.
El siguiente programa abrirá la aplicación Word, creará un nuevo documento y escribirá Buenos días en él.
Option Explicit
Public Sub ControlarWord()
'Declaraciones
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Set wdApp = New Word.Application
With wdApp
.Visible...