S
Sergei Emelyanenkov
Hi,
I'm using XMLNodes in Word documents. There is a problem if some of them are
placed in other stories then Main Text Story (i.e. in headers/footers, text
boxes etc.). Reading XMLNodes properties causes an error for just opened
documents. If XMLNodes where manually selected after document opening,
reading its properties works fine. It is illustrated by the following VBA
procedure and its output (XMLNodes are in main text, text box and header):
Sub XMLNodesProperties()
On Error GoTo ErrorHandler
Dim myStoryRange As Range
Dim node As XMLNode
Dim i As Integer
i = 1
For Each myStoryRange In ThisDocument.StoryRanges
For Each node In myStoryRange.XMLNodes
Debug.Print "Node" & i & ": " & "StoryType = " &
myStoryRange.StoryType & ", "
Debug.Print "BaseName = " & node.BaseName & vbCrLf
i = i + 1
Next
Next myStoryRange
Exit Sub
ErrorHandler:
Debug.Print "Err = " & Err.Number & ", " & "Description = " &
Err.Description & vbCrLf
Resume Next
End Sub
Output for just opened document:
Node1: StoryType = 1,
BaseName = Test
Node2: StoryType = 5,
Err = -2147467259, Description = Method 'BaseName' of object 'XMLNode' failed
Node3: StoryType = 7,
Err = -2147467259, Description = Method 'BaseName' of object 'XMLNode' failed
XMLNodes where manually selected:
Node1: StoryType = 1,
BaseName = Test
Node2: StoryType = 5,
BaseName = Test
Node3: StoryType = 7,
BaseName = Test
Is there a way to read XMLNode properties without selecting them all?
Best regards,
Sergei
I'm using XMLNodes in Word documents. There is a problem if some of them are
placed in other stories then Main Text Story (i.e. in headers/footers, text
boxes etc.). Reading XMLNodes properties causes an error for just opened
documents. If XMLNodes where manually selected after document opening,
reading its properties works fine. It is illustrated by the following VBA
procedure and its output (XMLNodes are in main text, text box and header):
Sub XMLNodesProperties()
On Error GoTo ErrorHandler
Dim myStoryRange As Range
Dim node As XMLNode
Dim i As Integer
i = 1
For Each myStoryRange In ThisDocument.StoryRanges
For Each node In myStoryRange.XMLNodes
Debug.Print "Node" & i & ": " & "StoryType = " &
myStoryRange.StoryType & ", "
Debug.Print "BaseName = " & node.BaseName & vbCrLf
i = i + 1
Next
Next myStoryRange
Exit Sub
ErrorHandler:
Debug.Print "Err = " & Err.Number & ", " & "Description = " &
Err.Description & vbCrLf
Resume Next
End Sub
Output for just opened document:
Node1: StoryType = 1,
BaseName = Test
Node2: StoryType = 5,
Err = -2147467259, Description = Method 'BaseName' of object 'XMLNode' failed
Node3: StoryType = 7,
Err = -2147467259, Description = Method 'BaseName' of object 'XMLNode' failed
XMLNodes where manually selected:
Node1: StoryType = 1,
BaseName = Test
Node2: StoryType = 5,
BaseName = Test
Node3: StoryType = 7,
BaseName = Test
Is there a way to read XMLNode properties without selecting them all?
Best regards,
Sergei