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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2013, 13:37   #1
IrinaNN
 
Регистрация: 12.07.2013
Сообщений: 6
Стрелка Форматирование таблиц в документе

Добрый день.

В процессе работы есть необходимость форматировать в единый стиль много документов, которые содержать таблицы и текст. (подготовка для HTML)

В макросах не сильна, только начинаю разбираться и читать. Помогите с написанием макроса.

В итоге документы должны иметь такой вид:
Шрифт Verdana 8
Удалить все колонтитулы
Таблицы по середине, по ширине страницы, границы определенные (файл прикрепляю).


Желательно, чтобы внутри таблиц первый столбец по левому краю выравнивание, Шапка - по центру, остальные ячейки по нижнему правому краю.

И совсем из нереального для понимания моего мозга: если есть пустые ячейки с таблице (без каких-либо символов), то вставить туда пробел.

Сама бы я разделила эту задачу на два макроса - один редактирует текст, второй - таблицы.

Буду рада любой помощи.
Вложения
Тип файла: doc Документ до.doc (62.0 Кб, 44 просмотров)
Тип файла: doc Документ после.doc (59.5 Кб, 30 просмотров)
IrinaNN вне форума Ответить с цитированием
Старый 18.07.2013, 14:03   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

а у единицы измерения --какое выравнивание(табл 2, лево, центр)

---
и как вы планируете создавать НТМ(вордом очень много мусора)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 18.07.2013 в 14:09.
shanemac51 вне форума Ответить с цитированием
Старый 18.07.2013, 15:32   #3
IrinaNN
 
Регистрация: 12.07.2013
Сообщений: 6
По умолчанию

У единицы измерения центр. (но этот столбец не всегда есть в таблицах)

В HTML через сохранить как - веб-страница с фильтром....
IrinaNN вне форума Ответить с цитированием
Старый 19.07.2013, 16:56   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

С Word'ом не особо дружу, тестировал в 2007 ...
Код:
Sub Макрос()
    Application.ScreenUpdating = False
    With ActiveDocument.Range.Font ' установка шрифта
        .Name = "Verdana"
        .Size = 8
    End With
    
  Dim S As Section, Header As HeaderFooter
    ' удаляем колонтитулы
    For Each S In ActiveDocument.Sections
        For Each Header In S.Headers
            Header.Range.Delete
        Next
        For Each Header In S.Footers
            Header.Range.Delete
        Next
    Next

  Dim colCount&, rowCount&, Center&, i&, j&, y&
  Dim Col As Range, Table As Table, EmptyCell$
  
    EmptyCell = Chr(13) & Chr(7)
    On Error Resume Next
    For Each Table In ActiveDocument.Tables ' для всех таблиц
        With Table
            ' установка рамки
            .Borders(wdBorderHorizontal).LineStyle = wdLineStyleOutset
            .Borders(wdBorderVertical).LineStyle = wdLineStyleOutset
            .Borders.OutsideLineStyle = wdLineStyleOutset
                
            colCount = .Columns.Count   ' количество колонок
            rowCount = .Rows.Count      ' количество строк
            
            ' поиск строки после заголока
            For i = 2 To rowCount
                Err.Clear
                For j = 1 To colCount
                    y = .Cell(i, j).Range.Bold
                    If Err.Number Then Exit For
                Next
                If j > colCount Then Exit For
            Next
            
            ' установка выравнивания для заголовка
            For Center = 1 To i - 1
                For j = 1 To colCount
                    With .Cell(Center, j)
                        .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
                        .VerticalAlignment = wdCellAlignVerticalCenter
                        If .Range.Text = EmptyCell Then .Range.Text = " "
                    End With
            Next j, Center
            
            ' поиск номера столбца "Единицы измерения"
            Set Col = .Range
            If Col.Find.Execute(FindText:="Единицы измерения", MatchWholeWord:=True) Then
                Center = Col.Cells(1).ColumnIndex
            Else
                Center = 0
            End If
            Err.Clear
            
            ' обход строк таблицы после заголовка
            For i = i To rowCount
                y = .Cell(i, 2).Range.Bold
                If Err.Number = 0 Then
                    With .Cell(i, 1)
                        .Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
                        .VerticalAlignment = wdCellAlignVerticalCenter
                        If .Range.Text = EmptyCell Then .Range.Text = " "
                    End With
                    ' для всех ячеек строки i
                    For j = 2 To colCount
                        With .Cell(i, j)
                            If j = Center Then
                                .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
                                .VerticalAlignment = wdCellAlignVerticalBottom
                            Else
                                .Range.ParagraphFormat.Alignment = wdAlignParagraphRight
                                .VerticalAlignment = wdCellAlignVerticalBottom
                            End If
                            If .Range.Text = EmptyCell Then .Range.Text = " "
                        End With
                    Next
                Else
                    With .Cell(i, 1)
                        .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
                        .VerticalAlignment = wdCellAlignVerticalCenter
                        If .Range.Text = EmptyCell Then .Range.Text = " "
                    End With
                    Err.Clear
                End If
            Next
        End With
    Next
    Set Col = Nothing
    Application.ScreenUpdating = True
End Sub
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 22.07.2013, 11:02   #5
IrinaNN
 
Регистрация: 12.07.2013
Сообщений: 6
По умолчанию

Спасибо огромное! Попробовала на нескольких файлах - работает!!! Спасибо еще раз! Работа облегчится. Потестирую на разных документах.
IrinaNN вне форума Ответить с цитированием
Старый 26.08.2013, 15:34   #6
IrinaNN
 
Регистрация: 12.07.2013
Сообщений: 6
Восклицание

В процессе работы заметила:
  • Не все таблицы выравниваются по центру страницы.
  • Границы толщина необходима 0,25 пт, цвет Авто.
Еще хотелось бы добавить:
Высоту строк - минимальную задать. (0 см режим минимум)

Но то, что написано уже очень сильно облегчило работу.
СПАСИБО большое!

Последний раз редактировалось IrinaNN; 26.08.2013 в 15:54.
IrinaNN вне форума Ответить с цитированием
Старый 02.09.2013, 08:33   #7
IrinaNN
 
Регистрация: 12.07.2013
Сообщений: 6
Смущение

Помогите пожалуйста доработать макрос...
IrinaNN вне форума Ответить с цитированием
Старый 02.09.2013, 09:48   #8
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

возможно так
макрос внутри
Вложения
Тип файла: zip Документ до02.zip (22.4 Кб, 5 просмотров)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 02.09.2013, 10:25   #9
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

или так ...
Вложения
Тип файла: doc Документ до.doc (75.5 Кб, 4 просмотров)
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 24.02.2021, 13:59   #10
IrinaNN
 
Регистрация: 12.07.2013
Сообщений: 6
По умолчанию

Добрый день! Долгий декрет был) и к сожалению макрос затерли.... а тут файлы тоже недоступны. кто-то сможет помочь?
IrinaNN вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полное форматирование всех таблиц в документе чохом Vera111 Microsoft Office Word 3 18.04.2011 19:11
форматирование таблиц в EXCEL fox31 Microsoft Office Excel 5 24.03.2011 17:55
Форматирование таблиц faiza Microsoft Office Word 2 10.05.2010 14:41
Форматирование всех таблиц... Busine2009 Microsoft Office Word 1 27.06.2009 12:03
Форматирование таблиц и рисунков Ludmila Microsoft Office Word 24 09.10.2007 13:56