• No se han encontrado resultados

GUIA PARA CONECTAR EPANET2.DLL (64 bits) DESDE EXCEL 2016 MICROSOFT VISUAL BASIC PARA APLICACIONES (VBA)

N/A
N/A
Protected

Academic year: 2021

Share "GUIA PARA CONECTAR EPANET2.DLL (64 bits) DESDE EXCEL 2016 MICROSOFT VISUAL BASIC PARA APLICACIONES (VBA)"

Copied!
10
0
0

Texto completo

(1)

1

GUIA PARA CONECTAR EPANET2.DLL (64 bits) DESDE EXCEL 2016

MICROSOFT VISUAL BASIC PARA APLICACIONES (VBA)

Oscar Tomas Vegas Niño. Email [email protected]

Estudiante de Doctorado. Ingeniería del Agua y Medioambiental Universitat Politècnica de València (España)

INTRODUCCIÓN

Microsoft Visual Basic for Applications (VBA), es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows. VBA, es un subconjunto casi completo de Visual Basic 5.0 y 6.0, que viene integrado en aplicaciones de Microsoft Office. Cualquier cosa que se pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office, con la limitación que el producto final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado [1].

La Toolkit de Epanet puede integrarse en cualquier entorno de programación nativo o en las propias aplicaciones que ofrecen muchos paquetes de software propietario, como Excel, AutoCAD, ArcGIS, o bien libres como Open Office, gvSIG, QSIG, etc., [2].

Un grupo de investigadores, de distintas partes del mundo, deciden formar una comunidad [3] para seguir trabajando en la actualización (corrección de errores) y ampliación (nuevas funcionalidades) del código abierto de la librería de Epanet (epanet2.dll). La versión última es la 2.1, y existen dos archivos compilados para 32 y 64 bits. También, cuentan con un foro de discusiones para desarrolladores y usuarios de Epanet.

[4] en su página web personal, posteó una noticia sobre un complemento desarrollado para Excel de 32 bits, en el que se utiliza las funciones de Epanet sin escribir una línea de código. Este complemento utiliza la versión 2.0 de la librería de Epanet (build 2.00.12). Para poder utilizarlo en Excel de 64 bits, hay que seguir unas indicaciones descritas en los comentarios del mismo post. El objetivo de esta macro es poder utilizar los datos que provienen de un SCADA, analizarlos, y graficarlos rápidamente. También es posible manipular los datos de entrada desde la Excel, enviarlos a la Toolkit de Epanet, y obtener respuesta de cálculo. La utilidad que se persigue en esta guía es poder ayudar a entender como conectar el motor de cálculo de Epanet (epanet2.dll para 64 bits) en el nuevo entorno de Excel 2016, y poder automatizar tareas que se puedan desarrollar en el área de operaciones de un sistema de abastecimiento de agua potable.

Si deseas aprender a programar desde Excel con VBA, te recomiendo que visites las páginas web [5] y [6]. En estas dos páginas podrás encontrar información para empezar a crear macros desde cero.

(2)

2 SECUENCIA DE PASOS

A. Mostrar la pestaña “Programador”

La pestaña Programador es utilizada en la creación de macros y controles de formulario. De no estar habilitada, esta pestaña no se mostrará en la cinta de opciones de Excel. Para mostrarla, haremos clic en el Menú Archivo, y luego otro clic en la sección Opciones del panel izquierdo. Se mostrará el cuadro de diálogo Opciones de Excel y haremos clic en la opción Personalizar cinta de opciones. En la sección Pestañas principales, haremos clic en el cuadro de selección Programador y aceptamos los cambios efectuados. En la Figura 1 se muestra los pasos descritos anteriormente.

Figura 1. Mostrar pestaña Programador

Otra forma de acceder de manera rápida al cuadro de Opciones de Excel es haciendo clic derecho en la Cinta de Opciones, y luego clic en el comando Personalizar la Cinta de Opciones.

La pestaña Programador (Figura 2) tiene los comandos necesarios para crear macros y también para ejecutar macros previamente grabados. Desde esta pestaña podemos abrir el Editor de Visual Basic que nos permitirá escribir código VBA.

