I want to create a visio page, add some shapes, store it with a given filename and close it.
Currently, always the object/template toolbar is active and thus stored under the given filename.
What is the best way to store the current drawing?
thanks
Dim visioApp, visioPage as Object
Set visioApp = CreateObject("visio.application")
visioApp.Documents.AddEx ("")
Set visioPage = visioApp.ActiveWindow.Page
Set visioStencil = visioApp.Documents.Add("BASFLO_M.VSS")
' add shapes
visioApp.ActiveDocument.SaveAs ("c:\.......vsd")
visioApp.ActiveDocument.Close
As you point out, when you open the stencil the active document changes. You can change it back to the document you are editing like this:
You could also use a reference to the document object you created and not rely on the active document:
I have one last suggestion. Instead of creating a new document and then a stencil I suggest you create a new document based on the Basic Flowchart template. By doing this you create a document with all the same default settings for grid, fonts, etc as the Basic Flowchart you would create if you selected that template in the user interface. Another benefit of using the template is that the flowchart stencils will be opened in the document’s workspace every time the document you create is reopened. Try this: