Come automatizzare Visio con Visual Basic .NET

Riepilogo

Questo articolo illustra come automatizzare Visio usando Visual Basic .NET.

Ulteriori informazioni

Il codice di automazione di esempio in questo articolo esegue le operazioni seguenti:

  • Disegna un semplice diagramma di flusso nella pagina di disegno di Visio basato sui dati contenuti in una matrice.
  • Assegna un nome alla pagina.
  • Salva il documento.

La matrice è bidimensionale: il primo elemento contiene il nome della forma e il secondo elemento contiene il testo della forma.

Procedura per creare l'applicazione Visual Basic .NET di esempio

  1. Avviare Microsoft Visual Studio .NET. Scegliere Nuovo dal menu File e quindi fare clic su Progetto. In Tipi di progetto fare clic su Progetti di Visual Basic e quindi su Applicazione Windows in Modelli. Form1 viene creato per impostazione predefinita.

  2. Aggiungere un riferimento alla libreria di oggetti di Visio. A tal fine, attenersi alla seguente procedura:

    1. Scegliere Aggiungi riferimento dal menu Progetto.
    2. Nella scheda COM fare clic su una delle opzioni seguenti e fare clic su Seleziona:
      • Per Visio 2007, fare clic su Libreria dei tipi di Microsoft Visio 12.0.
      • Per Visio 2003, fare clic su Libreria dei tipi di Microsoft Visio 11.0.
      • Per Visio 2002, fare clic su Libreria dei tipi di Microsoft Visio 2002.

    Nota Se non è già stato fatto, Microsoft consiglia di scaricare e installare gli assembly di interoperabilità primari di Microsoft Office XP.

  3. Fare clic su OK nella finestra di dialogo Aggiungi riferimenti per accettare le selezioni. Se viene richiesto di generare wrapper per le librerie selezionate, fare clic su Sì.

  4. Scegliere ToolBox dal menu Visualizza. Aggiungere un pulsante a Form1.

  5. Fare doppio clic su Button1. La finestra del codice viene aperta in corrispondenza dell'evento Click per Button1.

  6. Nella finestra del codice sostituire il codice seguente

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

    Con:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
          System.EventArgs) Handles Button1.Click
       fBuildArray()
       fBuildFlowchart()
    End Sub
    
    
  7. Scegliere Aggiungi modulo dal menu Progetto.

  8. Sostituire il contenuto di Module1 con quanto segue:

    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
    
    

    Nota Modificare la costante TEMPLATEPATH in modo che punti alla cartella di installazione di Visio. Per impostazione predefinita, il percorso è uno dei seguenti:

    • Per Office Visio 2007, il percorso predefinito è C:\Programmi\Microsoft Office\Visio12\1033\BASFLO_U.VSS.

    • Per Visio 2003, il percorso predefinito per questo file è C:\Programmi\Microsoft Office\Visio11\1033\BASFLO_U.VSS

    • Per Visio 2002, il percorso predefinito per questo file è C:\Programmi\Microsoft Visio\Visio10\1033\Solutions\Flowchart\Basic Flowchart Shapes (US units).vss.

  9. Scegliere Avvia dal menu Debug.

  10. Aprire C:\Simpleflowchart.vsd in Visio per visualizzare i risultati.

Riferimenti

Per altre informazioni, vedere il seguente sito Web Microsoft Developer Network (MSDN):

Sviluppo di Microsoft Office con Visual Studio