Saltar al contenido

Programaci贸n de aplicaciones de Microsoft Project Visual Basic – Una breve introducci贸n

Me sorprendió un poco descubrir que la instalación estándar de Microsoft Project no tiene una variable o campo para mostrar el coste de los recursos materiales de las tareas. Aparentemente, la visualización de los datos de este proyecto requiere la inserción de una subrutina Visual Basic Application (VBA) para Microsoft Project. De verdad!

Mi pregunta es ¿por qué los datos del proyecto tan simples como listar el costo del material requieren una extensión de subrutina VBA? Mi cuñado, un profesor de ciencias de la computación, supone que Microsoft, muy probablemente, omitió intencionalmente el campo del costo de los materiales para empujarnos a todos los usuarios novatos de Microsoft Project hacia la programación de proyectos VBAs. No pretendo validar la exactitud de la teoría de mi cuñado. Pero saber cómo programar los VBAs del Proyecto, aparentemente, abre la puerta a una miríada de datos del proyecto en Microsoft Project.

Bueno, consultando un foro de discusión de Microsoft Project encontré rápidamente la subrutina VBA necesaria para listar el coste del material de la tarea. Incluso me recomendaron el siguiente libro de programación de VBA Project «VBA Programming for Microsoft Project $002798 through 2010 with an introduction to VSTO» de Rod Gill. Además de los fundamentos del Proyecto VBA, la creación de un campo de costes de material también requiere una comprensión rudimentaria de los campos personalizados de Microsoft Project. Consulte el blog Usando los campos personalizados de Microsoft Project para una introducción a los campos personalizados.

¡Genial! Por lo tanto, la aplicación de un conocimiento básico de los campos personalizados y la programación del Proyecto VBA nos permitirá crear un campo personalizado para mostrar los costes de material de las tareas. Microsoft Project viene estándar con herramientas de desarrollo de programas VBA.

Este artículo se basa en su comprensión de los campos personalizados de Microsoft Project para explicar cómo empezar a programar Microsoft Project VBA.

Precaución

Una advertencia antes de empezar. La subrutina de costo de material VBA demostrada en este blog proviene de mi consulta en un foro del Proyecto VBA. No escribí la subrutina ni he probado completamente todas las aplicaciones de la subrutina con Microsoft Project. La intención es que comience a aplicar subrutinas Project VBA para resolver una limitación de la vida real en Microsoft Project. Gracias a la comunidad del Proyecto VBA pude obtener el código para esta demostración.

Demostración

Comenzamos con un proyecto de demostración. En la Figura 1 tenemos un proyecto de Reparación y Mejora de Tuberías.

Figura 1

Este programa ya ha sido actualizado con el progreso de una semana. Tenga en cuenta en la columna$0027Nombres de recursos$0027 que tanto los recursos laborales como los materiales se han aplicado a las tareas respectivas. La columna Coste muestra el coste de la mano de obra y del material para cada tarea y para todo el proyecto. ¿No sería bueno tener una columna que separara el costo material de cada tarea y de todo el proyecto? Sí, lo sería, y para hacer esto en Microsoft Project necesitaremos el desarrollador del Proyecto VBA.

Desarrollador VBA

Para empezar, primero añadimos la pestaña de desarrollador, para tener acceso a las herramientas VBA de Microsoft Project. Proceda haciendo clic con el botón derecho y seleccionando «Personalizar la cinta…» en el menú emergente resultante, Figura 2.

Figura 2

Alternar Desarrollador en las Pestañas Principales para personalizar las opciones de la cinta, Figura 3.

Figura 3

A continuación, seleccione la nueva pestaña Desarrollador que aparece y haga clic en Visual Basic, Figura 4.

Figura 4

Aparecen las herramientas para desarrolladores de VBA de Microsoft Project.

En el menú desplegable superior del Desarrollador seleccione Insertar y Procedimiento, Figura 5; queremos añadir una nueva subrutina para un campo de coste de material.

Figura 5

El nombre de nuestra subrutina es$0027MaterialsCost$0027, Figura 6.

Figura 6

Toggle Sub for Type y Public for Scope. Haga clic en Aceptar y el proyecto generará la primera y la última línea de nuestra subrutina. Lo que usted querrá hacer ahora es descargar y abrir el archivo MaterialsCost.txt y copiar y pegar el código VBA en el editor de Procedimientos Generales, Figura 7.

Figura 7

Una vez más, la intención no es analizar la fuerza de este código, sino demostrar cómo utilizar una simple subrutina del Proyecto VBA.

Una vez introducido el código, tal y como se muestra en la Figura 7, seleccione Ejecutar en el menú desplegable superior y `Ejecutar Sub/UserForm$0027, Figura 8.

Figura 8

Nuestro código asigna el Coste de material al campo Cost1 custom, que mostramos en la Figura 9.

Figura 9

Tendrá que confiar en mí que los costos listados en la columna Costo1 son de hecho los costos de material separados de cada tarea. Tenga en cuenta que la subrutina no suma los costes de material de las tareas de resumen, lo cual es un problema.

Configuración de campos personalizados

Podemos resolver este problema y proporcionar una mejor etiqueta con algunos ajustes en el campo Cost1 custom. Seleccione la ficha Proyecto y Campos personalizados, Figura 10.

Figura 10

En la Figura 11, seleccione el Tipo de Costo.

Figura 11

Resalte Costo1 y haga clic en el botón Renombrar. Escriba la etiqueta$0027Material Cost$0027 más apropiada. Eso resuelve nuestro problema de etiquetado. Además de proporcionar un resumen del Costo de Materiales para nuestras tareas de resumen, en la Figura 12, alternamos el Cálculo de rollup para las filas de resumen de tareas y grupos.

Figura 12
En el menú desplegable seleccione Suma, Figura 12. Haga clic en Aceptar, y ahora tenemos el costo del material sumado en las tareas de resumen y para todo el proyecto, Figura 13. Figura 13

Consejos útiles

Un día, tendrás que volver a tu código para hacer un cambio y, cuando lo veas, puede que pienses por qué hice eso, o incluso qué hace eso. Deberías adquirir el hábito de:

  • Añadiendo comentarios que explican lo que está sucediendo en el código – los necesitarás en un plazo de 6 meses.
  • Sangrar el código, para que los bucles y las estructuras de control sean fáciles de seguir.
  • El entorno de desarrollo de VBA le permite utilizar pestañas, por lo que sólo tiene que pulsar una tecla por línea.
  • Use la Opción Explícita en cada módulo. Esto fuerza la declaración de variables antes de que sean usadas – las sentencias Dim. Esto atrapa errores tipográficos en el código y facilita la depuración.

Aunque esta introducción es breve, usted debe introducir buenos hábitos desde el principio. Es muy fácil terminar con el código de los espaguetis y puede ser evitado.

Resumen

Además de entender nuestro código de proyecto VBA, el proceso para insertar y ejecutar una subrutina de proyecto VBA es bastante sencillo. Y sólo requiere algunos ajustes menores en el cuadro de diálogo Campos personalizados. Así que con estas instrucciones y el libro recomendado deberías estar en camino.

Esperamos que el Proyecto VBA amplíe los límites de Microsoft Project para usted. Ciertamente debería ayudarle a separar y visualizar los costes de material y/o equipo. Por supuesto, puede utilizar mi enfoque y consultar los foros del Proyecto VBA para adquirir el código existente del Proyecto VBA para adaptarlo a sus propósitos. Tal vez, sin embargo, comprender un poco la codificación de VBA Project le ayudará a implementar completamente el poder de Microsoft Project para su organización.