Как выровнять числа в столбце таблицы по десятичному разделителю?
Десятичные дроби в столбце будут аккуратнее выглядеть, если их выравнивать не по центру или по краю, а по десятичному разделителю. Такой формат выравнивания принят в финансовых и банковских документах для упрощения восприятия, да и смотрится хорошо. В Word это делается с помощью установки позиции табуляции соответствующего вида. Однако, если таблица уже набрана, и в ней не один десяток строк, то устанавливать табуляцию вручную для каждой
ячейки довольно трудоёмкая и безынтересная работа. Для облегчения её я составил макрос, который добавляет выравнивание по десятичному разделителю в каждую ячейку с числовым значением столбца, в котором стоит курсор:
1 SubCellAlignDecimal() 2 Dim oTbl As Table 'Таблица, в которой работаем 3 Dim oCell As Cell 'Ячейка таблицы 4 Dim c AsInteger'Количество столбцов в таблице 5 6 Set oTbl = Selection.Tables(1)'Работаем в таблице, где находится курсор 7 Set oCell = oTbl.Range.Cells(1)'Первая ячейка таблицы 8 c = Selection.Cells(1).ColumnIndex
9 10 'Перебор всех ячеек 11 Do 12 'Обрабатываем ячейки только в нужном столбце, содержащем цифры и не в первой строке 13 If oCell.ColumnIndex = c _
14 AndIsNumeric(Left(oCell.Range.Text,Len(oCell.Range.Text) -2))
_
15 And oCell.RowIndex <>1Then 16 With oCell.Range.ParagraphFormat
17 .Alignment = wdAlignParagraphJustify 'Абзац выравниваем по ширине 18 .FirstLineIndent =0'Отступ первой строки убираем 19 .TabStops.ClearAll 'Убираем все отступы табуляции в ячейке 20 'Ставим позицию табуляции по разделителю посередине ячейки 21 .TabStops.Add oCell.Width /2, wdAlignTabDecimal, wdTabLeaderSpaces
22 End With 23 End If 24 Set oCell = oCell.Next 25 DoEvents
26 Loop Until oCell Is Nothing 27 End Sub
Как скрыть номера страниц в оглавлении, оставив заполнитель?
Оказывается и такое бывает: при автоматическом формировании оглавления нужно скрыть номера страниц. Вот что пишет пользователь форума Wordexpert:
Создал оглавление с номерами страниц и заполнителем "...". Необходимо в этом содержании удалить номера страниц, но заполнитель
табуляции оставить. Страницы проставляются вручную перед сдачей работы в архив. Делается это в пояснительной записке к диплому по рекомендации преподавателя.
Проблема такая, что в окне поиска по строке "^t^#" символ табуляции и следующий за ним номер страницы находится (поиск без подстановочных знаков), но при выполнении этих же действий в окне замены ничего не находится. Соответственно нет возможности автоматически заменить последовательность "^t^#" на "^t".
Разобрав содержание на составляющие части, мы увидим, что оно состоит из двух типов полей: HYPERLINK и PAGEREF. Таким образом, задача сводится к тому, чтобы скрыть или удалить поле PAGEREF. Скрыть можно таким макросом, предварительно выделив оглавление:
1 SubHidePageNumbersInTOC() 2 Dim ofld As Field
3 For Each ofld In Selection.Fields
4 If ofld.Type= wdFieldPageRef Then 5 ofld.Result.Font.Hidden =True 6 End If 7 Next 8 End Sub
В ходе использования этого макроса выяснилось, что он перестаёт срабатывать через некоторое время, поэтому было принято решение не скрывать поле, а удалять его:
1 SubHidePageNumbersInTOC() 2 Dim ofld As Field
3 For Each ofld In Selection.Fields
4 If ofld.Type= wdFieldPageRef Then 5 ofld.Delete
6 End If 7 Next 8 End Sub