Welcome to Our Website

introducción a VBA en la Oficina

  • 08/14/2019
  • 25 minutos para leer
    • o
    • R
    • L
    • m
    • O
    • +4

Se enfrenta en un repetitivo limpieza de cincuenta tablas en Word? ¿Desea que un documento en particular solicite al usuario la entrada cuando se abra?, ¿Tiene dificultades para averiguar cómo obtener sus contactos de Microsoft Outlook en una hoja de cálculo de Microsoft Excel de manera eficiente?

Puede realizar estas tareas y lograr mucho más mediante el uso de Visual Basic para aplicaciones (VBA) para Office, un lenguaje de programación simple pero potente que puede usar para extender las aplicaciones de Office.

Este artículo es para usuarios experimentados de Office que desean aprender sobre VBA y que desean una idea de cómo la programación puede ayudarlos a personalizar Office.

La Suite ofimática de aplicaciones tiene un rico conjunto de características., Hay muchas maneras diferentes de crear, formatear y manipular documentos, correo electrónico, bases de datos, formularios, hojas de cálculo y presentaciones. El gran poder de la programación de VBA en Office es que casi todas las operaciones que puede realizar con un mouse, teclado o un cuadro de diálogo también se pueden realizar utilizando VBA. Además, si se puede hacer una vez con VBA, se puede hacer con la misma facilidad cien veces. (De hecho, la automatización de tareas repetitivas es uno de los usos más comunes de VBA en Office.,)

más allá del poder de scripting VBA para acelerar las tareas diarias, puede usar VBA para agregar nuevas funcionalidades a las aplicaciones de Office o para solicitar e interactuar con el usuario de sus documentos de maneras que sean específicas para sus necesidades empresariales. Por ejemplo, podría escribir algún código VBA que muestre un mensaje emergente que recuerde a los usuarios que guarden un documento en una unidad de red en particular la primera vez que intenten guardarlo.

Este artículo explora algunas de las razones principales para aprovechar el poder de la programación VBA., Explora el lenguaje VBA y las herramientas listas para usar que puede usar para trabajar con sus soluciones. Finalmente, incluye algunos consejos y maneras de evitar algunas frustraciones y errores comunes de programación.

Nota

¿está interesado en desarrollar soluciones que amplíen la experiencia de oficina a través de múltiples plataformas? Echa un vistazo al nuevo modelo de complementos de Office. Los complementos de Office ocupan poco espacio en comparación con los complementos y soluciones de VSTO, y puede crearlos utilizando casi cualquier tecnología de programación web, como HTML5, JavaScript, CSS3 y XML.,

cuándo usar VBA y por qué

hay varias razones principales Para considerar la programación de VBA en Office.

automatización y repetición

VBA es eficaz y eficiente cuando se trata de soluciones repetitivas para problemas de formato o corrección. Por ejemplo, ¿alguna vez ha cambiado el estilo del párrafo en la parte superior de cada página en Word? ¿Alguna vez ha tenido que reformatear varias tablas que se pegaron desde Excel en un documento de Word o un correo electrónico de Outlook? ¿Alguna vez ha tenido que hacer el mismo cambio en varios contactos de Outlook?,

Si tiene un cambio que tiene que hacer más de diez o veinte veces, puede valer la pena automatizarlo con VBA. Si es un cambio que tienes que hacer cientos de veces, sin duda vale la pena considerar. Casi cualquier cambio de formato o edición que pueda hacer a mano, se puede hacer en VBA.

extensiones para la interacción del usuario

hay momentos en los que desea alentar u obligar a los usuarios a interactuar con la aplicación o el documento de Office de una manera particular que no forma parte de la aplicación estándar., Por ejemplo, es posible que desee solicitar a los usuarios que realicen alguna acción en particular cuando abran, guarden o impriman un documento.

interacción entre aplicaciones de Office

¿necesita copiar todos sus contactos de Outlook a Word y luego formatearlos de alguna manera particular? O, ¿necesita mover datos de Excel a un conjunto de diapositivas de PowerPoint? A veces, copiar y pegar simplemente no hace lo que quieres que haga, o es demasiado lento., Puede usar la programación de VBA para interactuar con los detalles de dos o más aplicaciones de Office al mismo tiempo y luego modificar el contenido de una aplicación en función del contenido de otra.

hacer las cosas de otra manera

la programación VBA es una solución poderosa, pero no siempre es el enfoque óptimo. A veces tiene sentido usar otras formas de lograr tus objetivos.

