The script provides data transfer to a Visio document more convenient and faster than the file selection dialog box.
The script is designed to work with Visio TreeView template.
Visio provides a dialog for selecting files, but is limited by an unregulated filter. Only Visio files can be selected, but not arbitrary files. Therefore, the developer himself has to create a dialog box for selecting a data file. But this requires a lot of code.
The developer can use the InputBox to provide the user with the ability to manually enter the path to the data file or copy it from the Windows Explorer window. This is more convenient, but not enough.
The next step is to try to “transfer” the data file from the explorer to the document. This method is used in the Visio TreeView template.
There is a script "TreeView starter" written in VBS. The script icon is located on the desktop. When "throwing" a data file onto the script icon, the script does the following:
- Selects a file path from command line arguments.
- Creates a Visio document using the Visio TreeView template.
- Writes the file path to the DocumentSheet.Data3 field
The Visio document now contains information about the location of the data file. You just need to take them from the corresponding field and enter them in the InputBox.
If now the user performs the “Import from File” operation, the InputBox field will contain the file path substituted from DocumentSheet.Data3. The user only needs to press the OK key.
Instructions for use
Copy the script text and save it in a file with the extension .vbs.
Make a Shortcut for the script file and place it on the Windows desktop.
' 1 ===== Drag&Dropping new data file If WScript.Arguments.Count > 0 Then ' The file was Drag&Dropped to VBS script docName = WScript.Arguments(0) 'docPath = Mid(docName,1,InStrRev(docName,"\")) 'MsgBox docName Else WScript.Quit End If ' 2 ===== Create Visio document Dim vApp Dim vDoc Set vApp = Nothing On Error Resume Next Set vApp = CreateObject("Visio.Application") Set vDoc = vApp.Documents.Add("D_2019e.vst") If vApp is Nothing or vDoc is Nothing Then MsgBox "Visio document must be opened." WScript.Quit End If On Error Goto 0 'Check 'folder' master On Error Resume Next Set mf = Nothing Set mf = vDoc.Masters("folder") If mf is Nothing Then MsgBox "Visio document must be created on TreeView template." WScript.Quit End If On Error Goto 0 vDoc.DocumentSheet.Data3 = docName