Anuncio

crear un gráfico¿No sería bueno tener la capacidad de abrir una hoja de cálculo de Excel o un documento de Word, y sin tener que hacer nada en todos los datos se leen directamente de un archivo de texto o CSV y se cargan directamente en un gráfico incrustado en su hoja de cálculo o Word ¿documento? Esta es una forma de automatización que utiliza productos de Office, porque si es posible automatizar el trazado de datos en Office, solo piense en las posibilidades. Puede cargar automáticamente los datos en un gráfico para un informe que está elaborando para su jefe, sin necesidad de ingresar datos. O puede cargar datos en un gráfico directamente en un correo electrónico en Outlook.

La técnica para lograr esto implica instalar el complemento Office Web Components. Además, solo necesita configurar algunas cosas dentro de la aplicación de Office que desea usar para importar los datos, y está listo para comenzar a automatizar su trabajo de informes. He cubierto algunos de los elementos que vamos a usar en este artículo en anteriores

instagram viewer
Artículos de VBA Cómo puedes hacer tu propia aplicación simple con VBA¿Quiere saber cómo hacer su propia aplicación VBA para resolver problemas? Use estos consejos para crear su propio software VBA. Lee mas aquí en MakeUseOf. Algunos de esos incluyen datos de paso entre aplicaciones con el portapapeles Pase cualquier información entre aplicaciones de VBA usando el PortapapelesUna de las partes más frustrantes de trabajar con VBA dentro de aplicaciones específicas es que no siempre es fácil lograr que dos aplicaciones se "comuniquen" entre sí. Puede intentar transacciones muy rápidas ... Lee mas exportando Tareas de Outlook para Excel Cómo exportar sus tareas de Outlook a Excel con VBASi eres o no un fanático de Microsoft, una cosa buena que se puede decir sobre los productos de MS Office, al menos, es lo fácil que es integrarlos entre sí ... Lee mas y enviando Correos electrónicos de un Excel Cómo enviar correos electrónicos desde una hoja de cálculo de Excel con secuencias de comandos VBANuestra plantilla de código lo ayudará a configurar correos electrónicos automatizados desde Excel utilizando Collaboration Data Objects (CDO) y scripts VBA. Lee mas guión.

Lo que voy a mostrar es cómo combinar Office Web Components con secuencias de comandos de archivos de texto para crear un flujo de datos automatizado y sin problemas desde un archivo de texto plano en su computadora a su producto de Office Sobresalir). Puede usar esta misma técnica, con algunas pequeñas modificaciones, en Word, Outlook o incluso PowerPoint. Cualquier producto de Office (o cualquier otro producto) que tenga un back-end VBA para desarrolladores, le permitirá utilizar esta técnica.

Importar y crear un gráfico a partir de archivos de datos

Antes de poder crear un gráfico a partir de archivos de datos, primero deberá habilitar algunas cosas. En este ejemplo, le mostraré cómo habilitar estas funciones en Excel, pero el proceso es casi idéntico en todos los demás productos de Office.

Primero, antes de que pueda hacer cualquier desarrollo de VBA, debe habilitar la pestaña de desarrollador en la barra de herramientas (si aún no lo ha hecho). Para hacer esto, simplemente vaya al menú Opciones, haga clic en "Personalizar cinta de opciones" y active la pestaña "Desarrollador".

crear un gráfico

De vuelta en Excle, ahora verá "Desarrollador" en los menús. Haga clic en él y haga clic en "Modo de diseño". Luego haga clic en "Ver código" para ver el editor de VBA.

Cómo crear un gráfico a partir de archivos de datos sin procesar en cualquier producto de Office VBAChart21

Dentro del editor es donde deberá habilitar las referencias que necesitará para el código que le voy a dar a trabajar. Asegúrese de haber instalado el complemento Office Web Components antes de hacer esto; de lo contrario, el objeto Microsoft Chart no estará disponible.

crear gráfico
Haga clic en Herramientas y luego en Referencias, y verá una lista de todas las referencias disponibles en su sistema. Si no sabe cuáles son, las referencias son básicamente bibliotecas de código y objetos que puede incorporar a su propio proyecto. Estos le permiten hacer cosas realmente geniales, dependiendo de la referencia que habilite. Si acaba de instalar Office Web Components en su sistema, deberá agregarlo como una nueva biblioteca, así que haga clic en el botón Examinar para encontrar el archivo .dll correcto.

crear gráfico

Si instaló Office Web Components, el archivo DLL se llama OWC11.dll y se almacena en c: \ archivos de programa \ archivos comunes \ microsoft shared \ web components \ 11 \
crear gráfico

Haga clic en la casilla de verificación de la referencia "Microsoft Office Web Components 11.0" y tampoco olvide seleccione también "Microsoft Scripting Runtime", que le dará acceso para leer o escribir desde datos archivos.

Ahora que ha agregado la referencia, es hora de agregar el gráfico real a su hoja. En Excel, puede agregar controles haciendo clic en "Insertar" en el menú Desarrollador y haciendo clic en el pequeño icono de herramientas en la esquina debajo de "Controles ActiveX".

Cómo crear un gráfico a partir de archivos de datos sin procesar en cualquier producto de Office VBAChart6

Desplácese hasta "Microsoft Office Chart 11.0" y haga clic en Aceptar.
crear un gráfico gratis

Finalmente nos estamos poniendo manos a la obra. Así es como se ve el gráfico de componentes web de MS incrustado en una hoja de cálculo. Se verá igual incrustado en un documento de Word o cualquier otra cosa.