La pregunta crítica es si hay una manera más fácil. Antes de comenzar un proyecto de VBA, considere las herramientas integradas y las funcionalidades estándar., Por ejemplo, si tiene una tarea de edición o diseño que requiere mucho tiempo, considere usar estilos o teclas de acelerador para resolver el problema. ¿Puede realizar la tarea una vez y luego usar CTRL+y (rehacer) para repetirla? ¿Puede crear un nuevo documento con el formato o la plantilla correctos y luego copiar el contenido en ese nuevo documento?

Las aplicaciones de Office son potentes; la solución que necesita ya puede estar ahí. Tómese un tiempo para aprender más sobre Office antes de saltar a la programación.

antes de comenzar un proyecto de VBA, asegúrese de tener tiempo para trabajar con VBA., La programación requiere enfoque y puede ser impredecible. Especialmente como principiante, nunca recurras a la programación a menos que tengas tiempo para trabajar con cuidado. Intentar escribir un «script rápido» para resolver un problema cuando se avecina una fecha límite puede resultar en una situación muy estresante. Si tiene prisa, es posible que desee utilizar métodos convencionales, incluso si son monótonos y repetitivos.

VBA Programming 101

usar código para hacer que las aplicaciones hagan cosas

podría pensar que escribir código es misterioso o difícil, pero los principios básicos usan el razonamiento diario y son bastante accesibles., Las aplicaciones de Microsoft Office se crean de tal manera que exponen cosas llamadas objetos que pueden recibir instrucciones, de la misma manera que un teléfono está diseñado con botones que se utilizan para interactuar con el teléfono. Cuando pulsa un botón, el teléfono reconoce la instrucción e incluye el número correspondiente en la secuencia que está marcando. En la programación, interactúa con la aplicación enviando instrucciones a varios objetos de la aplicación. Estos objetos son expansivos, pero tienen sus límites., Solo pueden hacer lo que están diseñados para hacer, y solo harán lo que ustedes les ordenen que hagan.

por ejemplo, considere al usuario que abre un documento en Word, realiza algunos cambios, guarda el documento y luego lo cierra. En el mundo de la programación VBA, Word expone un objeto de documento. Al usar el código VBA, puede indicar al objeto del documento que haga cosas como abrir, guardar o cerrar.

la siguiente sección analiza cómo se organizan y describen los objetos.,

el modelo de objetos

Los desarrolladores organizan los objetos de programación en una jerarquía, y esa jerarquía se denomina modelo de objetos de la aplicación. Word, por ejemplo, tiene un objeto de aplicación de nivel superior que contiene un objeto Document. El objeto documento contiene objetos de párrafo, etc. Los modelos de objetos reflejan aproximadamente lo que se ve en la interfaz de usuario. Son un mapa conceptual de la aplicación y sus capacidades.

La definición de un objeto se llama clase, por lo que es posible que estos dos términos se usen indistintamente., Técnicamente, una clase es la descripción o plantilla que se utiliza para crear, o instanciar, un objeto.

una vez que existe un objeto, puede manipularlo estableciendo sus propiedades y llamando a sus métodos. Si piensa en el objeto como un sustantivo, las propiedades son los adjetivos que describen el sustantivo y los métodos son los verbos que animan el sustantivo. Cambiar una propiedad cambia cierta calidad de apariencia o comportamiento del objeto. Llamar a uno de los métodos objeto hace que el objeto realice alguna acción.,

el código VBA en este artículo se ejecuta contra una aplicación Open Office donde muchos de los objetos que manipula el código ya están en funcionamiento; por ejemplo, la aplicación en sí, la hoja de cálculo en Excel, el documento en Word, la presentación en PowerPoint, el explorador y los objetos de carpeta en Outlook. Una vez que conozca el diseño básico del modelo de objetos y algunas propiedades clave de la aplicación que dan acceso a su estado actual, puede comenzar a extender y manipular esa aplicación de Office con VBA en Office.,

Methods

en Word, por ejemplo, puede cambiar las propiedades e invocar los métodos del documento de Word actual utilizando la propiedad ActiveDocument del objeto Application. Esta propiedad ActiveDocument devuelve una referencia al objeto Document que está activo actualmente en la aplicación Word. «Devuelve una referencia a «Significa» le da acceso a.»

El siguiente código hace exactamente lo que dice, es decir, guarda el documento activo en la aplicación.,

