Agregue un gráfico a un documento de Microsoft con Office Web Components

Agregue un gráfico a un documento de Microsoft con Office Web Components / Windows

¿No es sorprendente cómo a veces algo tan simple como crear un gráfico puede sentirse tan complicado? Ya sea que esté utilizando Excel, Word, Powerpoint o Access, a veces sería bueno simplemente insertar un gráfico rápido con un montón de datos sin tener que hacer mucha configuración y problemas..

En este artículo, le mostraré cómo usar un objeto VBA realmente conveniente y simple de Microsoft Office Web Components que le permite insertar un gráfico directamente en un documento, una presentación o cualquier otra cosa donde pueda crear un código VBA para ejecutarlo. Esto también puede incluir productos que no sean de Microsoft que tengan un back-end de VBA, lo que muchos hacen.

En este ejemplo, le mostraré cómo habilitar el modo de diseño en su programa (en este caso, usaremos Microsoft Word), incrustar el objeto gráfico en su proyecto y luego cómo escribir el código que lo llena. con datos.

En algunos de mis artículos anteriores de VBA, algunos de ustedes mencionaron que la tarea en cuestión era demasiado complicada para cualquiera que nunca haya escrito código anteriormente. Espero que después de leer este artículo, te sientas motivado a probar suerte con VBA. El código incluido aquí es muy sencillo y simple de escribir. Insertar este cuadro es una excelente manera de ensuciarse las manos con VBA si nunca lo has probado antes.

Si sabe VBA, esta es una gran herramienta para comenzar a integrar gráficos rápidos en sus proyectos con mucho menos esfuerzo que nunca..

Habilitando el modo de diseño

En este ejemplo, quise armar un documento rápido con un cuadro incrustado que muestre los datos del mes actual de mi presupuesto, así como el promedio mensual de gastos del año a la fecha.

En este ejemplo, voy a colocar esos valores codificados en una “formación” justo dentro del código VBA, pero en última instancia, puede utilizar una variedad de técnicas para cargar esas variables de matriz (una matriz es simplemente una variable que contiene una lista de valores) de otras fuentes, como una hoja de cálculo externa o incluso un formulario donde ingresa Los valores en forma manual cada mes..

Para saber cómo importar datos en Word desde Excel, consulte mi artículo Cómo integrar datos de Excel en un documento de Word Cómo integrar datos de Excel en un documento de Word Durante su semana laboral, es probable que haya muchas veces que copie y pegar información de Excel en Word, o al revés. Así es como las personas a menudo producen informes escritos ... Lea más sobre el tema. A los efectos de este artículo, nos centraremos en crear el gráfico para mostrar datos.

Ahora que he comenzado mi documento, quiero entrar en el código. En Word o Excel, haga esto haciendo clic en “Expediente”, “Opciones” y luego haga clic en la opción para personalizar la cinta. En el lado derecho de opciones, verá la “Personaliza la cinta” columna, y en la “Pestañas principales” campo que deberías ver “Desarrollador” desenfrenado. Marca esa casilla.

De vuelta en su documento, ahora debería ver el “Desarrollador” Elemento de menú disponible. Dentro de este menú, encontrará la “Modo de diseño” botón.

Haga clic en Modo de diseño, y luego haga clic en el icono de esa carpeta / herramientas para “Herramientas heredadas”, y luego en la esquina inferior derecha del cuadro emergente, debajo de Controles ActiveX, haga clic en “Más controles” botón.

Desplácese hacia abajo en la lista de controles disponibles hasta que llegue a “Microsoft Office Chart xx.x”. Si tiene Microsoft Office instalado en su computadora, entonces este control probablemente estará disponible.

Una vez que inserte el control en su documento, verá que aparece como un cuadro que dice: “Microsoft Office Web Components” dentro. Este es esencialmente su gráfico vacío, listo para mostrar sus datos.

El siguiente paso es escribir el código que configurará su tipo de gráfico y mostrar los datos. Si desea que el proceso sea manual, podría colocar un botón en el documento que cargaría los datos en la tabla, pero en mi caso, quería que todo estuviera completamente automatizado. En el momento en que abro el documento, quería que ejecutara el script que carga el gráfico, para que pueda hacer esto en el código (haga clic en el botón de Visual Basic para ingresar al editor de código) y seleccione el Objeto del documento y la “Abierto” evento.

Esto colocará automáticamente una función vacía llamada “Document_Open ()” en su código. Dentro de esa función, desea pegar el siguiente código.

