1

Тема: Макрос. Доступ к объектам внутри надписей и таблиц.

Коллеги!
Имею большой документ с формулами, созданными в Equation 3.0. Со временем самопроизвольно изменяются размеры этих объектов-формул.
Создал (не самостоятельно) макрос для коррекции размеров формул в основном тексте:

    Dim Formul As InlineShape
    For Each Formul In ActiveDocument.InlineShapes
    If Formul.OLEFormat.ClassType = "Equation.3" Then
    Formul.ScaleHeight = 100
    Formul.ScaleWidth = 100
    End If
    Next Formul

Все работает! Однако осталась проблема с тем, как бы аналогично скорректировать размеры формул, которые находятся в тексте внутри надписей и таблиц.
Не подскажите, как это сделать. Заранее благодарен.

2

Re: Макрос. Доступ к объектам внутри надписей и таблиц.

Точно так же, только нужно забраться внутрь надписей:

  Dim Formul As InlineShape
  Dim oShp As Shape
  For Each oShp In ActiveDocument.Shapes
    If oShp.Type = msoTextBox Then 'Если фигура является надписью
      If oShp.TextFrame.TextRange.InlineShapes.Count <> 1 Then 'Если внутри фигуры есть другие
        For Each Formul In oShp.TextFrame.TextRange.InlineShapes
          If Formul.OLEFormat.ClassType = "Equation.3" Then
            With Formul
              .ScaleHeight = 50
              .ScaleWidth = 50
            End With
          End If
        Next
      End If
    End If
  Next

А формулы внутри таблиц и так должны обрабатываться вашим циклом

Лучше день потерять — потом за пять минут долететь!

3

Re: Макрос. Доступ к объектам внутри надписей и таблиц.

Большое спасибо за совет!
При работе, однако, Ваш макрос выдает ошибку:

Run-time error '91':
Object variable or With block variable not set

Нечто подобное появлялось, когда сам пытался решить эту задачу.
Подскажите, pls, в чем может быть засада.

4

Re: Макрос. Доступ к объектам внутри надписей и таблиц.

Здравствуйте Преподователь. Вижу, что вы на сайте. Будьте добры, помогите мне в одном вопросе ( тема : помогите чайнику) Спасибо.