использования полей
Мне позвонил читатель “КомпьютерПресс” и рассказал о своей проблеме. Он, как наверное и многие, ведёт на компьютере турнирные таблицы различных соревнований, в частности, по футболу и баскетболу. Многие читатели возможно ведут такие турнирные таблицы по шахматам, водному поло или по волейболу. Проблема на самом деле общая: как с помощью макрокоманд облегчить себе работу с такими таблицами.
Давайте рассмотрим эту задачу для таблицы шахматного турнира, как самой простой по форме. Вообще говоря, подобная задача совсем просто решается в электронной таблице. Но ведь и обычной элементы таблицы в WinWord нумеруются точно также, как ячейки электронной таблицы, т.е. строки цифрами, а столбцы – латинскими буквами. Так номера ячеек верхней строки таблицы (слева направо) будут: А1, А2, А3, …, Аn.
Соответственно, в многочисленных встроенных функциях и макрокомандах ссылки на конкретные элементы таблицы разделяются запятыми, а двоеточием разделяются ссылки на первый и последний элементы некоторого диапазона ячеек. Например, если таблица имеет размер 4 на 4, то функция sum(c1:c4) позволит найти просуммировать содержимое ячеек третьего столбца.
Выберите в меню Вставка пункт Поле, а затем в диалоговом окне Поле строку Выражения и формулы. После этого нажмите клавишу F1, чтобы вызвать Справку. В неё посмотрите разделы Операторы, Формулы и Ссылки. Обратите внимание, что для функций ссылки на элементы таблицы выглядят немного иначе, чем для ЭТ. В отличие от Excel, эти ссылки всегда задают абсолютные адреса. Кроме того, для обновления значений в таблице нужно либо вызвать макрокоманду, либо, если формулы записаны в полях, нажать клавишу F9.
Подготовка таблицы. Можно предложить три способа подготовки таблиц такого вида.
1. Конечно Вы можете один раз создав такую таблицу, элементарно просто запомнить её под каким-либо именем в таблице Автотекста (меню Редактирование), и затем вставлять таблицу в документ используя это имя.
2. Сложнее написать макрокоманду, которая вставит в документ таблицу подобного вида и настроит её длину на число команд, участников турнира.
3. Наконец, высший пилотаж, если вы создадите отдельный шаблон (т.е. определите специальный вид документа) с макрокомандами и другими заготовками для ведения турнирных таблиц.
Начать можно с простой таблицы для шахматного турнира:
Место |
Ф.И.О. |
1-й круг |
2-й круг |
3-й круг |
N-й круг |
Сумма очков |
1. |
Петров |
|
0,5 |
1 |
1 |
2,5 |
2. |
Карасёв |
0,5 |
|
0,5 |
1 |
2 |
3. |
Ефремов |
0 |
0,5 |
|
0,5 |
1 |
4. |
Орлов |
0 |
0 |
0,5 |
|
0,5 |
В столбце сумма очков вставляется(меню Вставка, пункт Поле) поле с формулой. Для этого в диалоговом окне Поле нужно выбрать верхнюю строку, озаглавленную в левой колонке (все). А затем в окне Код поля ввести sum(c2:d2).
Пронумеровать строки можно вставив поле AutoNum в первую ячейку каждой строки таблицы. Для этого, в частности, можно использовать следующую макрокоманду:
Sub Main
TableSelectTable
StartOfRow
LineDown 2 ‘обойти заголовок
While SelInfo(12) = - 1
StartOfLine
InsertField .Field = "autonum"
LineDown 1
Wend
End Sub
После каждой корректировки таблицы достаточно обновить столбец с суммой очков, отсортировать строки по этому столбцу и обновить (нажав F9) столбец с местами в турнире.