crear un gráfico gratis
Entonces, en el caso de Excel, quiero que el gráfico cargue instantáneamente datos del archivo de datos al abrir el archivo del libro de trabajo. Para hacer esto, ingrese al editor de código haciendo clic en "Ver código" en el menú Desarrollador, y haga doble clic en el Libro de trabajo para ver el código del libro de trabajo. Cambie el menú desplegable de la derecha a "Abrir". Este es el script que se ejecutará cuando el archivo del libro se abra por primera vez.

crear un gráfico gratis
Para cargar el gráfico con datos del código, el gráfico mismo necesita un nombre. Regrese a la hoja de cálculo, haga clic derecho en el gráfico y elija Propiedades. Verá el campo "Nombre" con algo como "ChartSpace1". Puedes cambiar esto a cualquier cosa. He llamado al mío "MyChart".
Cómo crear un gráfico a partir de archivos de datos sin procesar en cualquier producto de Office VBAChart10
Además, para que sepa cómo es el archivo de datos: el mío es un archivo de texto lleno de valores de datos en formato delimitado por comas. Este archivo podría ser cualquier cosa: datos de laboratorio exportados desde sensores, información financiera ingresada manualmente en el archivo por pasantes o cualquier otra cosa. Leerá el archivo con su código, por lo que no importa cómo se vean los datos, siempre que sepa cómo se verá cada línea cuando su programa la lea.
crear un gráfico
Entonces, ahora para la parte divertida. Le mostraré el código en pequeñas secciones para que no sea abrumador y le explicaré qué hace el código. La parte superior del código leerá primero todos los valores del archivo de texto y los almacenará en dos matrices, una para las variables x (xVar) y otra para las variables y (yVar).

Dim fso As New FileSystemObject. Dim fnum. Dim MyFile como cadena. Dim strDataLine As String. Dim xVar () como variante. Dim yVar () como variante. Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Abra MyFile para la entrada como # 1. intNumOfLines = 0. Do While Not EOF (1) intNumOfLines = intNumOfLines + 1 Entrada # 1, strDataLine Entrada # 1, strDataLine. Lazo. Cerrar # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Abra MyFile para la entrada como # 1. intNumOfLines = 0. Do While Not EOF (1) Entrada # 1, xVar (intNumOfLines) Entrada # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Lazo. Cerrar # 1

Este código básicamente se ejecuta a través del archivo de datos dos veces, la primera vez para dimensionar las matrices de modo que son la longitud exacta necesaria para almacenar los datos, y luego una segunda vez para leer los datos en esos matrices Si no sabe qué es una matriz, es una variable o un área de almacenamiento que contendrá una larga lista de valores a los que puede acceder utilizando el orden en que se almacenó el valor en la matriz. El tercero cargado sería (3), por ejemplo.

Ahora que tiene dos de estas matrices cargadas con todos los valores de su archivo de datos, está listo para cargar esos valores en el gráfico que ya ha incrustado. Aquí está el código que hace eso.

Con Sheet1.MyChart .Clear .Refresh Establecer oChart = .Charts. Añadir oChart. HasTitle = True oChart. Título. Caption = "Mis valores de datos" 'oChart. Interior. Color = "azul" oChart. ParcelaArea. Interior. Color = "blanco" Establecer oSeries = oChart. SerieColección. Agregar con oSeries .Caption = "Mis valores de datos" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Color = "azul". Línea. DashStyle = chLineDash .Line. Peso = 2 .Type = chChartTypeLine Finalice con oChart. HasLegend = Verdadero. o Gráfico. Leyenda. Posición = chLegendPositionBottom. Terminar con

Es la "Sheet1.MyChart" que conecta el código con el gráfico real que ha incrustado. Se basa en cómo lo llamaste. Este será el caso cuando lo inserte en Word, Powerpoint o cualquier otro producto de Office. No lo referirá utilizando "Hoja1", sino cualquier elemento que contenga el Gráfico en ese caso, como "documento1" en Word, por ejemplo.

El código anterior configura el etiquetado y el color del gráfico, y luego carga los valores utilizando el método ".setdata" para los valores x e y del conjunto de datos bidimensional. Una vez que se ejecuta el código anterior, aparecerá el siguiente gráfico.
crear un gráfico

Estos datos salen directamente del archivo de texto. El único inconveniente aquí es que los archivos de datos deberían ser bidimensionales solo si desea utilizar el código anterior. Podría agregar más valores al conjunto de datos, pero necesitaría modificar el código anterior para leer el tercer valor cada vez a través del bucle y luego duplicar la "Colección de series". Agregar "para crear otra serie y luego agregarla al gráfico de la misma manera.

Puede parecer complejo simplemente leyendo el código anterior, pero una vez que haya hecho uno de estos, es muy sencillo modificarlo para lo que sean sus necesidades. Puede usar el mismo gráfico y un código similar para crear un gráfico de barras, un gráfico de dispersión o cualquier otro tipo de gráfico que desee con este mismo objeto. Es versátil y flexible, y es una herramienta poderosa en su arsenal si es un fanático de la automatización para una mayor productividad.

Juegue con el código anterior y vea si puede cargar automáticamente los datos en sus aplicaciones. ¿Qué usos creativos puedes pensar para este tipo de automatización? ¡Comparte tus pensamientos y comentarios en la sección de comentarios a continuación!

Ryan tiene una licenciatura en ingeniería eléctrica. Ha trabajado 13 años en ingeniería de automatización, 5 años en TI y ahora es ingeniero de aplicaciones. Ex editor jefe de MakeUseOf, ha hablado en conferencias nacionales sobre visualización de datos y ha aparecido en la televisión y radio nacionales.