En la versión Excel 2013, esta pestaña se llama “Desarrollador”.

(3)

3 B. Preparar el módulo epanet2

Para hacer uso de las funciones escritas en la librería de Epanet, debemos primero que declarar las constantes globales y las funciones dentro de un módulo. Desde la pestaña Programador, haremos clic en el comando Visual Basic y se nos abrirá el editor de Microsoft VBA. Dentro del editor vamos al Menú Insertar y hacemos clic en Módulo. Este primer módulo queda clasificado dentro de la carpeta Módulos y lleva por nombre Modulo1 (Figura 3).

Figura 3. Insertar Módulo1 al Proyecto

Cambiaremos los nombres por defecto al proyecto y módulo. El proyecto se llamará ConectarAPIEpanet y el módulo epanet2 (Figura 4).

(4)

4 [7] realizó unos arreglos al archivo de encabezado (epanet2.bas) para utilizar la nueva librería de Epanet (versión 2.1) desde Visual Basic 6.0. En nuestro módulo epanet2, copiaremos el contenido escrito desde la línea 3 hasta la 233.

Las 74 funciones copiadas en el módulo epanet2 se pintan de rojo (Figura 5). Esto se debe a que las funciones están declaradas para trabajar sobre Excel de 32 bits. En Excel de 64 bits se debe añadir la palabra clave PtrSafe después de la instrucción Declare (Figura 6) para corregir el error.

Figura 5. Error al declarar funciones de Epanet

Figura 6. Declaración correcta de funciones de Epanet

Lo siguiente será guardar nuestro archivo. Para ello vamos a escribir un nombre, por ejemplo, ConectarAPIEpanet, y seleccionamos el tipo de documento Libro de Excel habilitado para macros (Figura 7).

(5)

5 Figura 7. Guardar archivo ConectarAPIEpanet

C. Copiar epanet2.dll en la carpeta System

En la nueva versión de la librería de Epanet (versión 2.1), para 32 y 64 bits, se han corregido errores y añadido nuevas funcionalidades. Toda la documentación, acerca de esta nueva versión, se puede consultar desde la página web de WaterAnalytics: http://wateranalytics.org/EPANET

Las librerías de Epanet, de 32 y 64 bits, se pueden descargar desde el siguiente enlace: https://github.com/OpenWaterAnalytics/EPANET/releases (Figura 8).

(6)

6 Al descomprimir, buscaremos la carpeta de nombre 64 (Figura 9), y copiaremos el archivo epanet2.dll en el siguiente directorio C:\Windows\System (Figura 10).

Figura 9. Archivo epanet2.dll de 64 bits

Figura 10. Copiado de epanet2.dll en la carpeta System D.Preparar hoja de trabajo

En caso de haber cerrado nuestra hoja de cálculo habilitada para macros de nombre ConectarAPIEpanet, la volvemos abrir y escribimos tres etiquetas y dos botones como se puede ver en la Figura 11.

(7)

7 Para añadir los dos botones que se muestran en la Figura 11, debemos ir a la pestaña Programador y hacer clic en Insertar. Un cuadro se despliega (Figura 12) y se elige el control Botón (control de formulario). Al hacer clic izquierdo en la celda “C10” para dibujar el control, se nos muestra un cuadro de diálogo flotante, donde nos pide que asignemos una macro, pero que por el momento no se asignará ninguna macro. El mismo proceso se repite para el segundo botón, o puede utilizarse las opciones de copiar y pegar.

Figura 12. Insertar los controles de tipo botón

Los botones añadidos muestran por defecto el nombre Botón, pero se puede modificar al posicionarse encima de ellos, hacer clic derecho y seleccionar Editar texto.

E. Trabajar dentro de Microsoft VBA

Para empezar a escribir líneas de código que luego se asocian a los botones Abrir y Aceptar, hay que añadir primero un módulo nuevo. Entonces, desde el menú Programador nos dirigimos a la opción Visual Basic y se nos abrirá el Editor de Visual Basic. Dentro del Editor hacemos clic en el menú Insertar y añadimos el nuevo módulo y cambiamos el nombre por defecto por Procesos.

