VBA Знание, является ли абзац ИЗОБРАЖЕНИЕМ - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть следующий код:

For Each DocPara In ActiveDocument.Paragraphs
    If (DocPara.style = "Title 1") Then
        ...
    Else

        (if DocPara is LIST then)
            ...
        (else if DocPara is TABLE then)
            ...
    End If
Next DocPara

Есть ли способ узнать, является ли текущий абзац ИЗОБРАЖЕНИЕ.

1 Ответ

0 голосов
/ 13 ноября 2018

Текущий абзац не может быть «изображением», потому что любое изображение всегда является символом в абзаце ИЛИ привязанным к абзацу.Было бы необходимо подсчитать количество изображений в / прикрепленных к диапазону абзаца.

Таким образом, абзац не может быть просто изображением, он всегда будет содержать как минимум один строковый символ (ANSI 13, знак абзаца)и может содержать неограниченное количество кроме изображения.

Word поддерживает два вида изображений: InlineShapes и Shapes.Первые обрабатываются так же, как символы;последние имеют форматирование текста.

Изображение, отформатированное с помощью переноса текста, может показаться «внутри» абзаца, но это не так, и даже не может быть привязано к абзацу, в котором оно появляется.Поэтому, когда рассматриваемый тип изображения - Shape, на самом деле невозможно определить, есть ли изображение «в» абзаце, запросив объект Paragraph.

Вот код, чтобы определить, является ли InlineShape находится в абзаце и являются ли Shapes привязанными к абзацу.Исходя из того, как сформулирован ваш вопрос, я надеюсь, что ваши изображения InlineShapes ...

Dim rngPara as Word.Range
Set rngPara = DocPara.Range
If rngPara.InlineShapes.Count > 0 Then 'the paragraph contains an image
If rngPara.ShapeRange.Count > 0 Then 'an image is anchored to the paragraph
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...