Application.ActiveDocument.Save

lea el código de izquierda a derecha, » en esta aplicación, con el documento referenciado por ActiveDocument, invoque el método Save.»Tenga en cuenta que guardar es la forma más simple de método; no requiere ninguna instrucción detallada de usted. Le indica a un objeto de documento que guarde y no requiere más información de su parte.

si un método requiere más información, esos detalles se llaman parámetros. El siguiente código ejecuta el método SaveAs, que requiere un nuevo nombre para el archivo.,

Application.ActiveDocument.SaveAs ("New Document Name.docx")

Los valores que aparecen entre paréntesis después del nombre de un método son los parámetros. Aquí, el nuevo nombre para el archivo es un parámetro para el método SaveAs.

Properties

se utiliza la misma sintaxis para establecer una propiedad que se utiliza para leer una propiedad. El siguiente código ejecuta un método para seleccionar la celda A1 en Excel y luego establecer una propiedad para poner algo en esa celda.

 Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"

el primer desafío en la programación VBA es tener una idea del modelo de objetos de cada aplicación de Office y leer la sintaxis de objetos, métodos y propiedades., Los modelos de objetos son similares en todas las aplicaciones de Office, pero cada uno es específico para el tipo de documentos y objetos que manipula.

en la primera línea del fragmento de código, está el objeto de la aplicación, Excel Esta vez, y luego la hoja de trabajo activa, que proporciona acceso a la hoja de trabajo activa. Después de eso es un término no tan familiar, rango, que significa » definir un rango de celdas de esta manera.»El código indica a Range que se cree solo con A1 como su conjunto definido de celdas. En otras palabras, la primera línea de código define un objeto, el rango, y ejecuta un método contra él para seleccionarlo., El resultado se almacena automáticamente en otra propiedad de la aplicación llamada selección.

la segunda línea de código establece la propiedad Value De Selection en el texto «Hello World», y ese valor aparece en la celda A1.

el código VBA más simple que escriba simplemente puede obtener acceso a los objetos en la aplicación de Office con la que está trabajando y establecer propiedades. Por ejemplo, puede obtener acceso a las filas de una tabla en Word y cambiar su formato en su script de VBA.,

eso suena simple, pero puede ser increíblemente útil; una vez que puedes escribir ese código, puedes aprovechar todo el poder de la programación para hacer esos mismos cambios en varias tablas o documentos, o hacerlos de acuerdo con alguna lógica o condición. Para una computadora, hacer 1000 cambios no es diferente de hacer 10, por lo que hay una economía de escala aquí con documentos y problemas más grandes, y ahí es donde VBA realmente puede brillar y ahorrarle tiempo.,

Macros y el Editor Visual Basic

ahora que sabe algo sobre cómo las aplicaciones de Office exponen sus modelos de objetos, probablemente esté ansioso por intentar llamar a métodos de objetos, establecer propiedades de objetos y responder a eventos de objetos. Para hacerlo, debe escribir su código en un lugar y de una manera que Office pueda entender; por lo general, utilizando el editor de Visual Basic. Aunque está instalado de forma predeterminada, muchos usuarios no saben que está disponible hasta que se habilita en la cinta.

todas las aplicaciones de Office utilizan la cinta., Una pestaña en la cinta es la pestaña Desarrollador, donde se accede al editor de Visual Basic y otras herramientas de desarrollador. Como Office no muestra la pestaña Desarrollador de forma predeterminada, debe habilitarla mediante el siguiente procedimiento:

para habilitar la pestaña Desarrollador

  1. en la pestaña Archivo, elija opciones para abrir el cuadro de diálogo Opciones.

  2. elija Personalizar cinta en el lado izquierdo del cuadro de diálogo.

  3. En elegir comandos en el lado izquierdo del cuadro de diálogo, seleccione Comandos populares.,

  4. en Personalizar la cinta en el lado derecho del cuadro de diálogo, seleccione pestañas principales en el cuadro de lista desplegable, y luego seleccione el desarrollador casilla de verificación.

  5. elija OK.

Nota

en Office 2007, mostró la pestaña Desarrollador seleccionando el botón Office, eligiendo opciones y luego seleccionando la casilla Mostrar pestaña Desarrollador en cinta en la categoría Popular del cuadro de diálogo Opciones.

después de habilitar la pestaña Desarrollador, es fácil encontrar los botones Visual Basic y Macros.

Figura 1., Botones en la pestaña Desarrollador

