Язык WordBasic - практический подход

использования полей



Мне позвонил читатель “КомпьютерПресс” и рассказал о своей проблеме. Он, как наверное и многие, ведёт на компьютере турнирные таблицы различных соревнований, в частности, по футболу и баскетболу. Многие читатели возможно ведут такие турнирные таблицы по шахматам, водному поло или по волейболу. Проблема на самом деле общая: как с помощью макрокоманд облегчить себе работу с такими таблицами.
Давайте рассмотрим эту задачу для таблицы шахматного турнира, как самой простой по форме. Вообще говоря, подобная задача совсем просто решается в электронной таблице. Но ведь и обычной элементы таблицы в 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) столбец с местами в турнире.
 

Содержание раздела