All MS applications have an excellent ActiveX API (which is what the macro would use). Instead of embedding a macro in Visio though (security issues, versioning issues,...), write that code as a VBscript or PowerShell script and execute that from FM through the 'Send Event' script step.
You can write that OS-level script to accept a parameter for the name and location, or - since those OS scripts are just text files - you could generate the whole syntax from inside FM, in a text field. Then use Export Field Contents to spitit out and Send Event to execute it. Followed by another Send Event to use the Windows CLI 'del' command to delete the OS script.