Подскажите пожалуйста, у меня есть задача - определить номера страниц в открытом файле 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
Круто! Работает! Большое спасибо!!!