Цитата(xvr @ 9.1.2010, 18:04 ) | | Может надо было сделать Activate для созданного документа. Попробуй так |
Так тоже не работает. Зато работает так:
| Код | WordApplication1->Disconnect(); WordDocument1->Disconnect(); WordApplication1->Connect(); WordApplication1->set_Visible(true); WordApplication1->Documents->Add(); WordDocument1->ConnectTo(WordApplication1->ActiveDocument); WordDocument1->Tables->Add(WordApplication1->Selection->Range,3,6,EmptyParam,EmptyParam);
|
Однако таблица создается не явно, а только ее прототип. То есть в вордовском документа границы колонок и строчек видны, а при печати документа они не будут выводится.
Вот макрос создания таблицы в ворде
| Код | Sub Макрос() ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=3, NumColumns:= _ 5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed With Selection.Tables(1) If .Style <> "Сетка таблицы" Then .Style = "Сетка таблицы" End If .ApplyStyleHeadingRows = True .ApplyStyleLastRow = True .ApplyStyleFirstColumn = True .ApplyStyleLastColumn = True End With End Sub
|
Что это за стиль "Сетка таблицы"? Это имеется ввиду как раз нормальная таблица с видными на печати границами ячеек? Или же эти нормальные границы ячеек задаются последнимичетырьмя операторам ApplyStyle...? Как это записать в билдере? Вот такой вариант работает
| Код | RangePtr MyRange = WordApplication1->Selection->Range; TablePtr MyTable = WordApplication1->Selection->Range->Tables->Add(WordApplication1->Selection->Range,3, 6, EmptyParam, EmptyParam); MyTable->Borders->InsideLineStyle = wdLineStyleSingle; MyTable->Borders->OutsideLineStyle = wdLineStyleSingle;
|
Но что-то он не согласуется с кодом на VBA. |