Den Index einer Tabelle im Dokument bzw. in einem Storyrange mit VBA ermitteln
Beim Arbeiten mit Tabellen in Word benötigt man ab und zu den Index der Tabelle, in der die Einfügemarke (Selection) gerade steht. Leider haben Tabellen in Word keine ID-Eigenschaft, die man dafür verwenden könnte, und auch keinen Namen. Dazu dient die folgende Funktion, mit der man den Index einer Tabelle in dem Storyrange bestimmen kann, in dem die Einfügemarke gerade steht. Steht die Einfügemarke im Hauptteil (Body) des Dokuments, liefert die Funktion natürlich den Index im Hauptteil des Dokuments zurück.
Function fktTabellenIndex() As Integer
' gibt 0 zurück, wenn im Storyrange keine Tabellen enthalten sind
' gibt -1 zurück, wenn die Selection nicht in einer Tabelle steht
' sonst den Index der Tabelle im Storyrange
' © Nora Richter 2008
Dim i As Integer
If Not Selection.Information(wdWithInTable) Then
fktTabellenIndex = -1
Exit Function
End If
If ActiveDocument.StoryRanges(Selection.StoryType).Tables.Count < 1 Then
fktTabellenIndex = 0
Exit Function
End If
For i = 1 To ActiveDocument.StoryRanges(Selection.StoryType).Tables.Count
If ActiveDocument.StoryRanges(Selection.StoryType).Tables(i).Range.IsEqual(Selection.Tables(1).Range) Then
fktTabellenIndex = i
Exit For
End If
Next i
End Function
Sub Aufruf()
MsgBox fktTabellenIndex
End Sub