problemas de seguridad

para proteger a los usuarios de Office contra virus y código de macro peligroso, no puede guardar código de macro en un documento de Office estándar que utilice una extensión de archivo estándar. En su lugar, debe guardar el código en un archivo con una extensión especial. Por ejemplo, no puede guardar macros en un documento de Word estándar con a.extensión docx; en su lugar, debe usar un documento especial habilitado para macros de Word con a .extensión docm.

Cuando se abre un .,archivo docm, Office security aún podría evitar que las macros en el documento se ejecuten, con o sin avisarle. Examine la configuración y las opciones del Centro de confianza en todas las aplicaciones de Office. La configuración predeterminada deshabilita la ejecución de la macro, pero le advierte que las macros se han deshabilitado y le da la opción de volver a activarlas para ese documento.

puede designar carpetas específicas donde se pueden ejecutar macros mediante la creación de ubicaciones de confianza, documentos de confianza o editores de confianza., La opción más portátil es utilizar editores de confianza, que funciona con documentos firmados digitalmente que usted distribuye. Para obtener más información acerca de la configuración de seguridad en una aplicación de Office en particular, abra el cuadro de diálogo Opciones, elija Centro de confianza y, a continuación, seleccione Configuración del Centro de confianza.

Nota

algunas aplicaciones de Office, como Outlook, guardan macros de forma predeterminada en una plantilla maestra en su equipo local., Aunque esa estrategia reduce los problemas de seguridad locales en su propio equipo cuando ejecuta sus propias macros, requiere una estrategia de implementación si desea distribuir su macro.

grabar una macro

cuando elige el botón Macro en la pestaña Desarrollador, abre el cuadro de diálogo Macros, que le brinda acceso a subrutinas o macros de VBA a las que puede acceder desde un documento o aplicación en particular. El botón Visual Basic abre el Editor Visual Basic, donde crea y edita código VBA.,

otro botón en la pestaña Desarrollador en Word y Excel es el botón Grabar Macro, que genera automáticamente código VBA que puede reproducir las acciones que realiza en la aplicación. Record Macro es una excelente herramienta que puede usar para obtener más información sobre VBA. La lectura del código generado puede darle una idea de VBA y proporcionar un puente estable entre su conocimiento de Office como usuario y su conocimiento como programador., La única advertencia es que el código generado puede ser confuso porque el editor de macros debe hacer algunas suposiciones sobre sus intenciones, y esas suposiciones no son necesariamente precisas.

para grabar una macro

  1. abra Excel en un nuevo libro de trabajo y elija la pestaña Desarrollador en la cinta de opciones. Elija Grabar Macro y acepte todas las configuraciones predeterminadas en el cuadro de diálogo Grabar Macro, incluido Macro1 como nombre de la macro y este libro de trabajo como ubicación.

  2. elija OK para comenzar a grabar la macro. Observe cómo cambia el texto del botón para detener la grabación., Elija ese botón en el instante en que complete las acciones que desea grabar.

  3. elija la celda B1 y escriba la primera cadena clásica del programador: Hello World. Deje de escribir y mire el botón Detener grabación; está gris porque Excel está esperando a que termine de escribir el valor en la celda.

  4. elija la celda B2 Para completar la acción en la celda B1 y, a continuación, elija Detener grabación.

  5. elija Macros en la pestaña Desarrollador, seleccione Macro1 si no está seleccionada y, a continuación, elija Editar para ver el código de Macro1 en el editor de Visual Basic.,

Figura 2. Código de Macro en Visual Basic Editor

mirando el código

la macro que ha creado debería ser similar al siguiente código.

Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub

tenga en cuenta las similitudes con el fragmento de código anterior que seleccionó el texto en la celda A1, y las diferencias. En este código, se selecciona la celda B1, y luego se aplica la cadena «Hola mundo» a la celda que se ha activado. Las comillas alrededor del texto especifican un valor de cadena en lugar de un valor numérico.,

¿recuerda cómo eligió la celda B2 para mostrar nuevamente el botón Detener grabación? Esa acción también se muestra como una línea de código. El grabador de macros registra cada pulsación de tecla.

las líneas de código que comienzan con un apóstrofo y coloreadas de verde por el editor son comentarios que explican el código o le recuerdan a usted y a otros programadores el propósito del código. VBA ignora cualquier línea, o porción de una línea, que comience con una comilla simple. Escribir comentarios claros y apropiados en su código es un tema importante, pero esa discusión está fuera del alcance de este artículo., Las referencias posteriores a este código en el artículo no incluyen esas cuatro líneas de comentario.

