Attribute VB_Name = "View_mit_Tabelle_erstellen"
' Makro:        View_mit_Tabelle_erstellen
' Version:      1.0
' Catia Level:  V5R19
' UIL:          English (User Interface Language)
' Autor:        Christian Obholzer
' E-Mail:       ch.obholzer@aon.at
' Erstellt:     26.09.2010
' Zweck:        neue Ansicht mit einer Tabelle erstellen
'-----------------------------------------------------------------------------------
' Änderungen:   Datum, Name
'               Hier wird die Änderung angegeben
'               Datum, Name
'               Hier wird die Änderung angegeben
'-----------------------------------------------------------------------------------

Option Explicit
    
Sub CATMain()

    '***Deklarationen
    Dim objWindows As Windows
    Dim objDoc As Document
    Dim strTyp As String
    Dim drwSheets As DrawingSheets
    Dim drwSheet As DrawingSheet
    Dim drwViews As DrawingViews
    Dim drwViewneu As DrawingView
    Dim drwView As DrawingView
    Dim vntTabelle As Variant
    Dim intX As Integer
    Dim intY As Integer
    Dim intZeilenanzahl As Integer
    Dim intSpaltenanzahl As Integer
    Dim intZeilenhoehe As Integer
    Dim intSpaltenbreite As Integer
    Dim vntZellenwert As Variant
    Dim objSel As Object

    On Error GoTo Fehler

    '***Abfrage nach geöffnetem Dokument
    Set objWindows = CATIA.Windows
    If objWindows.Count = 0 Then
        MsgBox "Es ist kein Dokument geöffnet." & vbNewLine & _
        "Das Makro kann nicht ausgeführt werden und wird beendet.", vbCritical + vbOKOnly, "Kein Dokument offen"
        Exit Sub
    End If

    '***Auslesen der Dokumentart
    Set objDoc = CATIA.ActiveDocument
    strTyp = TypeName(objDoc)
    If strTyp <> "DrawingDocument" Then
        MsgBox "Dieses Dokument ist kein Drawing." & vbNewLine & _
        "Das Makro kann nicht ausgeführt werden und wird beendet.", vbCritical + vbOKOnly, "Falscher Dokumententyp"
        Exit Sub
    End If
    
    Set drwSheets = objDoc.Sheets
    Set drwSheet = drwSheets.ActiveSheet
    Set drwViews = drwSheet.Views
    
    intI = 1
    
    Set objSel = objDoc.Selection
    '***Vorselektion löschen um das Ergebniss nicht zu verfälschen
    objSel.Clear
    
    '***Performanceerhöhung der Suche
    CATIA.HSOSynchronized = False
    '***Element suchen
    objSel.Search "Drafting.View.Name=Tabelle*"
    If objSel.Count > 0 Then
        intI = objSel.Count + 1
    End If
    CATIA.HSOSynchronized = True
    
    objSel.Clear
    
    '***Ansicht mit dem Namen "Tabelle" erzeugen
    Set drwViewneu = drwSheet.Views.Add("Tabelle_" & intI)
    
    '***Ansicht ansprechen
    Set drwView = drwViews.Item("Tabelle_" & intI)
    
    '***Ansicht aktivieren
    drwView.Activate

    '***X Position der Tabelle
    intX = 100
    '***Y Position der Tabelle
    intY = 100
    '***Zeilenanzahl
    intZeilenanzahl = 2
    '***Spaltenanzahl
    intSpaltenanzahl = 3
    '***Zeilenhöhe
    intZeilenhoehe = 10
    '***Spaltenbreite
    intSpaltenbreite = 60

    '***Tabelle erstellen
    Set vntTabelle = drwView.Tables.Add(intX, intY, intZeilenanzahl, intSpaltenanzahl, intZeilenhoehe, intSpaltenbreite)
    '***Tabelle umbenennen
    vntTabelle.Name = "Tabelle.1"
    
    '***Einfügepunkt der Tabelle
    vntTabelle.AnchorPoint = CatTableTopLeft
    
    '***Zelle mit Wert füllen
    vntTabelle.SetCellString 1, 1, "Ueberschrift 1"
    '***Textausrichtung: mitte, mitte
    vntTabelle.SetCellAlignment 1, 1, CatTableMiddleCenter
    '***Zellenwert ansprechen
    Set vntZellenwert = vntTabelle.GetCellObject(1, 1)
    '***Schriftgröße definieren
    vntZellenwert.SetFontSize 0, 0, 5
    '***Schrifttyp definieren
    vntZellenwert.SetFontName 0, 0, "Monospac821 BT"
    
    '***Zelle mit Wert füllen
    vntTabelle.SetCellString 1, 2, "Ueberschrift 2"
    '***Textausrichtung: mitte, mitte
    vntTabelle.SetCellAlignment 1, 2, CatTableMiddleCenter
    '***Zellenwert ansprechen
    Set vntZellenwert = vntTabelle.GetCellObject(1, 2)
    '***Schriftgröße definieren
    vntZellenwert.SetFontSize 0, 0, 5
    '***Schrifttyp definieren
    vntZellenwert.SetFontName 0, 0, "Monospac821 BT"
    
    '***Zelle mit Wert füllen
    vntTabelle.SetCellString 1, 3, "Ueberschrift 3"
    '***Textausrichtung: mitte, mitte
    vntTabelle.SetCellAlignment 1, 3, CatTableMiddleCenter
    '***Zellenwert ansprechen
    Set vntZellenwert = vntTabelle.GetCellObject(1, 3)
    '***Schriftgröße definieren
    vntZellenwert.SetFontSize 0, 0, 5
    '***Schrifttyp definieren
    vntZellenwert.SetFontName 0, 0, "Monospac821 BT"
    
    '***Tabelle suchen -> Name wurde weiter oben definiert
    Set objSel = objDoc.Selection
    '***Vorselektion löschen um das Ergebniss nicht zu verfälschen
    objSel.Clear
    '***Performanceerhöhung der Suche
    CATIA.HSOSynchronized = False
    objSel.Search "Drafting.Table.Name= Tabelle.1, all"
    CATIA.HSOSynchronized = True
    
    '***Farbe über RGB definieren
    objSel.VisProperties.SetRealColor 0, 0, 0, 1
    '***Linienart definieren
    objSel.VisProperties.SetRealLineType 1, 0
    '***Liniendicke definieren
    objSel.VisProperties.SetRealWidth 1, 0
    
    objSel.Clear
    
Exit Sub

'***Fehlerbehandlung: Ausgabe der Fehlernummer und Fehlerbeschreibung
Fehler:
    MsgBox "Fehlernummer: " & Err.Number & vbNewLine & _
    "Fehlerbeschreibung: " & Err.Description, vbCritical + vbOKOnly, "Fehler"
    
End Sub


