Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 13:37   #1
MaZlobin
 
Регистрация: 29.09.2014
Сообщений: 5
Радость Работа с формулами в Word

Добрый день.

Возникла следующая задача, она мне кажется довольно простой, но пока, учитывая моё слабое знание синтаксиса и принципов работы VBA, её решить не получается.

Мне при помощи кода VBA в Word нужно редактировать формулы.

Я знаю, что для таких случаев есть MathCAD, однако, расчёты должны быть именно в Word.

Так вот, есть у меня формула в Word, например a/b=c, соответственно мне нужно как то попасть в формулу (затык только здесь), затем выделить, например "а", и изменить на свое значение, например 5. Как это можно реализовать?

Буду премного благодарен.

P.S. Данные пользователь вводит из диалогового окна (тут вопросов нет), как поменять искомый текст на требуемый - тут вопросов тоже нет. А вот как "войти" в формулу и искать нужные значения для изменения там - вот это вопрос.
MaZlobin вне форума Ответить с цитированием
Старый 28.11.2014, 03:48   #2
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Доброе время суток
Буквы лучше не использовать. В формулах (объект oMath) они могут быть представлены 4-х байтовым кодом. Лучше использовать $xxx где xxx некоторое число для поиска и замены в формуле (или нечто подобное).
Вложения
Тип файла: zip math.zip (17.6 Кб, 20 просмотров)
AndVGri вне форума Ответить с цитированием
Старый 08.12.2014, 02:35   #3
Борис_Р
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 26
По умолчанию

Отдельные элементы формулы (объект oMath) могут помечаться закладками, на которые можно затем ссылаться, в формулу можно вставить различные поля Ворд.
Приведенный ниже код создает текст, по внешнему виду похожий на запись в MathCAD.
Код:
Sub Формула()
'
    'Определяем аргументы функции и выделяем числа закладками
    Selection.TypeText Text:="a:=5"
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="a"
        .DefaultSorting = wdSortByName
        .ShowHidden = True
    End With
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.TypeText Text:=vbCr
    Selection.TypeText Text:="b:=6"
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="b"
        .DefaultSorting = wdSortByName
        .ShowHidden = True
    End With
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.TypeText Text:=vbCr
    'Формируем будущий текст формулы
    With Selection
    .TypeText Text:="x=a+b^2="
    'Вставляем вычисляемое поле, которое
    'использует определенные ранее имена закладок
    .Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "= a+b^2", PreserveFormatting:=True
    'Выделяем текст будущей формулы
    .HomeKey Unit:=wdLine, Extend:=wdExtend
    'Преобразуем текст в формулу (в линейном виде)
    .OMaths.Add Range:=Selection.Range
    'Преобразуем формулу к профессиональному виду
    .OMaths.BuildUp
    'Обновляем поле
    .Fields.Update
    .MoveRight Unit:=wdCharacter, Count:=1
    .TypeParagraph
    End With
End Sub
Если изменить числа, находящиеся внутри закладок, а затем обновить поля, то в формуле можно увидеть новый результат.
Борис_Р вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос в Word'e (работа с формулами) duh96 Фриланс 1 15.05.2013 20:55
работа с формулами в Exel Strazhnik Microsoft Office Excel 5 15.11.2010 10:45
Как работать в VBA с формулами Word 2007 bdfy Microsoft Office Word 11 16.09.2010 03:58
Word чудит с формулами Rakeduck Microsoft Office Word 1 21.05.2010 19:21