Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 02.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
412.16 Кб
Скачать

Приемы автоматизации заполнения журнала кассовых документов

Автоматизация заполнения журнала кассовых документов будет разделена на несколько этапов:

  • запись макросов ввода отдельных формул и последующая замена формул на определенные ими значения;

  • создание кода VBA поиска первой пустой строки в списке и перемещения по этой строке;

  • соединение всего кода VBA созданных макросов в одну подпрограмму, выполняющую всю последовательность действий в автоматическом режиме.

Изменение параметров Excel перед записью макросов

Завершить ввод данных в ячейки, если это не редактирование их содержимого, можно нажатием на самые различные клавиши: клавиши перемещения на одну ячейку (вниз, вверх, влево, вправо), Home, End, Page Up или Page Down. Самый же классический способ завершения ввода данных в Excel - нажатие на клавишу Enter, после чего, как правило, табличный курсор перемещается на ячейку ниже. И это довольно удобно. Большинство пользователей полагают, что это неизменяемое свойство Excel. На самом же деле этот параметр устанавливается при инсталляции Excel по умолчанию и при желании может быть изменен.

И если при работе по вводу данных непосредственно на рабочем листе, перемещение табличного курсора на ячейку ниже после фиксации ввода клавишей Enter - удобство, то при записи макроса - недостаток.

Недостаток заключается в том, что либо перед остановкой записи макроса или при проведении каких-либо других операций после ввода данных в ячейку (диапазон ячеек), адрес ячейки, в которой окажется табличный курсор, будет зафиксирован отдельной строкой кода VBA (см. рис. 5.5.).

В последующем, при выполнении записанного макроса, эта операция будет выполняться, как один из переходов на зафиксированную ячейку. Это увеличивает продолжительность выполнения макроса и "утяжеляет" файл Excel на количество символов этой строки. А при редактировании кода макроса в Редакторе Microsoft Visual Basic будет потрачено время на удаление этих строк.

Поэтому, прежде чем записывать макросы, связанные с операциями ввода данных, с помощью команды Сервис/Параметры откройте диалоговое окно Параметры и на вкладке Правка (рис. 5.2.) удалите флажок с опции Переход к другой ячейке после ввода. Иначе при записи макроса, перемещение табличного курсора после нажатия на клавишу [Enter] на ячейку, по заданному этой опцией в направлении, выбранном в раскрывающемся списке В направлении, будет отражено в сгенерированном коде макроса.

Рис. 5.2. Диалоговое окно Параметры вкладке Правка с открытым раскрывающимся списком В направлении при активизированной опции Переход к другой ячейке после ввода

Запись кода VBA при вводе формул в процессе записи макроса

Автоматизация процесса будет основана на написании четырех макросов и последующем их объединении с последовательностью выполнения операций, приведенных на рис. 5.3.

Рис. 5.3. Последовательность предстоящих операций, подлежащих автоматизации при формировании записи расходного кассового ордера в журнале

Автоматизация ввода текущей даты

Согласно правил заполнения журнала первым действием должен быть ввод даты проведения этой операции. Если операция заполнения журнала производится в день ее выполнения, то для автоматического ввода даты достаточно ввести в ячейку F16 функцию ввода текущей даты. Для этого используется функция СЕГОДНЯ (рис. 5.4.), которую можно ввести либо с помощью кнопки Мастер функций на стандартной панели инструментов, либо с клавиатуры:

=СЕГОДНЯ()

Функция СЕГОДНЯ не имеет аргументов и возвращает текущую дату.

Рис. 5.4. Панель функции СЕГОДНЯ

Для записи первого макроса последовательно выполните следующие действия:

  • введите в ячейку В16 функцию СЕГОДНЯ и не перемещайте табличный курсор;

  • выполните процедуру начала записи макроса, которому присвойте имя РасходныйОрдер и при необходимости введите его описание;

  • запись макроса заключается в последовательном нажатии на клавишу F2 (редактирование содержимого ячейки) и клавишу Enter;

  • произведите остановку записи макроса.

Рис. 5.5. Окно программы с кодом макроса РасходныйОрдер

При записи макроса РасходныйОрдер режим перехода на ячейку вниз отключен не был (рис. 5.2.). Поэтому на рис. 5.5. видите вторую строку кода:

Range("B17").Select

которую удалите при редактировании. В этой строке находится объект 4-го уровня иерархии - Range. Этот объект используется для ссылок на ячейку или диапазон ячеек.

Первая строка:

ActiveCell.FormulaR1C1 = "=TODAY()"

смысл которой заключается в том, что в активную ячейку (в которой находился до начала записи макроса табличный курсор) ввести формулу ввода текущей даты. Следует заметить, что все функции в коде VBA записываются на английском языке, а вводимые формулы заключаются в кавычки.