Introducción a VBA en Excel 2010

March 18, 2018 | Author: Jina Acosta | Category: Microsoft Excel, Visual Basic For Applications, Spreadsheet, Macro (Computer Science), Basic


Comments



Description

Introducción a VBA en Excel 2010Office 2010 Personas que lo han encontrado útil: 69 de 83 - Valorar este tema Resumen: este artículo presenta, a modo de introducción, Visual Basic para Aplicaciones (VBA) en Excel 2010 y está dirigido a usuarios avanzados de Excel que aún no son programadores. En este tema se incluye información general sobre el lenguaje de VBA, instrucciones para obtener acceso a VBA en Excel 2010, la explicación detallada de una solución para un problema real de programación de VBA en Excel y sugerencias sobre programación y depuración. Ben Chinowsky, SDK Bridge Noviembre de 2009 Se aplica a: Microsoft Excel 2010 Contenido  ¿Por qué usar VBA en Excel 2010?        Programación de VBA 101 Macros y el Editor de Visual Basic Un ejemplo real Modificación del código grabado Más cosas que se pueden hacer con VBA ¿Qué sigue? Recursos adicionales ¿Por qué usar VBA en Excel 2010? Microsoft Excel 2010 es una herramienta muy eficaz que se puede usar para manipular, analizar y presentar datos. A veces, no obstante, a pesar del amplio conjunto de características que ofrece la interfaz de usuario (UI) estándar de Excel, es posible que se desee encontrar una manera más fácil de realizar una tarea repetitiva y común, o de realizar alguna tarea no incluida en la interfaz de usuario. Afortunadamente, las aplicaciones de Office, como Excel, tienen Visual Basic para Aplicaciones (VBA), un lenguaje de programación que brinda la posibilidad de ampliar dichas aplicaciones. VBA funciona mediante la ejecución de macros , procedimientos paso a paso escritos en Visual Basic. Aprender a programar podría parecer intimidante, pero con algo de paciencia y algunos desde visualización de datos hasta prototipos de software. VBA no es útil solo para tareas repetitivas. es probable que prefiera no realizar estas tareas de forma manual. suponga que tiene docenas de libros con docenas de hojas de cálculo y necesita realizar cambios en cada uno de ellos. Los objetos. Programación de VBA 101 Uso de código para hacer que las aplicaciones realicen las tareas Quizá crea que escribir código es algo misterioso o complicado. En ambos casos. realice una búsqueda exhaustiva en Ayuda y recursos en línea para asegurarse de que no existe una manera más simple. Por ejemplo. Antes de acudir a una solución de VBA. Sheet y Chart. el modelo de objetos de Excel contiene los objetos Application. De hecho. entre muchos otros. elegir el mejor tipo de gráfico para mostrar datos con esas características y. como los que se incluyen en este artículo. . Las aplicaciones de Office 2010 están creadas de tal modo que exponen lo que se denomina objetos. las tareas pueden automatizarse usando VBA para escribir las instrucciones explícitas que Excel debe seguir. por lo que aquí las posibilidades son ilimitadas. También puede usar VBA para crear nuevas funcionalidades en Excel (por ejemplo. resultará mucho más sencillo seguir aprendiendo. se envían instrucciones a varios objetos de la aplicación. A pesar de todas las buenas razones para usar VBA en Excel 2010. o bien tan complejos como buscar algunas características estadísticas de los datos en cada hoja. los programadores usan Excel en una amplia variedad de tareas. Por ejemplo. Excel tiene una gran variedad de características sin VBA y es posible que hasta un usuario avanzado no esté familiarizado con todas ellas. a continuación. No obstante. Los cambios podrían ser tan simples como aplicar formato nuevo a algún rango fijo de celdas. si bien son variados y flexibles. Si se adquieren algunos conocimientos sobre VBA. Estos objetos reciben instrucciones. En su lugar. usar las funcionalidades de gráficos de Excel para mostrar los resultados) y realizar tareas que integren Excel con otras aplicaciones de Office. es importante recordar que la mejor solución de un problema posiblemente no se relacione con VBA en absoluto.ejemplos. El modelo de objetos básicamente refleja lo que se ve en la interfaz de usuario. al menos no más de unas pocas veces. Objetos Los objetos de programación se relacionan entre sí sistemáticamente en una jerarquía denominada modelo de objetos de la aplicación. Solo pueden hacer aquello para lo que fueron diseñados y solo harán lo que se les indique que hagan. a continuación. Excel es la más usada como algo similar a una plataforma de desarrollo general. de todas las aplicaciones de Office. El modelo de objetos constituye el mapa conceptual de la aplicación y sus funcionalidades. Workbook. Además de todas las tareas obvias que implican listas y contabilidad. pero sus principios básicos usan la lógica diaria y son bastante accesibles. tienen sus límites. Para interactuar con las aplicaciones. como Microsoft Access 2010. muchos usuarios encuentran que conocer aunque sea una pequeña parte del código de VBA facilita su trabajo y les brinda la posibilidad de ejecutar tareas en Office que antes creían imposibles de realizar. la razón más frecuente por la cuál se usa VBA en Excel es para automatizar tareas repetitivas. Sin duda. crear y dar formato al gráfico en consecuencia. puede desarrollar nuevos algoritmos para analizar datos y. libro y libros. Los objetos de una colección se usan para realizar una acción en varios elementos de esa colección.Propiedades y métodos Es posible manipular objetos al establecer sus Propiedades y llamar a sus métodos. hoja de cálculo y hojas de cálculo. Debido a que Office 2010 no muestra la ficha Programador de manera predeterminada. Haga clic en Personalizar cinta de opciones en el lado izquierdo del cuadro de diálogo. el objeto Workbook tiene un método Close que cierra el libro y una propiedad ActiveSheet que representa la hoja activa del libro. 3. en el lado izquierdo del cuadro de diálogo. por ejemplo. Por ejemplo. 5. Más adelante. active la casilla de verificación Programador. donde se puede tener acceso al Editor de Visual Basic y a otras herramientas de programador. se explicará cómo usar la colección Worksheets para cambiar el nombre de cada hoja de cálculo de un libro. Figura 1. Para hacerlo. 4. Ficha Programador en Excel 2010 . a continuación. puede intentar llamar a los métodos de un objeto y establecer las propiedades del objeto. elija Opciones para abrir el cuadro de diálogo Opciones de Excel. Si se llama a un método. debe escribir el código en un lugar y de una manera que Office pueda comprender. muchos usuarios ni siquiera saben que está disponible hasta que no se habilita en la cinta de opciones. Ficha Programador Todas las aplicaciones de Office 2010 usan la cinta de opciones. Las versiones en plural se denominan colecciones. seleccione Comandos más utilizados. Haga clic en Aceptar. En la ficha Archivo. en este artículo. Macros y el Editor de Visual Basic Ahora que ya conoce en parte cómo Microsoft Excel 2010 expone su modelo de objetos. La ficha Programador es una de las fichas incluidas en la cinta de opciones. En Personalice esta cinta de opciones. en el lado derecho del cuadro de diálogo. Después de que Excel muestre la ficha Programador. Si se establece una propiedad. En Comandos disponibles en:. generalmente. 2. observe la ubicación de los botones Visual Basic. se logra que el objeto realice una determinada acción. debe habilitarla mediante el siguiente procedimiento: Para habilitar la ficha Programador 1. Aunque se instala de forma predeterminada. seleccione Fichas principales y.Macros y Seguridad de macros en la ficha. Colecciones Varios objetos vienen en las versiones singular y plural. mediante el uso del Editor de Visual Basic. se producen algunos cambios en la calidad del objeto. xlsm.xlsm). Editor de Visual Basic El siguiente procedimiento muestra cómo crear un nuevo libro en blanco donde se almacenarán las macros. Para crear un nuevo libro en blanco 1. en consecuencia. Haga clic en el botón Crear para abrir el Editor de Visual Basic que incluirá los esquemas de una nueva macro ya escritos. las condiciones de seguridad que impiden ejecutar macros útiles pueden disminuir en gran medida la productividad. A continuación. tenga en cuenta que si la barra Advertencia de seguridad: las macros se han deshabilitado aparece entre la cinta de opciones y el libro. 2. tiene un entorno de programación completo. escriba Hello en Nombre de macro. VBA es un lenguaje de programación completo y. si se trabaja con macros de Excel. En este artículo solo se estudian las herramientas que se usan para empezar a trabajar en programación sin incluir la mayoría de las herramientas del Editor de Visual Basic.Problemas de seguridad Haga clic en el botón de Seguridad de macros para especificar qué macros pueden ejecutarse y en qué condiciones. Aunque el código de macros de sistemas no confiables puede dañar gravemente el equipo. como medida de seguridad. puede hacer clic en el botón Habilitar contenido para habilitar las macros. Editor de Visual Basic . Figura 2. Para el propósito de este artículo. La seguridad de macros es un tema complejo que se debe estudiar y comprender. Realizada esta salvedad. no puede guardar una macro en el formato de archivo predeterminado de Excel (. cierre la ventana Propiedades en el lado izquierdo del Editor de Visual Basic e ignore las dos listas desplegables que aparecen sobre el código. 3.xlsx). podrá guardar el libro con el formato . cuando abre un libro que contiene una macro. En el cuadro de diálogo Macro que aparece. Además. debe guardar la macro en un archivo con extensión especial (. Haga clic en el botón Macros. de la ficha Programador. . se puede definir como "macro". 2. a continuación.El Editor de Visual Basic contiene el siguiente código. a continuación. Ahora. haga clic en Ejecutar para mostrar un cuadro de mensaje pequeño que contiene el texto "Hello. VB Sub Hello() End Sub Sub se refiere a Subrutinaque. Si no aparece el cuadro de mensaje. Haga clic en Opciones para abrir el cuadro de diálogo Opciones de Excel y. Para crear un botón para la macro Hello en la Barra de herramientas de acceso rápido. pero si usa una macro con frecuencia. haga clic enBarra de herramientas de acceso rápido. Acaba de crear e implementar correctamente código de VBA personalizado en Excel. Haga clic en Aceptar en el cuadro de mensaje para cerrarlo y terminar de ejecutar la macro. El siguiente procedimiento describe cómo crear un botón para una macro en la Barra de herramientas de acceso rápido: Para crear un botón para una macro en la Barra de herramientas de acceso rápido 1. Haga clic en la pestaña Archivo. world!". Al ejecutar la macro Hello se ejecuta cualquier código que se encuentre entre Sub Hello() y End Sub. VB Sub Hello() MsgBox ("Hello. por el momento. use el siguiente procedimiento. compruebe la configuración de seguridad de la macro y reinicie Excel. edite la macro para que tenga un aspecto similar al siguiente código. world!") End Sub Vuelva a la ficha Programador en Excel y haga clic de nuevo en el botón Macros. Seleccione la macro Hello en la lista que aparece y. Accesibilidad de las macros También puede tener acceso al cuadro de diálogo Macros desde la ficha Ver. le resultará más cómodo tener acceso a ella mediante un método abreviado de teclado o un botón de la Barra de herramientas de acceso rápido. encima de la ficha Archivo. 4. En lugar de realizar todos estos pasos manualmente. Haga clic en Aceptar. esto podría tratarse de una tarea compleja que implica ver cada hoja de cálculo para saber si tiene una lista. a fin de seleccionar una imagen del botón para asociar a la macro. use VBA de Excel para cambiar el nombre de las hojas de forma automática. que forma parte de la referencia del programador de Excel 2007 en Microsoft Developer Network (MSDN). haga clic en el botón Modificar…. de lo contrario. Haga clic en el botón Agregar >> para agregar la macro a la lista en el lado derecho y. Los nombres de hojas de cálculo sin listas no deben modificarse. Busque en la lista el texto que es similar a Book1!Hello y selecciónelo. Figura 3. hacer clic en la ficha de hoja de cálculo y luego pegar el nuevo nombre.3. si no tiene una lista. la celda B1 está en blanco. el encabezado está en la celda B1. Si una hoja de cálculo tiene una lista. elija Macros. En la lista que se encuentra en Comandos disponibles en:. sin embargo. Normalmente. Un ejemplo real Supongamos que tiene un libro que contiene listas en una gran cantidad de hojas de cálculo y que desea cambiar el nombre de cada hoja de cálculo para que coincida con el encabezado de la lista de esa hoja de cálculo. Ahora puede ejecutar rápidamente la macro en cualquier momento sin tener que usar la ficha Programador: inténtelo. No todas las hojas de cálculo contienen una lista. Para investigar y conocer esa información. a continuación. Estos materiales de referencia se actualizarán para Excel 2010 cuando la herramienta esté disponible al público. primero debe saber qué objetos manipulará el código. Aprendizaje sobre objetos Para resolver un problema de programación de VBA. 5. El nuevo botón deberá mostrarse en la Barra de herramientas de acceso rápido. Referencia del modelo de objetos de Excel en MSDN . una herramienta esencial es la referencia del modelo de objetos de Excel. copiar el nombre de la lista en caso de que exista. la referencia del programador de Excel 2007 se adecua a la mayoría de los casos de Excel 2010. . Uso de la grabadora de macros A veces una simple macro grabada es todo lo que se necesita. hay al menos dos formas de enfocar el problema:  Ir directamente a la referencia del modelo de objetos.El primer paso consiste en averiguar cómo manipular los objetos concretos con los que necesita trabajar para llevar a cabo su tarea. intente primero usar la grabadora de macros. Elimine el resto del código. Las opiniones varían con respecto a qué enfoque es preferible. ir a la referencia del modelo de objetos para obtener más información. 4. la grabación por sí sola no es suficiente. Para usar la grabadora de macros como punto de inicio de la solución 1. 5. por ejemplo. Modifique el código grabado. incluso. hojas de cálculo. ver cómo el código grabado manipula los objetos y. pero por ahora. en estos casos. un punto de inicio en el siguiente proceso. 2. no es necesario mirar el código. 3. Por lo general. Revise el código y busque las líneas que realizan esas acciones. nombres de hoja de cálculo. Agregue variables. a continuación. pero sí.  Grabar algunas de las acciones que se desean automatizar. celdas y contenidos de celdas. estructuras de control y otro código que la grabadora de macros no pueda grabar. Grabe las acciones que desea codificar. En Excel. Después podrá usar la macro grabada para crear su propia macro que cambie el nombre de varias hojas de cálculo según su contenido. por lo general. El nombre debe volver a cambiar a New Name. no es necesario seleccionar objetos antes de manipularlos. esta línea de código es redundante. VB Sub RenameWorksheets() Sheets("Sheet1"). el código debe verse similar al siguiente. ejecute la macro.Comience su investigación con la grabación de una macro que cambie el nombre de una hoja de cálculo a New Name. La última línea de la macro grabada modifica la propiedad Nombre del miembro Sheet1 de la colección Sheets. sino para cualquier persona que necesite modificarlo en el futuro. el código grabado ahora debe ser similar al siguiente. puede eliminarla. Toda línea que comienza con un apóstrofe es un comentario y no tiene efecto alguno sobre la acción que ejecuta la macro. a continuación. aunque eso es lo que hace la grabadora de macros. Los principales usos de los comentarios son los siguientes:  Facilitar la comprensión del código.Name = "New Name" End Sub Las primeras cuatro líneas que aparecen después de la línea Sub son comentarios. por lo tanto. Haga clic en Grabar macro en la ficha Programador. Esta es la línea que debe conservar. cambie el nombre Sheet1 a New Name y. Coloque el nombre RenameWorksheets a la macro. no solo para usted. Los cuatro comentarios en esta macro grabada no cumplen ningún propósito. Después de realizar los cambios. En el Editor de Visual Basic. En otras palabras. a continuación.Select Sheets("Sheet1"). elimínelos. haga clic en Detener grabación. por lo tanto. Modificación del código grabado .Name = "New Name" End Sub Vuelva a cambiar la hoja denominada New Name a Sheet1 de forma manual y.  Deshabilitar temporalmente una línea de código (se denomina marcar como comentario). La siguiente línea usa el método Select para seleccionar el miembro Sheet1 del objeto de la colección Sheets. 2. haga clic en el botón Macros y elija Editar para abrir el Editor de Visual Basic. En el código de VBA. 3. Vaya a la ficha Programador o Ver. Para grabar una macro que cambie el nombre de una hoja de cálculo 1. VB Sub RenameWorksheets() ' ' RenameWorksheets Macro ' ' Sheets("Sheet1"). y se puede usar para llevar a cabo una acción (como cambiar un nombre) en algunos o en todos esos elementos.. "HojaCalculoCambiarNombreAlContenidoCeldaB1" o (con algunas restricciones) prácticamente cualquier nombre que se desee. VBA tiene una construcción denominada bucle For Each que es ideal. VB Sub RenameWorksheets() For Each myWorksheet In Worksheets myWorksheet. "ws". cambie el código para que se vea de la siguiente forma. Sin embargo. consulte la referencia del lenguaje de VBA. Además. En este caso.Name = "New Name" End Sub Función de bucle Una limitación del código en este punto es que solo realiza el cambio en una hoja de cálculo. No es necesario usar myWorksheet. pero ¿qué sucede si desconoce cuántas hojas de cálculo hay o cuáles son sus nombres actuales? Se necesita una forma de aplicar alguna regla para cadahoja de cálculo del libro.. a continuación. El tema Sheets en la referencia del modelo de objetos incluye el siguiente texto. compensará ampliamente el tiempo que invierta examinándola. pero no tan extensos que puedan recargar el código. Use el tercer ejemplo del tema sobre el uso de instrucciones For Each.. se puede usar "x". como la referencia del modelo de objetos. la línea siguiente indica a Excel que asigne a todas las hojas de cálculo el mismo nombre. consulte el tema de objetos para ese tipo de hoja". El bucle For Each examina cada elemento en un objeto de colección. Como está trabajando solo con Worksheets. la variable myWorksheet representa sucesivamente cada hoja de cálculo en la colección Worksheets. "La colección Sheets puede contener los objetos Chart o Worksheet. en el tema sobre el uso de instrucciones For Each. Una buena regla es usar nombres de variables que sean lo suficientemente extensos como para que recuerden a qué se refieren. es decir. Para obtener más información acerca del bucle For Each. VB myWorksheet.Next para modificar la macro con el fin de que tenga un aspecto similar al siguiente código. ya que es un lugar excelente para buscar ideas si se estanca cuando trabaja con código. como Worksheets. entonces.Next. tenga en cuenta que la referencia del lenguaje de VBA. se produce un error porque Excel requiere que cada hoja de cálculo de un libro tenga un nombre único. Haga clic en la sección sobre los temas conceptuales de Visual Basic y. Si ejecuta la macro en su estado actual. Se puede agregar otra línea para cada hoja de cálculo cuyo nombre desea cambiar.Name = "New Name" ..Name = "New Name" Next End Sub myWorksheet es una variable. VB Sub RenameWorksheets() Worksheets("Sheet1"). lo que representa varía. Si necesita trabajar con hojas de un solo tipo.Ahora ha llegado el momento de investigar la colección Sheets que la grabadora de macros usó. notará que no existe ningún objeto Cell. Lo que necesita ahora es tomar información de las hojas de cálculo. porque Range vacío tiene un valor de "" (una cadena de texto vacía). ya es momento de crear algunos datos de ejemplo. Figura 4. ejecute la macro. En cambio.Para corregir la línea y comprobar si el bucle For Each funciona. y colocar esa información en los nombres de las hojas de cálculo.Select Resulta ser que usa Range para especificar un rango de celdas o simplemente una celda individual.Name = myWorksheet. Si busca hacia abajo en la lista. Esta vez. Si se dirige al tema del objeto Range. cambie la línea de la siguiente manera. Nuevamente. El tema del objeto CellFormat incluye el siguiente código en el primer ejemplo de código. Range("A1"). Es un buen intento. en vez de usar la grabadora de macros para averiguar cómo referirse a una celda. VB ' Set the interior of cell A1 to yellow. VB Sub RenameWorksheets() For Each myWorksheet In Worksheets myWorksheet. hay un objeto CellFormat. puede leer que Range tiene Methods y Properties. Los contenidos de Range constituyen una cosa. De todas formas.Range("B1"). específicamente de la celda B1 de cada hoja. esta línea cambia el nombre actual de cada hoja de cálculo (myWorksheet.Name = myWorksheet. Datos de ejemplo para la macro RenameWorksheets . Por lo tanto. intente lo siguiente. en oposición al mismo objeto Range.Value Next End Sub Obtendrá un error si ejecuta esto en un libro que contiene hojas de cálculo donde la celda B1 está vacía. podrá ver la propiedadValue. Haga que las tres hojas de cálculo del libro tengan un aspecto similar al de la siguiente figura y. no es necesaria la parte . no una acción. por lo que probablemente sea una Property. pruebe y vea si usando el objeto Cell logra su objetivo. pero si abre la referencia del modelo de objetos y busca el objeto Cell. que no es un nombre de hoja de cálculo válido. pero sí es necesario averiguar cómo hacer referencia a los contenidos del objeto Range.Name & "-changed" En lugar de intentar dar el mismo nombre a cada hoja de cálculo.Name) anexando la palabra "-changed" al nombre actual. VB myWorksheet. a continuación. Cambio de nombre útil La macro se está acercando a lo que podría ser la solución para el problema que tiene en este momento.Select. Name agregue el texto siguiente. Por lo tanto. no hay texto en absoluto. es decir.Range("B1"). agregue la siguiente línea de código. cualquier línea de código que esté entre If y End se ejecutará únicamente si el valor de la celda B1 no es igual a nada. puede codificar la macro para que haga esto por usted. pero solo si se cumple la condición en la línea If. VB myWorksheet.Value <> "" La línea <> significa "no es igual a" y las comillas sin contenido en su interior representan una cadena de texto vacía. . Búsqueda de celdas vacías Como mencionamos anteriormente.Value <> "" Then Después de la línea myWorksheet. consulte la referencia del lenguaje de VBA. En el ejemplo. es decir. VB If myWorksheet. La instrucción If…Then indica a Excel que haga lo que se indica entre la línea If y la línea End. la macro genera un error si alguna de las celdas B1 en el libro está vacía. VB End If Esto se denomina una instrucción If…Then. Antes de la línea myWorksheet. donde Else es un componente opcional).Range("B1"). Para obtener más información acerca de la instrucción If…Then. la siguiente línea especifica la condición que se debe cumplir.Los nombres de las hojas de cálculo deben cambiar en consecuencia. si hay texto en la celda B1. En lugar de revisar manualmente todas las hojas de cálculo.Name. (El nombre completo de la instrucción es "If…Then…Else". Observe que después de escribir As.Range("B1").Value End If Next End Sub Para probar la macro. Sin comentarios. vuelva a cambiar el nombre de las hojas de cálculo a Sheet1. el Editor de Visual Basic muestra una ventana emergente que incluye todos los tipos de variables disponibles.Value <> "" Then 'rename the worksheet to the contents of cell B1 myWorksheet. Ejecute la macro para comprobar si cambia los nombres de las hojas de cálculo que tienen texto en la celda B1 y si deja las otras hojas sin modificaciones. Aunque las declaraciones de variables no son necesarias en VBA. con cualquier combinación de celdas B1 llenas y vacías. es mejor que sean más que menos. pero. Sheet2 y Sheet3. su uso es muy recomendable. El código generalmente necesita modificaciones y actualizaciones con el tiempo. que el Editor de Visual Basic responde a lo que determina que se está intentando hacer y ofrece una lista de opciones apropiadas.Range("B1"). La cantidad de comentarios que se va a usar en parte se debe a una cuestión de estilo personal. es decir. IntelliSense mostrará una lista adecuada de propiedades y métodos asociados con ese objeto si usa esa variable de objeto más adelante en la macro. tenga en cuenta que si declara una variable con un tipo de objeto (como Worksheet). Eso es un ejemplo de la tecnología IntelliSense. Estas declaraciones hacen que el seguimiento de variables y errores en el código sean más fáciles de realizar. Puede elegir una opción de la lista o seguir escribiendo. especialmente si la persona que lo modifica no es la misma persona que lo escribe en primer lugar. VB Sub RenameWorksheets() Dim myWorksheet As Worksheet For Each myWorksheet In Worksheets 'make sure that cell B1 is not empty If myWorksheet. podría ser difícil comprender lo que sucede en el código. VB Dim myWorksheet As Worksheet Dim es la abreviatura de "Dimension" y Worksheet es el tipo de esta variable en particular. Al agregar comentarios para la condición If y para la línea que cambia el nombre de las hojas de cálculo.Declaraciones de variables Otra mejora que debe hacer en la macro es poner una declaración de la variable myWorksheet al principio de la macro.Name = myWorksheet. y elimine los contenidos de la celda B1 en una o más hojas de cálculo. en general. Comentarios La macro es lo suficientemente compleja ahora y se necesitarían incluir algunos comentarios que recuerden lo que hace el código. Asimismo. La macro funciona para cualquier cantidad de hojas de cálculo. se obtiene el siguiente código. . Esta instrucción indica a VBA qué tipo de entidad myWorksheet representa. SetSourceData Source:=Selection End With Este es un patrón común en la programación de VBA. Importancia de una actitud abierta Una buena forma de aprender programación en general. y VBA de Excel en particular. . El gráfico que se crea no sirve porque no tiene datos. Cree una nueva hoja de cálculo en blanco y ejecute la macro. VB Dim myChart As ChartObject Agregue una línea para crear el objeto de gráfico y asígnele la variable myChart. Primero crea un objeto. ver si funciona y preguntarse cosas como:  ¿Qué podría intentar hacer a continuación?    ¿Qué deseo aprender en primer lugar según el uso que necesito darle a VBA? ¿Qué puede ser simplemente divertido o interesante saber? ¿Qué despierta mi curiosidad? Se recomienda encarecidamente al lector que investigue todos los caminos que se abren hacia la ruta del conocimiento. Cree una nueva macro llamadaAssortedTasks y. El código de ejemplo le indica al gráfico que use la selección actual para sus datos. VB With myChart . VB Set myChart = ActiveSheet. 50. a continuación usa la construcción With…End With para realizar tareas con el objeto.Chart. 200. 200) Los números en los paréntesis determinan la posición y el tamaño del gráfico. Los primeros dos números son las coordenadas de la esquina superior izquierda y los segundos dos números corresponden al ancho y alto. Puede encontrar esta información en la referencia del modelo de objetos. quizá le resulte útil repasar información sobre los objetos en cada paso. escriba el siguiente texto en el Editor de Visual Basic. Elimine el gráfico que acaba de crear y agregue las siguientes líneas al final de la macro. A medida que trabaja con los ejemplos.ChartObjects. le asigna una variable y. es adoptar una estrategia que implique intentar algo.Más cosas que se pueden hacer con VBA Esta sección estudia algunas otras cosas que se pueden hacer con VBA en Excel 2010.Add(100. a continuación. Los ejemplos de esta sección están diseñados para proporcionar una idea de las funciones de VBA en lugar de centrarse en escenarios reales específicos. Gráficos Una tarea común en Excel es crear un gráfico basado en un rango de celdas. ) Escriba algunos números en las celdas A1:A5. la sintaxis de VBA requiere que use dos puntos y el signo igual [:=] en lugar de usar solo el signo igual [=] para asignar el valor. no un valor de una propiedad del objeto. Los datos se pueden modificar. seleccione las celdas y. consulte la sección sobre enumeraciones de la referencia del modelo de objetos. a continuación.Chart.Chart. Para obtener más información acerca de las constantes integradas.ChartType = xlPie End With xlPie es un ejemplo de una constante integrada. El gráfico se muestra como el tipo predeterminado. . Por ejemplo. intente agregar esta línea justo después de la declaración de variable. Gráfico de barras creado mediante VBA Si no le gusta el gráfico de barras. Toda la aplicación Excel tiene varias de estas constantes que se encuentran muy bien documentadas.(Selection es un valor para el parámetro Source del método SetSourceData. ejecute la macro. por lo tanto. también conocida como constante enumerada. un gráfico de barras. Por ejemplo. Figura 5. las constantes para tipos de gráfico se indican en la sección sobre enumeraciones XlChartType. VB With myChart .SetSourceData Source:=Selection . puede cambiar a algún otro tipo de gráfico usando código similar al siguiente. . a continuación.Value = 8 Puede obtener una entrada de usuario y usar esa entrada para modificar los datos. Vuelva a abrir el libro y observe el cambio en el gráfico circular. Para obtener más información acerca de estas funcionalidades. vaya al menú Insertar y elija UserForm para abrir la vista Diseño de UserForm.Value = myInput Por último. a continuación. ejecute la macro. UserForms La sección anterior mostraba cómo usar un cuadro de entrada sencillo para obtener una entrada de usuario. 200.ActiveSheet.Save ActiveWorkbook. Además del correspondiente cuadro de mensaje que muestra información.Close End Sub Compruebe que las celdas A1:A5 sigan estando seleccionadas. agregue las líneas siguientes al final de la macro.Range("a5").Close La macro completa debería ser similar a la siguiente. consulte controles.ChartType = xlPie End With ActiveWorkbook. VB ActiveWorkbook. haga clic en Aceptar.ActiveSheet.Range("a5"). muestra los distintos controles que puede agregar a su UserForm.SetSourceData Source:=Selection .Range("a4"). En la ficha Programador. escriba un número en el cuadro de entrada y.Add(100. el Cuadro de herramientas. haga clic en el botón Visual Basic para abrir el Editor de Visual Basic y.ActiveSheet. 200) With myChart .Chart. Esta sección completa la introducción a VBA en Excel presentando un panorama general de UserForms.VB Application.Save ActiveWorkbook. 50.Value = myInput Set myChart = ActiveSheet. VB Sub AssortedTasks() Dim myChart As ChartObject Application.Chart. Verá dos ventanas. Una representa el UserForm que está creando y la otra. por ejemplo. El código guarda y cierra el libro.Range("a4").Value = 8 myInput = InputBox("Please type a number:") Application. cuadros de diálogo y formularios en la referencia del programador de Excel 2007. para codificar controles que se colocan directamente en las hojas de cálculo o para manipular los cuadros de diálogo que están integrados en Excel.ChartObjects.ActiveSheet. VBA proporciona amplias funcionalidades que puede usar para crear cuadros de diálogo personalizados. VB myInput = InputBox("Please type a number:") Application. VB Run("Hello") El Editor de Visual Basic debe ser ahora similar al siguiente. Una manera de aprender más sobre VBA es estudiar código activo. incluidos los artículos en MSDN. En este caso. La Sub que aparece es un esqueleto para un procedimiento de evento que se ejecuta cuando se produce un evento en particular. Cierre el cuadro de mensaje para volver al UserForm que se ejecuta y. excelente. a continuación. cierre el UserForm que se ejecuta para volver a la Vista Diseño. un buen paso es ampliar sus expectativas hacia un conocimiento más general de VBA. Cree un UserForm muy sencillo con un solo botón que ejecute la macro Hello que creamos al comienzo de este artículo. casillas de verificación. Agregue la siguiente línea al procedimiento de evento. haga clic en el botón de comando para ejecutar la macro Hello. Haga clic con el botón secundario en el botón de comando y elijaVer código. entre otros. presione el control CommandButton y. le resulte lo suficientemente útil como para lograr cualquier tarea que lo impulsa a empezar a aprender sobre VBA. Haga clic en la flecha verde de la barra de herramientas para ejecutar el UserForm. world!". combinada con un poco de experimentación y tiempo de estudio de la referencia del modelo de objetos y la referencia del lenguaje de VBA. En el Cuadro de herramientas. ¿Qué sigue? Es posible que la información que se brinda en este artículo. a continuación. sitios web desarrollados por los profesionales más valiosos de . Cuando aparece el cuadro de diálogo. Figura 6. botones de opciones. arrástrelo al UserForm para crear un botón de comando.botones de comandos. vaya al menú Ventana y elija UserForm1 (UserForm) para volver a mostrar el UserForm. De lo contrario. hay una cantidad enorme de código de VBA en Excel disponible en distintas fuentes en línea. Si es así. que muestra el cuadro de mensaje "Hello. como el nombre de Sub indica. Procedimiento de evento CommandButton1_Click Guarde el libro. Además de los ejemplos proporcionados en la referencia del modelo de objetos y la referencia del lenguaje de VBA. el evento que ejecuta el código es un Clicken CommandButton1. Puede mover el mouse sobre un control del Cuadro de herramientas para ver qué tipo de control crea. Microsoft (MVP) que se especializan en Excel y otros sitios web que puede encontrar mediante una búsqueda rápida en Web. así como varias revisiones de cada uno de estos libros disponibles en Web que pueden ser útiles para elegir su mejor forma de aprendizaje . Si prefiere realizar un estudio más sistemático de VBA. El código de estos recursos puede ayudarlo a resolver problemas inmediatos de programación y proporcionarle ideas para proyectos que ni siquiera ha pensado aún. pueden encontrar varios libros sobre VBA.
Copyright © 2024 DOKUMEN.SITE Inc.