Cuando el registrador de macros genera el código, utiliza un algoritmo complejo para determinar los métodos y las propiedades que desea. Si no reconoce una propiedad determinada, hay muchos recursos disponibles para ayudarlo. Por ejemplo, en la macro que grabó, el registrador de macro generó código que se refiere a la propiedad FormulaR1C1. ¿No estás seguro de lo que significa?

Nota

tenga en cuenta que el objeto de aplicación está implícito en todas las macros de VBA., El código que ha grabado funciona con la aplicación. al principio de cada línea.

usando la ayuda del desarrollador

seleccione FormulaR1C1 en la macro grabada y presione F1. El sistema de ayuda ejecuta una búsqueda rápida, determina que los temas apropiados están en la sección desarrollador de Excel de la ayuda de Excel y enumera la propiedad FormulaR1C1. Puede elegir el enlace para leer más sobre la propiedad, pero antes de hacerlo, tenga en cuenta el enlace de referencia del modelo de objeto de Excel cerca de la parte inferior de la ventana., Elija el enlace para ver una larga lista de objetos que Excel utiliza en su modelo de objetos para describir las hojas de trabajo y sus componentes.

elija cualquiera de ellas para ver las propiedades y métodos que se aplican a ese objeto en particular, junto con referencias cruzadas a diferentes opciones relacionadas. Muchas entradas de ayuda también tienen breves ejemplos de código que pueden ayudarlo. Por ejemplo, puede seguir los enlaces en el objeto bordes para ver cómo establecer un borde en VBA.

Worksheets(1).Range("A1").Borders.LineStyle = xlDouble

editar el código

el código de bordes se ve diferente de la macro registrada., Una cosa que puede ser confusa con un modelo de objetos es que hay más de una manera de abordar cualquier objeto dado, la celda A1 en este ejemplo.

a veces La mejor manera de aprender a programar es hacer cambios menores en algún código de trabajo y ver qué sucede como resultado. Pruébalo ahora. Abra Macro1 en el editor de Visual Basic y cambie el código a lo siguiente.

Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub

Tip

Use copiar y pegar tanto como sea posible cuando trabaje con código para evitar errores de escritura.,

no es necesario guardar el código para probarlo, así que regrese al documento de Excel, elija Macros en la pestaña Desarrollador, elija Macro1 y luego elija Ejecutar. La celda A1 ahora contiene el texto Wow! y tiene un borde de doble línea a su alrededor.

Figura 3. Resultados de su primera macro

simplemente combinó la grabación de macro, la lectura de la documentación del modelo de objetos y la programación simple para hacer un programa VBA que haga algo. ¡Felicitaciones!

no funcionó? Siga leyendo Para sugerencias de depuración en VBA.,

consejos y trucos de programación

comience con ejemplos

la comunidad de VBA es muy grande; una búsqueda en la Web casi siempre puede producir un ejemplo de código VBA que hace algo similar a lo que desea hacer. Si no puede encontrar un buen ejemplo, intente dividir la tarea en unidades más pequeñas y busque en cada una de ellas, o intente pensar en un problema más común, pero similar. Comenzar con un ejemplo puede ahorrarle horas de tiempo.

eso no significa que el código libre y bien pensado esté en la Web esperando a que vengas., De hecho, algunos de los códigos que encuentre pueden tener errores o errores. La idea es que los ejemplos que encuentre en línea o en la documentación de VBA le den una ventaja. Recuerde que el aprendizaje de la programación requiere tiempo y pensamiento. Antes de tener una gran prisa por usar otra solución para resolver su problema, pregúntese si VBA es la opción correcta para este problema.

hacer un problema más simple

La programación puede volverse compleja rápidamente. Es crítico, especialmente como principiante, que descomponga el problema en las unidades lógicas más pequeñas posibles, luego escriba y pruebe cada pieza de forma aislada., Si tiene demasiado código frente a usted y se confunde o se confunde, deténgase y deje el problema a un lado. Cuando vuelva al problema, copie una pequeña parte del problema en un nuevo módulo, resuelva esa parte, haga funcionar el código y pruébelo para asegurarse de que funcione. Luego pasa a la siguiente parte.

errores y depuración

