Visual Basic .NET ile Visio'yu otomatikleştirme

Özet

Bu makalede, Visual Basic .NET kullanarak Visio'yu otomatikleştirme işlemleri gösterilmektedir.

Daha Fazla Bilgi

Bu makaledeki örnek otomasyon kodu aşağıdakileri yapar:

  • Visio çizim sayfasında bir dizideki verileri temel alan basit bir akış çizelgesi çizer.
  • Sayfayı adlandırın.
  • Belgeyi kaydeder.

Dizi iki boyutludur: İlk öğe şeklin adını, ikinci öğe ise şeklin metnini içerir.

Örnek Visual Basic .NET Uygulaması Oluşturma Adımları

  1. Microsoft Visual Studio .NET'i başlatın. Dosya menüsünde Yeni'ye ve ardından Proje'ye tıklayın. Proje türleri'nin altında Visual Basic Projeleri'ne ve ardından Şablonlar'ın altında Windows Uygulaması'nı tıklatın. Form1 varsayılan olarak oluşturulur.

  2. Visio nesne kitaplığına başvuru ekleyin. Bunu yapmak için şu adımları uygulayın:

    1. Proje menüsünde Başvuru Ekle'ye tıklayın.
    2. COM sekmesinde, aşağıdaki seçeneklerden birine tıklayın ve Seç'e tıklayın:
      • Visio 2007 için Microsoft Visio 12.0 Tür Kitaplığı'ne tıklayın.
      • Visio 2003 için Microsoft Visio 11.0 Tür Kitaplığı'ne tıklayın.
      • Visio 2002 için Microsoft Visio 2002 Tür Kitaplığı'ne tıklayın.

    Not Henüz yapmadıysanız Microsoft, Microsoft Office XP Birincil Birlikte Çalışma Derlemelerini (PIA) indirip yüklemenizi önerir.

  3. Seçimlerinizi kabul etmek için Başvuru Ekle iletişim kutusunda Tamam'a tıklayın. Seçtiğiniz kitaplıklar için sarmalayıcı oluşturma istemi alırsanız Evet'e tıklayın.

  4. Görünüm menüsünde Araç Kutusu'na tıklayın. Form1'e bir düğme ekleyin.

  5. Düğme1'e çift tıklayın. Düğme1 için Tıklama olayında kod penceresi açılır.

  6. Kod penceresinde aşağıdaki kodu değiştirin

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

    Ile:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
          System.EventArgs) Handles Button1.Click
       fBuildArray()
       fBuildFlowchart()
    End Sub
    
    
  7. Proje menüsünde Modül Ekle'ye tıklayın.

  8. Module1'in içeriğini aşağıdakilerle değiştirin:

    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
    
    

    Not TEMPLATEPATH sabitini Visio yükleme klasörünüze işaret etmek için değiştirin. Varsayılan olarak, konum aşağıdakilerden biridir:

    • Office Visio 2007 için varsayılan konum C:\Program Files\Microsoft Office\Visio12\1033\BASFLO_U.VSS'dir.

    • Visio 2003 için, bu dosyanın varsayılan konumu C:\Program Files\Microsoft Office\Visio11\1033\BASFLO_U.VSS'dir

    • Visio 2002 için, bu dosyanın varsayılan konumu C:\Program Files\Microsoft Visio\Visio10\1033\Solutions\Flowchart\Basic Flowchart Shapes (ABD birimleri).vss'dir.

  9. Hata Ayıkla menüsünde Başlat'a tıklayın.

  10. Sonuçları görmek için Visio'da C:\Simpleflowchart.vsd dosyasını açın.

Başvurular

Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesine bakın:

Visual Studio ile Microsoft Office Geliştirme