1

Тема: Макрос, приводящий все формулы в документе к единому размеру.

Доброго времени суток, %username%!  big_smile

Уважаемые форумчане, нужна помощь!  roll

Что есть: большой документ с большим количеством разных математических  формул. Microsoft Word 2010, формулы выполнены в MathType 6.8

Каким образом можно привести все формулы в документе к единому размеру? (имею ввиду, чтобы какбы размер шрифта во всех формулах был одинаков)

По форуму искал, ответа не нашёл  sad  В комментах задавался уже такой вопрос, конкретного решения не подсказали sad

Очень надеюсь на вашу помощь!

2

Re: Макрос, приводящий все формулы в документе к единому размеру.

Как-то уже выкладывал макрос для Microsoft Equation:

Public Sub Формулы_Equation_Обновить_формат()
' вручную исправьте стили и настройки одной формулы Equation
' и запустите данный макрос, для обновления формата остальных
    
    On Error Resume Next
    
Dim F As Word.Field
Dim N1 As Long, N2 As Long

    Application.ScreenUpdating = False
    N1 = 0: N2 = 0
    For Each F In ActiveDocument.Fields
        If F.Type <> Word.wdFieldEmbed Then
        ElseIf Not (F.OLEFormat.ClassType Like "Equation.*") Then
        Else
            N1 = N1 + 1
            Err.Clear
            F.OLEFormat.ConvertTo ClassType:=F.OLEFormat.ClassType
            If Err.Number <> 0 Then ' ошибка
                N2 = N2 + 1
                Application.ScreenUpdating = True
                F.Select
                Select Case MsgBox(Prompt:="Ошибка! " & vbLf & vbLf & _
                                           "Нет возможности обработать формулу типа: " & vbLf & _
                                           F.OLEFormat.ClassType & vbLf & vbLf & _
                                           "Продолжить?", _
                                   Buttons:=VBA.vbCritical + VBA.vbYesNo)
                    Case VBA.vbOK, VBA.vbYes
                    Case Else: Exit For
                End Select
                Application.ScreenUpdating = False
            End If
        End If
    Next F
    Application.ScreenUpdating = True
    StatusBar = "Обработано формул: " & N1 & ", ошибок: " & N2
    
End Sub

Можно попробовать тот же принцип для MathType. Естественно, макрос надо подправить.

У MathType большой набор своих внутренних команд, может с помощью них это можно сделать проще, не знаю...

Макросы под заказ и готовый пакет - mtdmacro.ru