Имя: Пароль:
IT
 
Word VBA расположить таблицу по центру
0 dk
 
22.06.07
13:45
Создаю по OLE таблицу в Ворде. Не получается расположить её по центру.
Пробовал:

Таб = Документ.Tables.Add(Selection.Range, 2, 4);
Таб.Select();
WordApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter;

и

Таб = Документ.Tables.Add(Selection.Range, 2, 4);
Таб.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter;

Где косяк?
1 dk
 
22.06.07
13:47
(0)+
wdAlignParagraphCenter    = 1;
2 smaharbA
 
22.06.07
13:58

wdAlignRowCenter = 1;
Таб.Rows.Alignment = wdAlignRowCenter;
3 dk
 
22.06.07
14:06
(2) Не сработало :(
4 dk
 
22.06.07
15:10
Странно в VBA отрабатывает, а по OLE не хочет. Где-то я торможу.
5 dk
 
22.06.07
15:15
В итоге
не работает:

   Таб.Rows.Alignment = 1;

   Таб.Columns.PreferredWidthType    = wdPreferredWidthPoints;
   Таб.Columns(1).PreferredWidth    = WordApp.CentimetersToPoints(1);
   Таб.Columns(2).PreferredWidth    = WordApp.CentimetersToPoints(7);
   Таб.Columns(3).PreferredWidth    = WordApp.CentimetersToPoints(5);
   Таб.Columns(4).PreferredWidth    = WordApp.CentimetersToPoints(3);
   
   Таб.Style                    = "Сетка таблицы";
   Таб.ApplyStyleHeadingRows    = xlTrue;
   Таб.ApplyStyleLastRow        = xlTrue;
   Таб.ApplyStyleFirstColumn    = xlTrue;
   Таб.ApplyStyleLastColumn    = xlTrue;
   
   Таб.Cell(1, 1).Range.Text    = "№№";
   Таб.Cell(1, 1).Range.Font.Bold    = xlTrue;
   
   Таб.Cell(1, 2).Range.Text    = "ФИО Работника";
   Таб.Cell(1, 2).Range.Font.Bold    = xlTrue;
   
   Таб.Cell(1, 3).Range.Text    = "№ текущего счета в рублях";
   Таб.Cell(1, 3).Range.Font.Bold    = xlTrue;
   
   Таб.Cell(1, 4).Range.Text    = "сумма перечислений";
   Таб.Cell(1, 4).Range.Font.Bold    = xlTrue;
   
   СписокСотрудников.ВыбратьСтроки();
   Пока СписокСотрудников.ПолучитьСтроку() > 0 Цикл
       НомерСтроки = СписокСотрудников.НомерСтроки + 1;
       Таб.Cell(НомерСтроки, 1).Range.Text    = Строка(СписокСотрудников.НомерСтроки);
       Таб.Cell(НомерСтроки, 2).Range.Text    = СокрЛП(СписокСотрудников.Сотрудник.Наименование);
       Таб.Cell(НомерСтроки, 3).Range.Text    = СписокСотрудников.НомерСчета;
       Таб.Cell(НомерСтроки, 4).Range.Text    = СписокСотрудников.Сумма;
   КонецЦикла;    //"Пока СписокСотрудников.ПолучитьСтроку() > 0 Цикл


Рабочий вариант

   Таб.Columns.PreferredWidthType    = wdPreferredWidthPoints;
   Таб.Columns(1).PreferredWidth    = WordApp.CentimetersToPoints(1);
   Таб.Columns(2).PreferredWidth    = WordApp.CentimetersToPoints(7);
   Таб.Columns(3).PreferredWidth    = WordApp.CentimetersToPoints(5);
   Таб.Columns(4).PreferredWidth    = WordApp.CentimetersToPoints(3);
   
   Таб.Style                    = "Сетка таблицы";
   Таб.ApplyStyleHeadingRows    = xlTrue;
   Таб.ApplyStyleLastRow        = xlTrue;
   Таб.ApplyStyleFirstColumn    = xlTrue;
   Таб.ApplyStyleLastColumn    = xlTrue;
   
   Таб.Cell(1, 1).Range.Text    = "№№";
   Таб.Cell(1, 1).Range.Font.Bold    = xlTrue;
   
   Таб.Cell(1, 2).Range.Text    = "ФИО Работника";
   Таб.Cell(1, 2).Range.Font.Bold    = xlTrue;
   
   Таб.Cell(1, 3).Range.Text    = "№ текущего счета в рублях";
   Таб.Cell(1, 3).Range.Font.Bold    = xlTrue;
   
   Таб.Cell(1, 4).Range.Text    = "сумма перечислений";
   Таб.Cell(1, 4).Range.Font.Bold    = xlTrue;
   
   СписокСотрудников.ВыбратьСтроки();
   Пока СписокСотрудников.ПолучитьСтроку() > 0 Цикл
       НомерСтроки = СписокСотрудников.НомерСтроки + 1;
       Таб.Cell(НомерСтроки, 1).Range.Text    = Строка(СписокСотрудников.НомерСтроки);
       Таб.Cell(НомерСтроки, 2).Range.Text    = СокрЛП(СписокСотрудников.Сотрудник.Наименование);
       Таб.Cell(НомерСтроки, 3).Range.Text    = СписокСотрудников.НомерСчета;
       Таб.Cell(НомерСтроки, 4).Range.Text    = СписокСотрудников.Сумма;
   КонецЦикла;    //"Пока СписокСотрудников.ПолучитьСтроку() > 0 Цикл
   
   Таб.Rows.Alignment = 1;
6 dk
 
22.06.07
15:16
Т.е. просто перенес центрирование в конец
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.