Средства макропрограммирования

 

Интегрированная система обработки электронных таблиц 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.