Automatisieren von Visio mit Visual Basic .NET

Zusammenfassung

In diesem Artikel wird veranschaulicht, wie Visio mit Visual Basic .NET automatisiert wird.

Weitere Informationen

Der Beispielautomatisierungscode in diesem Artikel führt folgende Aktionen aus:

  • Zeichnet ein einfaches Flussdiagramm auf dem Visio-Zeichenblatt, das auf Daten basiert, die in einem Array enthalten sind.
  • Benennt die Seite.
  • Speichert das Dokument.

Das Array ist zweidimensional: Das erste Element enthält den Namen der Form, und das zweite Element enthält den Text der Form.

Schritte zum Erstellen der Visual Basic .NET-Beispielanwendung

  1. Starten Sie Microsoft Visual Studio .NET. Klicken Sie im Menü "Datei" auf "Neu" und dann auf "Projekt". Klicken Sie unter "Projekttypen" auf "Visual Basic-Projekte" und dann unter "Vorlagen" auf "Windows-Anwendung". Form1 wird standardmäßig erstellt.

  2. Fügen Sie einen Verweis auf die Visio-Objektbibliothek hinzu. Gehen Sie dazu wie folgt vor:

    1. On the Project menu, click Add Reference.
    2. Klicken Sie auf der Registerkarte COM auf eine der folgenden Optionen, und klicken Sie auf "Auswählen":
      • Klicken Sie für Visio 2007 auf die Typbibliothek von Microsoft Visio 12.0.
      • Klicken Sie für Visio 2003 auf die Typbibliothek von Microsoft Visio 11.0.
      • Klicken Sie für Visio 2002 auf "Microsoft Visio 2002-Typbibliothek".

    Hinweis Wenn dies noch nicht geschehen ist, empfiehlt Microsoft, die primären Interopassemblys (PRIMARY Interop Assemblies, PIAs) von Microsoft Office XP herunterzuladen und zu installieren.

  3. Klicken Sie im Dialogfeld "Verweise hinzufügen" auf "OK", um Ihre Auswahl zu übernehmen. Wenn Sie aufgefordert werden, Wrapper für die ausgewählten Bibliotheken zu generieren, klicken Sie auf "Ja".

  4. Klicken Sie im Menü "Ansicht" auf "ToolBox". Fügen Sie formular1 eine Schaltfläche hinzu.

  5. Doppelklicken Sie auf Schaltfläche1. Das Codefenster wird beim Click-Ereignis für Button1 geöffnet.

  6. Ersetzen Sie im Codefenster den folgenden Code

    Private Sub Button1_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click
    End Sub
    
    

    mit:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
          System.EventArgs) Handles Button1.Click
       fBuildArray()
       fBuildFlowchart()
    End Sub
    
    
  7. Klicken Sie im Menü "Projekt" auf "Modul hinzufügen".

  8. Ersetzen Sie den Inhalt von Modul1 durch Folgendes:

    Module Module1
       Public aryValues(5, 2) As String
       Sub fBuildArray()
          aryValues(0, 0) = "Terminator"
          aryValues(1, 0) = "Document"
          aryValues(2, 0) = "Decision"
          aryValues(3, 0) = "Process"
          aryValues(4, 0) = "Terminator"
    
    aryValues(0, 1) = "Begin Routing Process"
          aryValues(1, 1) = "Gather Customer Data"
          aryValues(2, 1) = "Supported Issue?"
          aryValues(3, 1) = "Dispatch to Queue"
          aryValues(4, 1) = "End Routing Process"
       End Sub
    
    Sub fBuildFlowchart()
          Dim vApp As Visio.Application
          Dim vDoc As Visio.Document
          Dim vFromShape As Visio.Shape
          Dim vToShape As Visio.Shape
          Dim vConnector As Visio.Shape
          Dim vFlowChartMaster As Visio.Master
          Dim vConnectorMaster As Visio.Master
          Dim vStencil As Visio.Document
          Dim dblXLocation As Double
          Dim dblYLocation As Double
          Dim vBeginCell As Visio.Cell
          Dim vEndCell As Visio.Cell
          Dim iCount As Integer
          Const TEMPLATEPATH = "C:\Program Files\Microsoft Office\Visio10\1033\" _
             & "Solutions\Flowchart\Basic Flowchart Shapes (US units).vss"
    
    ' Change this constant to match your choice of location and file name.
          Const SAVENEWFILE = "C:\Simpleflowchart.vsd"
    
    ' Start point measured from the bottom left corner.
          dblXLocation = 4.25
          dblYLocation = 8.5
    
    vApp = New Visio.Application()
          'Create a new document; note the empty string.
          vDoc = vApp.Documents.Add("")
          vStencil = vApp.Documents.OpenEx(TEMPLATEPATH, 4)
    
    For iCount = LBound(aryValues) To UBound(aryValues) - 1
             vFlowChartMaster = vStencil.Masters(aryValues(iCount, 0))
             vToShape = vApp.ActivePage.Drop(vFlowChartMaster, _
                dblXLocation, dblYLocation)
             vToShape.Text = aryValues(iCount, 1)
             If Not vFromShape Is Nothing Then
                If vConnectorMaster Is Nothing Then
                   vConnectorMaster = vStencil.Masters("Dynamic Connector")
                End If
                vConnector = vApp.ActivePage.Drop(vConnectorMaster, 0, 0)
                vBeginCell = vConnector.Cells("BeginX")
                vBeginCell.GlueTo(vFromShape.Cells("AlignBottom"))
                vEndCell = vConnector.Cells("EndX")
                vEndCell.GlueTo(vToShape.Cells("AlignTop"))
                vConnector.SendToBack()
             End If
             vFromShape = vToShape
             vToShape = Nothing
             dblYLocation = dblYLocation - 1.5
          Next
          vDoc.Pages(1).Name = "Flowchart Example"
          Try
             ' Delete the previous version of the file.
             Kill(SAVENEWFILE)
          Catch
          End Try
          vDoc.SaveAs(SAVENEWFILE)
          vDoc.Close()
          vApp.Quit()
          vDoc = Nothing
          vApp = Nothing
          GC.Collect()
       End Sub
    End Module
    
    

    Hinweis Ändern Sie die TEMPLATEPATH-Konstante so, dass sie auf Ihren Visio-Installationsordner verweist. Standardmäßig ist der Speicherort einer der folgenden:

    • Für Office Visio 2007 lautet der Standardspeicherort "C:\Programme\Microsoft Office\Visio12\1033\BASFLO_U.VSS".

    • Für Visio 2003 lautet der Standardspeicherort für diese Datei "C:\Programme\Microsoft Office\Visio11\1033\BASFLO_U.VSS".

    • Für Visio 2002 lautet der Standardspeicherort für diese Datei "C:\Program Files\Microsoft Visio\Visio10\1033\Solutions\Flowchart\Basic Flowchart Shapes (US units).vss".

  9. Klicken Sie im Menü "Debuggen" auf "Start".

  10. Öffnen Sie "C:\Simpleflowchart.vsd" in Visio, um die Ergebnisse anzuzeigen.

References

Weitere Informationen finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:

Microsoft Office-Entwicklung mit Visual Studio