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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2010, 23:32   #1
Prokopulka
Новичок
Джуниор
 
Регистрация: 04.06.2010
Сообщений: 2
Вопрос Автоматический подгон ширины колонок под шапку таблицы средствами VBA в MS Word

Доброго времени суток! Помогите, пожалуйста, решить такую проблему.

Из Lotus Notes в Word выводятся данные, затем автоматически заносятся в таблицу.
В таблицу все заносится, как надо, но проблема в том, что ширина колонок таблицы не совпадает с шириной колонок в ее шапке. (Шапка в Word написана заранее)

Что надо дописать в коде, чтобы макрос автоматом подгонял ширину колонок самой таблицы под ширину колонок в шапке?

PS: Пересмотрела темы по этому разделу форума - ничего подходящего не смогла найти.
Помогите, ПОЖАЛУЙСТА.
Вложения
Тип файла: doc list.doc (41.5 Кб, 28 просмотров)

Последний раз редактировалось Prokopulka; 05.06.2010 в 23:19.
Prokopulka вне форума Ответить с цитированием
Старый 05.06.2010, 19:29   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Гораздо проще будет не подгонять ширину столбцов первой строки, а создать эту строку заново:
Код:
Sub AddHeaderRow()
  'Если курсор не в таблице, то выходим
  If Not Selection.Information(wdWithInTable) Then
    MsgBox "Поставьте курсор в первую строку таблицы!", vbInformation, "Добавить заголовок"
    Exit Sub
  End If
  
  Dim oRow As Row
  Dim bm As Bookmark
  'Добавляем строку сверху
  Set oRow = Selection.Rows.Add(Selection.Rows(1))
  With oRow.Cells
    'Вертикальное положение текста в ячейке по центру
    .VerticalAlignment = wdCellAlignVerticalCenter
    'Текст и горизонтальное выравнивание первой ячейки в строке
    With .Item(1).Range
      .Text = "Должность"
      .ParagraphFormat.Alignment = wdAlignParagraphCenter
    End With
    'Текст и горизонтальное выравнивание второй ячейки в строке
    With .Item(2).Range
      .Text = "ФИО"
      .ParagraphFormat.Alignment = wdAlignParagraphCenter
    End With
    'Текст и горизонтальное выравнивание пятой ячейки в строке
    With .Item(5).Range
      .Text = "Решение"
      .ParagraphFormat.Alignment = wdAlignParagraphCenter
    End With
    'Текст и горизонтальное выравнивание шестой ячейки в строке
    With .Item(6).Range
      .Text = "Комментарии"
      .ParagraphFormat.Alignment = wdAlignParagraphCenter
    End With
    'Выделяем треью ячейку
    .Item(3).Select
  End With
  
  Dim cell3 As Cell, cell4 As Cell, cell1 As Cell
  With Selection
    'Временная закладка, чтобы к ней вернуться после разбиения ячеек
    Set bm = .Bookmarks.Add("ttt", .Range)
    'Расширяем выделение вправо
    .MoveRight Extend:=wdExtend
    'Разбиваем ячейки на две строки
    .Cells.Split 2, 1, False
    'Выделяем закладку и расширяем выделение вправо, чтобы охватить все ячейки после разбиения
    bm.Select
    .MoveRight Extend:=wdExtend
    'Удаляем временную закладку
    bm.Delete
    'Горизонтальное выравнивание в ячейках
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    'Запоминаем ячейки
    Set cell1 = .Cells(1)
    Set cell3 = .Cells(3)
    Set cell4 = .Cells(4)
    'Заносим текст в ячейки
    cell3.Range.Text = "поступления"
    cell4.Range.Text = "окончания"
    'Выделяем ячейку и объединяем её с соседней
    cell1.Select
    .MoveRight Extend:=wdExtend
    .Cells.Merge
    .Text = "Дата и время"
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
  End With
End Sub
Но может я ошибаюсь
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 05.06.2010, 22:26   #3
Prokopulka
Новичок
Джуниор
 
Регистрация: 04.06.2010
Сообщений: 2
По умолчанию

Спасибо большое за ответ, я об этом тоже думала, но хотела отделаться небольшой корректировкой кода Буду тогда так делать.

Последний раз редактировалось Prokopulka; 05.06.2010 в 22:27. Причина: отмен6а цитаты
Prokopulka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы средствами VBA parsn Microsoft Office Excel 2 28.12.2009 14:05
Как перевести данные таблицы из Word в Exel средствами Delphi? Pinkygirl Помощь студентам 0 20.12.2009 16:04
Как средствами VBA экспортировать данные из Excel в Word? Pavel_Ine Microsoft Office Excel 3 20.04.2009 14:14
уменьшение ширины таблицы Viteef HTML и CSS 5 18.02.2009 23:59
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17