Я пытаюсь перебрать текстовый документ и его объекты формы, чтобы найти DOCVARIABLES. Объект shape имеет текстовое поле. Вот макросы, которые я извлекаю непосредственно из Word.
Selection.HeaderFooter.Shapes.Range (Array ("Text Box 7")). Выберите
Текстовое поле находится в объекте формы, который содержится в верхнем колонтитуле. Я перебрал диапазон формы для верхнего и нижнего колонтитула, но я получил только shapeRange [j] .Type = msoEmbeddedOLEObject :
foreach (HeaderFooter footer in section.Footers)
{
for (int i = 1; i <= footer.Shapes.Count; i++)
{
Microsoft.Office.Interop.Word.ShapeRange shapeRange = footer.Shapes.Range(i);
for (int j = 1; j <= shapeRange.Count; j++)
{
string shapetype = shapeRange[j].Name;
if (shapeRange[j].Type == MsoShapeType.msoTextBox)
{
var shapeFields = shapeRange.TextFrame.TextRange.Text;
if (shapeFields.Contains("DOCVARIABLE"))
{
}
}
}
}
}