Subdocumento privado_Open ()  Dim i As Integer  Dim oChart  Dim oSeries1  Dim oSeries2  'Crear matrices para los valores de x y los valores de y  Dim xValues ​​As Variant, yValues1 As Variant, yValues2 As Variant  xValues ​​= Array ("Electric Bill", "Mortgage", "Phone Bill", _  "Ley de calefacción", "Comestibles", _  "Gasolina", "Ropa", "Compras")  yValues1 = Array (124.53, 1250.24, 45.43, 253.54, 143.32, 259.85, 102.5, _  569.94)  yValues2 = Array (110, 1250, 50, 200, 130, 274, 95, _  300)
 

Esta sección de código crea tres matrices. El primero (xValues) es básicamente su lista de descripciones del eje x para cada elemento de datos. En mi caso, estoy creando un gráfico de barras de columnas con yValues1, pero también puede crear un gráfico de líneas. Te mostraré cómo hacer eso con yValues2. Ahora pega el siguiente segmento de código también.

 Con ThisDocument.ChartSpace1  .Claro  .Refrescar  Establecer oChart = .Charts.Add  oChart.HasTitle = Verdadero  oChart.Title.Caption = "Números de presupuesto mensuales vs Promedio"
 

Esta sección de código crea realmente crea el gráfico mismo dentro de su “espacio de carta” envase. Su gráfico no tiene datos en este momento, pero con un par de comandos puede establecer el título para el gráfico, así como el título. Ahora es el momento de agregar los datos. Pegue el siguiente código debajo del código que ya ha pegado para hacerlo.

Establecer oSeries1 = oChart.SeriesCollection.Add  Con oSeries1  .Caption = "Este mes"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Tipo = chChartTypeColumnClustered  Terminar con  'Agregue otra serie al gráfico con los valores de x y los valores de y  'desde los arreglos y establezca el tipo de serie en un gráfico de líneas  Establecer oSeries = oChart.SeriesCollection.Add  Con oSeries  .Caption = "Gasto promedio"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Tipo = chChartTypeLineMarkers  Terminar con

El código anterior crea dos series para mostrar en su gráfico. La primera serie configura los datos para mostrar dentro del objeto gráfico como una “Column Clustered” formato, y la segunda serie está configurada para mostrarse como un “TypeLineMarkers” formato. Esto mostrará los dos conjuntos de valores en el mismo gráfico, pero utilizará diferentes tipos de gráficos, lo que en realidad puede ser una forma muy interesante de mostrar y comparar múltiples conjuntos de datos..

Ahora que se agregaron los datos, todo lo que queda es ordenar el eje y terminar los detalles del gráfico.

 'Formato de los ejes de valor
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  'Muestra la leyenda en la parte inferior del gráfico  oChart.HasLegend = True  oChart.Legend.Position = chLegendPositionBottom
 Terminar con
End Sub

El código anterior da formato a los números en el eje izquierdo para mostrarlos en formato de dólar numérico. La siguiente línea configura el límite máximo del eje vertical. Como sé que los artículos individuales no superarán los $ 1000, eso es lo que establecí en el límite máximo del eje y.

Guarde el documento, ciérrelo, vuélvalo a abrir y listo, su gráfico se cargará automáticamente con los datos de sus dos arreglos.

Ahora que sabe cómo insertar los gráficos y cargar datos automáticamente en ellos, solo piense en las posibilidades. Todo lo que tiene que hacer es obtener datos externos en esos arreglos, tal vez una hoja de cálculo de Excel, tal vez una base de datos de Access o cualquier otra cosa, y de repente este documento se convierte en una ventana muy dinámica y valiosa para los datos almacenados.

Esto es solo la punta del iceburg con los objetos de MS Office Web Components. Comencé con los gráficos porque creo que esa característica es la más emocionante. Para agregar gráficos a cualquier aplicación VBA que desee con un script muy corto es muy útil y muy poderoso.

Si le interesan los gráficos, ¿por qué no prueba este objeto gráfico? ¿Conoces algún otro objeto de gráficos útil para VBA? ¿Cómo incrustar datos en sus aplicaciones? Comparte tus pensamientos y experiencias en la sección de comentarios a continuación.

Crédito de la imagen: gráfico de barras de Tablet Finance a través de Shutterstock

Explore más acerca de: Microsoft Excel, Microsoft PowerPoint, Microsoft Word, programación de Visual Basic.