hay dos tipos principales de errores de programación: errores de sintaxis, que violan las reglas gramaticales del lenguaje de programación, y errores de tiempo de ejecución, que parecen sintácticamente correctos, pero fallan cuando VBA intenta ejecutar el código.,

aunque pueden ser frustrantes de corregir, los errores de sintaxis son fáciles de detectar; el editor de Visual Basic emite un pitido y parpadea si escribe un error de sintaxis en su código.

por ejemplo, los valores de cadena deben estar rodeados por comillas dobles en VBA. Para averiguar qué sucede cuando usas comillas simples, regresa al editor de Visual Basic y reemplaza el «Wow!»cadena en el ejemplo de código con’ Wow!'(es decir, la palabra Wow encerrada entre comillas simples). Si elige la siguiente línea, el editor de Visual Basic reacciona., El error «Compile error: Expected: expression» no es tan útil, pero la línea que genera el error se vuelve roja para indicarle que tiene un error de sintaxis en esa línea y como resultado, este programa no se ejecutará.

elija OK y cambie el texto a » Wow!».

Los errores de tiempo de ejecución son más difíciles de detectar porque la sintaxis de programación parece correcta, pero el código falla cuando VBA intenta ejecutarlo.,

por ejemplo, abra el editor de Visual Basic y cambie el nombre de la propiedad Value A ValueX en su Macro, introduciendo deliberadamente un error de tiempo de ejecución ya que el objeto Range no tiene una propiedad llamada ValueX. Vuelva al documento de Excel, abra el cuadro de diálogo Macros y ejecute Macro1 nuevamente. Debería ver un cuadro de mensaje de Visual Basic que explica el error en tiempo de ejecución con el texto, » Object doesn’t support this property of method.»Aunque el texto es claro, elija Debug para obtener más información.,

Cuando regresa al editor de Visual Basic, está en un modo de depuración especial que usa un resaltado amarillo para mostrarle la línea de código que falló. Como era de esperar, se resalta la línea que incluye la propiedad ValueX.

Puede realizar cambios en el código de VBA que se está ejecutando, así que cambie ValueX de nuevo a Value y elija el pequeño botón verde play debajo del menú de depuración. El programa debe ejecutarse normalmente de nuevo.

es una buena idea aprender a usar el depurador más deliberadamente para programas más largos y complejos., Como mínimo, aprenda cómo establecer puntos de interrupción para detener la ejecución en un punto en el que desee echar un vistazo al código, Cómo agregar relojes para ver los valores de diferentes variables y propiedades a medida que se ejecuta el código y cómo pasar por el código LÍNEA por línea. Todas estas opciones están disponibles en el menú de depuración y los usuarios serios del depurador suelen memorizar los atajos de teclado que lo acompañan.,

utilizando materiales de referencia Bien

para abrir la referencia de desarrollador que está integrada en la ayuda de Office, abra la referencia de ayuda desde cualquier aplicación de Office seleccionando el signo de interrogación en la cinta de opciones o pulsando F1. Luego, a la derecha del botón de búsqueda, elija la flecha desplegable para filtrar el contenido. Elija Referencia De Desarrollador. Si no ve la tabla de contenido en el panel izquierdo, elija el icono del pequeño libro para abrirla y, a continuación, expanda la referencia del modelo de objeto desde allí.

Figura 5., El filtrado en la ayuda para desarrolladores se aplica a todas las aplicaciones de Office

El tiempo dedicado a navegar por la referencia del modelo de objeto vale la pena. Después de comprender los conceptos básicos de la sintaxis de VBA y el modelo de objetos para la aplicación de Office con la que está trabajando, avanza de las conjeturas a la programación metódica.

Por supuesto, el Centro de desarrolladores de Microsoft Office es un excelente portal para artículos, consejos e información de la comunidad.,

buscar en foros y grupos

todos los programadores se quedan atascados a veces, incluso después de leer cada artículo de referencia que pueden encontrar y perder el sueño por la noche pensando en diferentes formas de resolver un problema. Afortunadamente, Internet ha fomentado una comunidad de desarrolladores que se ayudan mutuamente a resolver problemas de programación.

cualquier búsqueda en la Web de» office developer forum » revela varios grupos de discusión. Puede buscar en «desarrollo de oficina» o una descripción de su problema para descubrir foros, publicaciones de blog y artículos también.,

si ha hecho todo lo posible para resolver un problema, no tenga miedo de publicar su pregunta en un foro de desarrolladores. Estos foros dan la bienvenida a las publicaciones de los programadores más nuevos y muchos de los desarrolladores experimentados están encantados de ayudar.

