Работа с Word
Variant vVarApp, vVarDocs, vVarDoc, vVarParagraphs, vVarParagraph, Selection, vVarRange, vVarTable, vVarCell;
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFunction("Item",9);
vVarRange=vVarParagraph.OlePropertyGet("Range");
vVarParagraph.OlePropertySet("Alignment",1);
vVarDoc.OlePropertyGet("Tables").
OleProcedure("Add", vVarRange, 8, 3,1,1);
vVarTable=vVarDoc.OlePropertyGet("Tables").
OleFunction("Item",1);
vVarTable.OlePropertyGet("Rows").
OlePropertySet("Alignment",1);
vVarTable.OleFunction("AutoFitBehavior",1);
vVarApp.OlePropertyGet("ActiveWindow").
OlePropertyGet("View").
OlePropertySet("TableGridlines",true);
//--
vVarCell=vVarTable.OleFunction("Cell",1,3);
vVarCell.OlePropertyGet("Range").
OlePropertySet("Text","Ôàêòè÷åñêàÿ");
vVarApp.OlePropertyGet("Selection").
OlePropertyGet("ParagraphFormat").
OlePropertySet("Alignment", 0);
//--
..... Заполнение остальных ячеек....
//--
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFunction("Item",11);
vVarParagraph.OlePropertyGet("Range").
//-- Вставка надписи после таблицы
OlePropertySet("Text",Label326->Caption.c_str());
vVarParagraph.OlePropertySet("Alignment",1);
//--
{
if (!IsAppInitialized || !IsDocInitialized) return int(false);
Application->Selection->Collapse(OleVariant(wdCollapseEnd));
Document->Tables->Add(Application->Selection->Range,
size.Height, size.Width,
OleVariant(wdWord9TableBehavior),
OleVariant(wdAutoFitFixed));
for (int ARow = 0; ARow < size.Height; ARow++) {
for (int ACol = 0; ACol < size.Width; ACol++) {
Application->Selection->TypeText(StringToOleStr(data[ARow][ACol]));
if ((ARow == size.Height-1) && (ACol == size.Width-1))
Application->Selection->MoveDown(
OleVariant(wdLine), OleVariant(1));
else
Application->Selection->MoveRight(OleVariant(wdCell), EmptyParam);
}
}
Application->Selection->MoveDown(OleVariant(wdLine), OleVariant(1));
Application->Selection->Collapse(OleVariant(wdCollapseEnd));
return int(true);
}
Так выглядит мой код для вставки таблицы в документ Word. Реализовано с использованием Type Library, а не объектов автоматизации (как в твоём случае).
Обрати внимание на строчки
Application->Selection->MoveDown(OleVariant(wdLine), OleVariant(1));
Application->Selection->Collapse(OleVariant(wdCollapseEnd));
Первая перемещает указатель за последнюю строку таблицы, а вторая сворачивает Selection в конец. Вместо Selection можно использовать Range, так как они одного типа.