Ahora ya es posible combinar las subrutinas en la macro Gardenpath. En VBA IDE escriba el siguiente código en la ventana Código, después de la subrutinadrawtiles:
' Ejecución del comando, invocando las funciones constituyentes
Sub gardenpath()
Dim sblip As Variant
Dim scmde As Variant
gpuser
sblip = ThisDrawing.GetVariable("blipmode")
scmde = ThisDrawing.GetVariable("cmdecho")
ThisDrawing.SetVariable "blipmode", 0
ThisDrawing.SetVariable "cmdecho", 0
drawout
drawtiles
ThisDrawing.SetVariable "blipmode", sblip
ThisDrawing.SetVariable "cmdecho", scmde
End Sub
La subrutinapath invocagpuser para obtener la entrada de los datos necesarios. El método GetVariable se utiliza entonces para obtener los valores actuales de las variables de sistema BLIPMODE y CMDECHO y guarda estos valores como sblip y scmde. La subrutina utiliza entonces el método SetVariable para establecer ambas variables de sistema en 0, desactivando marcas auxiliares y eco de comandos. A continuación, se dibuja el camino usando las subrutinas drawout y drawtiles. Finalmente, se utiliza el método SetVariable para restablecer el valor original de las variables de sistema.
Como puede verse, ésta es la única subrutina, entre las que ha escrito, que no comienza con la palabra clave Private, que garantiza que la subrutina sólo puede invocarse desde el módulo actual. Puesto que la subrutina gardenpath debe estar disponible para el usuario, debe omitirse la palabra clave Private.