los siguientes son algunos puntos de etiqueta a seguir cuando publicas en un foro de desarrolladores:

  • antes de publicar, busca en el sitio preguntas frecuentes o pautas que los miembros quieran que sigas. Asegúrate de publicar contenido que sea consistente con esas pautas y en la sección correcta del foro.,

  • incluya un ejemplo de código claro y completo, y considere editar su código para aclararlo para otros si es parte de una sección más larga de código.

  • describa su problema de manera clara y concisa, y resuma cualquier paso que haya tomado para resolver el problema. Tómate el tiempo para escribir tu post tan bien como puedas, especialmente si estás nervioso o con prisa. Presente la situación de una manera que tenga sentido para los lectores la primera vez que lean la declaración del problema.

  • sé cortés y expresa tu agradecimiento.,

yendo más allá con la programación

aunque este artículo es corto y solo rasca la superficie de VBA y programación, es con suerte suficiente para comenzar.

esta sección analiza brevemente algunos temas clave más.

Variables

en los ejemplos simples de este artículo manipuló objetos que la aplicación ya había creado. Es posible que desee crear sus propios objetos para almacenar valores o referencias a otros objetos para su uso temporal en la aplicación. Estas se llaman variables.,

para usar una variable en VBA, debe decirle a VBA qué tipo de objeto representa la variable mediante el uso de la instrucción Dim. A continuación, establece su valor y lo utiliza para establecer otras variables o propiedades.

 Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable

ramificación y bucle

Los programas simples de este artículo ejecutan una línea a la vez, de arriba hacia abajo. El poder real en la programación proviene de las opciones que tiene para determinar qué líneas de código ejecutar, en función de una o más condiciones que especifique. Puede ampliar esas capacidades aún más cuando puede repetir una operación muchas veces., Por ejemplo, el siguiente código extiende Macro1.

escriba o pegue el código en el editor de Visual Basic y luego ejecútelo. Siga las instrucciones en el cuadro de mensaje que aparece y cambie el texto en la celda A1 de Wow! ¡a sí! y ejecutarlo de nuevo para ver el poder del bucle. Este fragmento de código muestra variables, ramificaciones y bucles. Léalo cuidadosamente después de verlo en acción e intente determinar qué sucede a medida que se ejecuta cada línea.

todas mis aplicaciones de Office: código de ejemplo

Aquí hay algunos scripts para probar; cada uno resuelve un problema de oficina del mundo real.,

crear un correo electrónico en Outlook

Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub

tenga en cuenta que hay situaciones en las que es posible que desee automatizar el correo electrónico en Outlook; también puede usar plantillas.

eliminar filas vacías en una hoja de cálculo de Excel

tenga en cuenta que puede seleccionar una columna de celdas y ejecutar esta macro para eliminar todas las filas de la columna seleccionada que tengan una celda en blanco.

eliminar cuadros de texto vacíos en PowerPoint

Sub RemoveEmptyTextBoxes() Dim SlideObj As Slide Dim ShapeObj As Shape Dim ShapeIndex As Integer For Each SlideObj In ActivePresentation.Slides For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1 Set ShapeObj = SlideObj.Shapes(ShapeIndex) If ShapeObj.Type = msoTextBox Then If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then ShapeObj.Delete End If End If Next ShapeIndex Next SlideObjEnd Sub

tenga en cuenta que este código recorre todas las diapositivas y elimina todos los cuadros de texto que no tienen texto., La variable count disminuye en lugar de incrementa porque cada vez que el código elimina un objeto, lo elimina de la colección, lo que reduce el recuento.

copie un contacto de Outlook a Word

Sub CopyCurrentContact() Dim OutlookObj As Object Dim InspectorObj As Object Dim ItemObj As Object Set OutlookObj = CreateObject("Outlook.Application") Set InspectorObj = OutlookObj.ActiveInspector Set ItemObj = InspectorObj.CurrentItem Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)End Sub

tenga en cuenta que este código copia el contacto actualmente abierto en Outlook en el documento abierto de Word. Este código solo funciona si hay un contacto actualmente abierto para inspección en Outlook.

soporte y comentarios

¿tiene preguntas o comentarios sobre Office VBA o esta documentación?, Consulte Soporte y comentarios de Office VBA para obtener orientación sobre las formas en que puede recibir soporte y proporcionar comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *