Управление формулами в Word 2007 из под Delphi
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот появилась задача и в ней нужно управлять формулами именно в 2007-м Worde. Прошу обратить внимание - управлять именно новым редактором формул, а не старым добрым (и глючным) Microsoft Equation 3.
В Сети про это ничего не нашёл, вот и решил обратится за помощью.
Записываем макросов и повторяем его на Delphi:)
var MSWord: Variant; begin MsWord:= CreateOleObject('Word.Application'); MsWord.Visible := True; MSWord.Activate; MSWord.Documents.Add; MSWord.WordBasic.EquationInsert; MsWord.Selection.TypeText('11'); MsWord.Selection.InsertSymbol(62, True, 0); MsWord.Selection.TypeText('2'); MsWord.Selection.InsertSymbol(61, True, 0);// CharacterNumber:=61, Unicode:=True, Bias:=0 MsWord.Selection.TypeText('4+6'); MsWord.Selection.TypeParagraph; end;
Спасибище!
А как более сложные формулы - с использованием допусти корня или дроби? Что-то пытаюсь, не получается. Надо уловить аналогию ВБА и Делфи. Помогите, пожалуйста.
const wdOMathFracBar = 0; wdOMathFracNoBar = 1; wdOMathFracSkw = 2; wdOMathFracLin = 3; wdOMathFunctionFrac = 7; var MSWord, OMath, OMathFunction: Variant; begin MsWord:= CreateOleObject('Word.Application'); MsWord.Visible := True; MSWord.Activate; MSWord.Documents.Add; MSWord.WordBasic.EquationInsert; MsWord.Selection.TypeText('11'); MsWord.Selection.InsertSymbol(177, True, 0); OMath:= MsWord.Selection.OMaths.Item(1); OMathFunction:= OMath.Functions.Add(MsWord.Selection.Range, wdOMathFunctionFrac); OMathFunction.Frac.Type:= wdOMathFracBar; MsWord.Selection.MoveLeft(wdCharacter, 2); MsWord.Selection.TypeText('1'); MsWord.Selection.InsertSymbol(215, True, 0); MsWord.Selection.MoveRight(wdCharacter, 1); MsWord.Selection.TypeText('2'); MsWord.Selection.MoveRight(wdCharacter, 1); MsWord.Selection.InsertSymbol(43, True, 0); MsWord.Selection.TypeText('9'); MsWord.Selection.TypeParagraph; end;
Записывай в начале макрос и не важно что это Word, Excel и т.п. и какой версии. Потом открываешь исходный код в VBA и переводишь его на делфи. Хотя если ты не знаешь бейсика, наверно сложновато будет. Хотя на самом деле там не очень то и сложно. Значение переменных в VBA, можно посмотреть из под отладчика в самом VBA.




