Определить номер страницы с полем (activex textbox)

Автор BoomZoom, 12 декабря 2015, 23:46

BoomZoom

Подскажите пожалуйста, у меня есть задача - определить номера страниц в открытом файле Word, если на них присутствуют поля (см. пример во вложении).
Можно ли такую задачу решить с помощью макроса?

[вложение удалено администратором]

Администратор

Макрос
Sub Main()

    Dim docAct As Document, inlineshp As InlineShape, shp As Shape, strMsg As String
   
    '1. Vba-именование активного файла.
    Set docAct = ActiveDocument
   
    '2. Просмотр инлайншейпов.
    For Each inlineshp In docAct.InlineShapes
        ' Если это ActiveX.
        If inlineshp.Type = wdInlineShapeOLEControlObject Then
            ' Если это activex-текстбокс.
            If inlineshp.OLEFormat.ClassType = "Forms.TextBox.1" Then
                strMsg = strMsg & inlineshp.Range.Information(wdActiveEndAdjustedPageNumber) & vbCr
            End If
        End If
    Next inlineshp
   
    '3. Просмотр шейпов.
    For Each shp In docAct.Shapes
        ' Если это ActiveX.
        If shp.Type = msoOLEControlObject Then
            ' Если это activex-текстбокс.
            If shp.OLEFormat.ClassType = "Forms.TextBox.1" Then
                strMsg = strMsg & shp.Anchor.Information(wdActiveEndAdjustedPageNumber) & vbCr
            End If
        End If
    Next shp
   
    '4. Сообщение.
    If strMsg = "" Then
        MsgBox "В файле нет текстбоксов.", vbInformation
    Else
        MsgBox "В файле есть текстбоксы на этих страницах:" & vbCr & strMsg, vbExclamation
    End If
   
End Sub
[свернуть]

BoomZoom