Средства макропрограммирования
Интегрированная система обработки электронных таблиц SC4 предоставляет пользователю средства макропрограммирования.
Макропрограммы хранятся, как правило, вместе с электронными таблицами и используются для автоматизации их обработки. Макропрограмма состоит из макросов. Макрос - самостоятельная структурная единица макропрограммы.Онобычно имеет имя и отделяется от остальных макросов пустыми клетками.
Макрос состоит из макрокоманд. С помощью макрокоманд можно записать любые действия пользователя, выполняемые в ручном режиме.
Работа с макросами включает в себя
• создание;
• поименование;
• запись на диск;
• отладку и исполнение.
Создавать макросы лучше всего непосредственно в ЭТ в обычном режиме ввода данных ENTRY.
Рекомендуется столбец А отводить для записи имен макросов, столбец В - для записи макрокоманд, а столбец С - для комментария, поясняющего действия макрокоманд.
Макрокоманды записывают в клетки как текст. Прописные и заглавные буквыне различают. Например,
/Bа1:а5~и/ВА1:А5~
одна и та же команда. (Также как \а и \А - одно и то же имя или метка макроса). Значок ~ означает нажатие клавиши ввода. При вводе слэш-команд начинаем с символа ", причем вводим не полное название пункта меню, а выделенную букву.
Например,команда ввода
/Blank,al:a2
запишется в виде макрокоманды так:
"/Bа1:а2~.
Пример. Напишем макропрограмму, состоящую из трех макросов, которая будет выполнять следующие действия по обработке таблицы:
• очищать клетки а1:с1 таблицы;
• запрашивать значение переменной х в клетку а1;
• если значение х>0, то в клетке b1 выводить значение выражения х*0.25, а иначе в клетке с1 значение выражения х*.\*0.25.
Наша макропрограмма в ЭТ будет выглядеть так:
А | В | С | |
\а | /Bal:cl | -Очистка клеток а1:с1 | |
{Getnumber "x=",al} | Ввод значения х в а1 | ||
{if al>0} {Branch \b} | По условию, переход в \b | ||
(Branch \c} | или в\с | ||
б | |||
\b | {let blal *0.25} | b1=а1*0.25 | |
\с | {letclal*al*0.25} | с1=а*а1*0.25 | |
В нашем примере три макроса \а, \b, \с отделяются друг от друга пустыми строками. Макрос с именем \а располагается в клетках b2:b5, макрос с именем \b в клетке b7, макрос с именем \с — в клетке b9. Выше описано создание макросов в режиме ENTRY. Кроме этого, макросы можно создавать в режимах LEARN и DIRECT. В режиме LEARN ваши действия автоматически записываются в виде макроса в LEARN — область, задаваемую командой
//Macro ,Learn, столбец.
Вход в этот режим осуществляется по нажатию клавиш Alt+F4. (Выход - повторное нажатие тех же клавиш.) Макрос, созданный в этом режиме, имеет большие размеры и сложен для восприятия и редактирования. Режим DIRECT (вход -Alt+F6, выход - повторное нажатие) является промежуточным между режимами ENTRY и LEARN.
Имена макросов лучше всего начинать с символа \ и далее одна из букв латинского алфавита. Макрос тогда очень просто запускается на выполнение: одновременное нажатие клавиш Alt+A запускает на выполнение макрос \а, Alt+B - макрос \b и т.д.
Чтобы текст в клетках столбца А воспринимался как имена (или метки) макросов, необходимо дать команду
- /Name, Labels, Right, A.
Эта команда назначает имена макросам, расположенным справа от столбца А. Макросы лучше всего записывать вместе с ЭТ по команде
/Savе,имя ЭТ,А11.
Кроме этого, существует возможность записывать файлы с макросами в формате ASCII. В этом случае используется команда
//Macro,Write.
Эти файлы имеют стандартное расширение .xqt и могут создаваться в текстовых редакторах. Метки, макросы и комментарии записываются, тогда в один столбец. Первая строка файла должна содержать имя {Macro}. Эти файлы могут быть запущены на исполнение из SC по команде
//Масго.еХесutе.имя.
Читаются такие файлы в SC по команде
//Macro,Read.