Dentro del módulo, se escribirá los procedimientos BuscarFicheroInp y EjecutarMacro que serán asignados a los botones Abrir y Aceptar respectivamente. El código de cada uno de ellos se puede ver en las Figuras 13 y 14. Para asignar los procedimientos anteriores a los botones, tan sólo es posicionarse en cada uno de ellos, hacer clic derecho y elegir la opción Asignar macro…, en la caja de texto se escribe el nombre de cada procedimiento a asociar a los botones (Figura 15).

(8)

8 Figura 13. Procedimiento BuscarFicheroInp

(9)

9 Figura 15. Asociar macro BuscarFicheroInp al botón Abrir

F. Ejecutar macros

Las macros se ejecutan en el siguiente orden. Primero se ejecuta el botón Abrir, cuyo código asociado muestra un cuadro de diálogo que ayuda a navegar por el ordenador, y memorias de disco extraíbles, y seleccionar un archivo Inp de Epanet. En la hoja de cálculo se escribirá la ruta del archivo seleccionado. El botón Aceptar, ejecuta las funciones de la librería de Epanet para determinar el número total de nudos (nudos de caudal, embalses, depósitos) y líneas (tuberías, bombas y válvulas), y la fórmula de pérdidas de energía utilizada (Figura 16).

Para descargar el archivo ConectarAPIEpanet, con las macros desarrolladas, hacer clic en el siguiente enlace: https://goo.gl/AzBzvA

(10)

10 REFERENCIAS

[1] Wikipedia. [En línea]. Disponible en:

https://es.wikipedia.org/wiki/Visual_Basic_for_Applications. [Accedido: 25-dic-2017].

[2] O. Vegas, F. Martínez, J. Alonso, y V. Tzatchkov, Iniciación a la programación con la Toolkit de Epanet v2.00.12 en un Entorno Windows, 1.a ed. Jiutepec, México: Instituto

Mexicano de Tecnología del Agua, 2017. [3] Wateranalytics. [En línea]. Disponible en:

http://wateranalytics.org/EPANET/release_2_1.html. [Accedido: 25-dic-2017]. [4] E. Salomons, «Water Simulation». [En línea]. Disponible en:

http://www.water-simulation.com/wsp/2014/04/11/epanet-excel-add-in/. [Accedido: 25-dic-2017]. [5] Q. Arranz, Excel y VBA. [En línea]. Disponible en: https://excelyvba.com/.

[Accedido: 25-dic-2017].

[6] Excel Avanzado. [En línea]. Disponible en: http://www.excel-avanzado.com/. [Accedido: 25-dic-2017].

[7] E. Salomons, Github - OpenWaterAnalytics. [En línea]. Disponible en:

https://github.com/OpenWaterAnalytics/EPANET/blob/master/include/epanet2. bas. [Accedido: 25-dic-2017].

Referencias

Documento similar

- Para localizar la ventana Editor cuando se encuentre en la ventana Organizer, haga doble clic sobre el icono del diagrama del sistema, en este caso aloha y

En la misma hoja de c´ alculo, se ha creado una nueva tabla (figura 8) para simular el funcionamiento actual de la unidad, es decir, una tabla en la que no se producen fen´ omenos

Para este apartado se utilizará la programación en Microsoft Visual C++, se estudiará la forma más simple de conectar los datos del guante a la interfaz de

Objetivos Generales: Capacitar al alumno en el manejo de las herramien- tas necesarias para identificar el libro, la hoja de caculo, manejar opera- dores para acceso a las fórmulas,

Microsoft Teams para el ámbito educativo | Guía de inicio rápido para

Microsoft Teams para el ámbito educativo | Guía de inicio rápido para

A partir de los resultados de este análisis en los que la entrevistadora es la protagonista frente a los entrevistados, la información política veraz, que se supone que

18 Editor in Chief Revista Portuguesa de Cardiologia, 19 Editor in Chief Revue Tunisienne de Cardiologie, 20 Editor in Chief The Egyptian Heart Journal, 21 Editor in Chief Basic