2016-10-13 6 views
0

いくつかのVBAコードでWordの目次オブジェクトの右側にページ番号を使用しようとしています。 GetCrossReferenceItems(wdRefTypeHeading)を使用してこれらのページ番号に関連付けられたテキストを格納している配列にアクセスできますが、ページ番号自体では取得できないようです。 hereと記載されているGetCrossReferenceItems定数のどれも関連性がないようです。Excel VBAでMS Wordの目次ページ番号を参照するには?

enter image description here

これらのページ番号を参照する方法はありますか?ありがとう!以下のように使用することが

Function GetPagesNumber(doc As Document) As Long() 
    Dim i As Long 
    Dim myRng As Range 
    Dim myHeadings As Variant 

    With doc 
     Set myRng = .Content 
     myRng.Collapse Direction:=wdCollapseEnd 

     myHeadings = .GetCrossReferenceItems(wdRefTypeHeading) 
     ReDim pages(1 To UBound(myHeadings)) As Long 
     For i = 1 To UBound(myHeadings) 
      myRng.InsertCrossReference ReferenceType:=wdRefTypeHeading, ReferenceKind:=wdPageNumber, ReferenceItem:=i 
      With .Paragraphs(ActiveDocument.Paragraphs.count).Range 
       myRng.SetRange Start:=.Start, End:=.End - 1 
      End With 
      pages(i) = CLng(myRng.Text) 
     Next i 
    End With 
    myRng.Delete 
    GetPagesNumber = pages 
End Function 

答えて

1

私はので、ここで "Worder" じゃないが、私が思いついたものです

Option Explicit 
Sub main() 
    Dim myPagesNumber() As Long 

    myPagesNumber = GetPagesNumber(ActiveDocument) '<-- store index pages numbers in myPagesNumber 
End Sub 
+0

@superfluousを、あなたはそれを介して取得しましたか? – user3598756

関連する問題