Get Table Annotation and Contents Example (VBA)
This example shows how to get the table annotation and its contents.
'-----------------------------------------------
'
' Preconditions: Drawing must be open.
'
' Postconditions: None
'
'-----------------------------------------------
Option Explicit
Sub ProcessTable _
( _
swApp
As SldWorks.SldWorks, _
swModel
As SldWorks.ModelDoc2, _
swTable
As SldWorks.TableAnnotation _
)
Dim
swAnn As
SldWorks.Annotation
Dim
nNumCol As
Long
Dim
nNumRow As
Long
Dim
sRowStr As
String
Dim
i As
Long
Dim
j As
Long
Set
swAnn = swTable.GetAnnotation
nNumCol
= swTable.ColumnCount
nNumRow
= swTable.RowCount
'
Show the name and type of table
Debug.Print
" "
& swAnn.GetName & "
<" & swTable.Type
& ">"
'
Get the table contents
For
i = 0 To nNumRow - 1
sRowStr
= " ["
For
j = 0 To nNumCol - 1
sRowStr
= sRowStr & swTable.text(i,
j) & ","
Next
j
' Show the table contents
Debug.Print
Left(sRowStr, Len(sRowStr) - 1) & "]"
Next
i
End Sub
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swDraw As
SldWorks.DrawingDoc
Dim
swView As
SldWorks.View
Dim
swTable As
SldWorks.TableAnnotation
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swDraw = swModel
Debug.Print
"File = " & swModel.GetPathName
'
Get the first view
Set
swView = swDraw.GetFirstView
Do
While Not swView Is Nothing
'
Show the name of the view
Debug.Print
" "
& swView.Name
'
Get the first table annotation for this view
Set
swTable = swView.GetFirstTableAnnotation
Do
While Not swTable Is Nothing
ProcessTable
swApp, swModel, swTable
'
Get next table annotation for this view
Set
swTable = swTable.GetNext
Loop
'
Get the next view
Set
swView = swView.GetNextView
Loop
End Sub
'--------------------------------------