Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб раб 7

.pdf
Скачиваний:
6
Добавлен:
16.03.2016
Размер:
553.07 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования žКузбасский государственный технический университет имени Т.Ф. Горбачева¤

В. В. Крюкова

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA. ОБРАБОТКА СТРОК

Методические указания к лабораторной работе

Рекомендовано учебно-методической комиссией направления 080100.62 žЭкономика¤ в качестве электронного издания для использования в учебном процессе

Кемерово 2013

1

Рецензент Сарапулова Татьяна Викторовна, старший преподаватель кафед-

ры прикладных информационных технологий.

Крюкова Валентина Валентиновна. Основы программирования на VBA. Обработка строк: метод. указания к лабораторной работе по дисциплине žЭкономическая информатика¤ [электронный ресурс]: для студентов направления 080100.62 žЭкономика¤, профили: žБухгалтерский учет, анализ и аудит¤, žФинансы и кредит¤, žЭкономика предприятий и организаций¤ / В.В. Крюкова. – Электрон. дан. – Кемерово: КузГТУ, 2012. – Систем. требования: ОЗУ 64 Мб; WindowsXP/Vista/7. – Загл. с экрана.

Методические указания предназначены для изучения основных элементов технологии обработки строковых данных в среде Visual Basic for Applications приложения Microsoft Excel. В состав указаний входят теоретический материал, описание технологии решения задачи, контрольные вопросы для самопроверки и задания для выполнения лабораторной работы.

КузГТУ

Крюкова В.В.

2

Содержание

Введение……………………………………………………………...3

1.Основы языка Visual Basic for Applications ..……………… ..3

1.1.Арифметические, строковые и логические операции …3

1.2.Переменные и константы ...………......…………………..5

1.3.Процедуры и функции пользователя ……………………9

1.4.Ввод и вывод данных …………………………………….11

1.5.Основные управляющие инструкции VBA …………….13

2.Обработка строковых данных ………………………………..17

2.1.Описание строк …………………………………………..17

2.2.Строковые функции ……………………………………...20

2.3.Примеры решения задач …………………………………23

3.Задание для выполнения лабораторной работы …………….26

4.Требования к содержанию и оформлению отчета …………..27

5.Контрольные вопросы ………………………………………...27 Список рекомендуемой литературы ……………………………….28

Приложения А – В. Примеры оформления отчета ……………....29

3

Введение

Лабораторная работа выполняется студентами второго курса (4-й семестр) в рамках изучения дисциплины "Экономическая информатика". Согласно рабочей программе на лабораторные занятия отводится 34 часа, из них на выполнение данной лабораторной работы – 2 часа.

Рассматриваются основные инструкции языка VBA, строковые встроенные функции и технология программирования на примере решения задачи обработки строковых данных.

Согласно ГОС 3 ВПО реализуются следующие компетенции: ОК-13 – овладение основными методами, способами и средст-

вами получения, хранения, переработки информации, приобретение навыков работы с компьютером как средством управления информацией;

ПК-5 – способность выбрать инструментальные средства для обработки экономических данных в соответствии с поставленной задачей, проанализировать результаты расчетов и обосновать полученные выводы.

Цель работы: изучить встроенные строковые функции и основные элементы технологии обработки строковых данных в среде Visual Basic for Applications приложения Microsoft Excel.

1.Основы языка Visual Basic for Applications

1.1.Арифметические, строковые и логические операции

Visual Basic for Applications (VBA) – это Visual Basic для приложений MS Office. VBA включает ядро, общее для всех приложений, и объектную модель конкретного приложения. Ядро языка VBA – это собственно сам язык, обеспечивающий выполнение Basic – инструкций и поддерживающий типы и структуры данных. Ядро VBA нельзя расширить и никакой гибкости в обращении с собой оно не допускает. Гибкость и расширяемость обеспечивается в VBA благодаря объектному подходу. Каждое приложение, созданное в среде MS Office с помощью VBA, удовлетворяет требованиям объектной модели. При этом предполагается, что всю совокупность элементов, из которых состоит приложение, можно представить в виде некоторой иерархической структуры – модели объектов. Преимущество, которое дает объектная модель, состоит в том, что разные приложения могут по-

4 лучить доступ к объектам друг друга. Каждый объект обладает набо-

ром свойств, значения которых могут быть изменены, и набором методов, которые могут быть вызваны и выполнены. Кроме того, объекты могут реагировать на определенные события. Рассмотрим VBA для приложения MS Excel.

Алфавит языка - набор допустимых символов: прописные и строчные буквы латинского и русского алфавитов, арабские цифры от 0 до 9, из этих символов конструируются различные имена типов данных, констант, процедур и функций, операторов, свойств и методов объектов. Прописные и строчные буквы не различаются. Язык содержит набор ключевых слов, из которых конструируются операторы и другие конструкции языка. Этот набор является зарезервированным и не может использоваться для других целей. Для построения арифметических и логических выражений используются символы (операторы), представленные в табл. 1, табл. 2.

Таблица 1 – Арифметические, строковые операции и операции сравнения

Операция

Описание

+

Сумма

Разность

*

Умножение

/

Деление

\

Деление нацело (возвращает целую часть)

^

Возведение в степень

()

Скобки, используются для составления сложных выражений

& или +

Операция žконкатенация¤ (сцепление строк)

комментарии

_

Подчеркивание, используется для указания продолжения строки

 

оператора при переносе его части на другую строку

>, <, < =, > =, < >

Операторы сравнения

 

Символ žпробел¤ используется для разделения слов в операторе

mod

Деление по модулю (возвращает остаток от деления)

Is

Идентичность объектов или соответствие типу

Like

Соответствие типу

Таблица 2 – Логические операции

Операция

Описание

Not

Логическое отрицание

And

Логическое žИ¤ (умножение)

Or

Логическое žИЛИ¤ (сложение)

Xor

Исключающее žИЛИ¤

Imp

Импликация

Eqv

Эквивалентность

5 В табл. 3 приведена таблица истинности логических операций.

Таблица 3 - Таблица истинности And, Or, Xor (результат)

Операнд 1

Операнд 2

And

Or

Xor

true

true

true

true

false

true

false

false

true

true

false

true

false

true

true

false

false

false

false

false

1.2. Переменные и константы

Для хранения данных в программе и памяти компьютера используются переменные и константы. Переменная – именованная область памяти, отведенная для временного хранения данных, которые могут изменяться при выполнении программы.

Константа – именованная область памяти, отведенная для хранения постоянного значения в программе. Переменная и константа – имеют имя и значение.

Имена должны удовлетворять определенным требованиям. Первый символ в имени всегда буква. В имени нельзя использо-

вать управляющие символы: ž!¤, ž@¤ , ž&¤ , ž$¤ , ž_¤.

В именах не допускаются пробелы, вместо пробела можно использовать знак žподчеркивание¤. Имена должны быть содержательными. Длина имени не может быть более 255 символов. Желательно использовать короткие имена. В качестве имен нельзя использовать ключевые слова языка. Имя нельзя повторять в пределах области его видимости (действия). Имена необходимо объявлять. При объявлении имени следует указывать тип данных. Типы данных, используемые в VBA, приведены в табл. 4.

Таблица 4 – Типы данных

Тип

Объем

Описание

 

памяти,

 

 

байт

 

Byte

1

Байтовый. Хранит значения целых чисел в диапазоне от 0

 

 

до 255

Integer

2

Целый. Диапазон значений: от –32768 до +32767

Long

4

Длинное целое. Диапазон значений: от –2147483648 до +

 

 

2147483647

Single

4

Вещественный с одинарной точностью, позволяет хранить

 

 

значение с точностью до 6 знаков после запятой. Диапа-

 

 

6

 

 

зон значений: от 1,4Е–45 до 3,4Е+38

Double

8

Вещественный с двойной точностью, позволяет хранить

 

 

значение с точностью до 14 знаков после запятой. Диапа-

 

 

зон значений: от 1,79Е+308 до 4,94Е–324

Currency

8

Денежный. Представляется, как масштабируемое целое с

 

 

фиксированной десятичной точностью с пятнадцатью раз-

 

 

рядами в целой части и четырьмя разрядами в дробной

 

 

части

Decimal

12

Десятичный. Явно не описывается, его используют с по-

 

 

мощью функции Cdec, которая преобразует данные типа

 

 

Variant в десятичный тип. Обеспечивает точность до 28

 

 

знаков после запятой

String

1/символ

Строки фиксированной длины (до 65 тыс. символов) и

 

 

строки переменной длины (до 2 млрд. символов)

Boolean

2

Логический тип (булевский) - хранит два значения: исти-

 

 

на/ ложь

Date

8

Хранит даты, начиная с 01.01.100 до 31.12.9999 г.г. Дата

 

 

хранится как целое число. Переменная типа Date может

 

 

хранить как непосредственно дату, так и время, оно хра-

 

 

нится в качестве дробной части числа

Variant

16

Общий (универсальный) тип, который позволяет хранить

 

 

все числовые данные, строки, даты, логические данные

 

 

(кроме данных пользовательского типа)

Object

4

Ссылка на объект

Тип данных определяет диапазон возможных значений, объем памяти для хранения и точность представления данных.

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

Переменная используется для временного хранения данных в программах (процедурах). Переменные могут быть описаны (объявлены) явно и неявно. Неявное описание часто приводит к ошибкам, поэтому рекомендуется описывать в процедуре явно типы данных.

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

DIM < имя переменной> [(индексы)] [AS<тип>]. Квадратные скобки означают, что их содержимое можно опустить. Если записано: DIM < имя переменной>, то предполагается тип Variant. Можно явно указать тип Variant:

7

DIM < имя переменной> AS Variant.

Таблица 5 – Функции для работы с типами данных

Функция

Описание

IS Numeric (аргумент )

Возвращает true (истина), если аргумент число

ISDate (аргумент)

Возвращает true (истина), если аргумент можно преобра-

 

 

зовать в значение типа Date

Val (аргумент)

Возвращает число, где аргумент имеет тип Variant или

 

 

String

CBool (аргумент)

Возвращаем булевский эквивалент числа

CByte (аргумент)

Возвращает число байтового типа

CDate (аргумент)

Возвращает дату

СInt

(аргумент)

Возвращает целое число типа Integer

CLng

(аргумент)

Возвращает целое число типа Long

СSng (аргумент)

Возвращает вещественное с ординарной точностью число

СStr (аргумент)

Возвращает строку

Как правило, описание имен переменных, констант приводится в начале процедуры сразу после заголовка процедуры или перед ним. В синтаксической записи общего вида оператора Dim присутствует элемент [(индексы)], речь идет об описании переменной с индексом, т.е. структуры данных – массива. В общем описании типа данных могут использоваться ключевые слова: Private, Public, Static:

Dim | Private | Public | Static <переменная> [AS <тип>] [<переменная> AS <тип>].

При описании переменных определяется не только ее тип, но и область видимости (действия). Область видимости переменной или константы определяется двумя обстоятельствами: где она объявлена и какое дополнительное ключевое слово при этом использовано.

Различают область видимости на уровне процедуры, на уровне модуля и на уровне проекта (рис. 1). Все процедуры хранятся в модулях. Проект – это файл MS Excel (рабочая книга), в которой хранятся все модули.

Область действия переменных и констант определяется с помощью ключевых слов: Private (личные переменные), Public (глобальные переменные), Static (статические переменные). Переменные и константы, объявленные без ключевых слов, являются локальными, то есть объявлены как Private и сохраняют свое значение в программе, в которой описаны. Если переменная используется во всех процедурах одного модуля, нужно ее описать в начале модуля перед первым Sub с ключевым словом Dim или Private. Переменная, описанная

8

внутри процедуры с ключевым словом Dim, называется личной процедурой и является переменной уровня процедуры (рис. 1).

Уровень проекта.

 

 

 

 

 

Public - доступен во всех

 

Public/Private

 

 

модулях проекта

 

 

 

 

 

Модуль

 

Уровень модуля.

 

 

 

 

 

 

 

 

 

Public …

 

Private - доступен для

 

 

 

 

Private …

 

всех процедур

 

 

 

 

Dim …

 

модуля

Уровень процедуры

 

 

 

 

Sub <имя>

 

 

 

 

 

 

Dim ...

 

 

 

 

 

 

Static …

 

 

Замечание.

Переменные

 

…….

 

 

могут быть

описаны до

 

end Sub

 

 

Sub или внутри

 

 

 

 

процедуры

 

 

 

 

 

 

Рисунок 1 – Области видимости переменных и констант

Личная переменная сохраняет свое значение только при выполнении процедуры, в которой она описана; при выходе из нее значение теряется. Иногда нужно сохранять это значение между обращениями к процедуре. С этой целью личную переменную описывают с ключевым словом Static внутри процедуры.

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

Константы определяются в процедуре похожим образом с переменными. Попытка изменить значение константы приведет к ошибке во время выполнения процедуры.

Общий вид определения константы:

[Public/Private] константа <имя> [AS <тип>=<выражение>]. Имени константы сразу приписывается (присваивается) конкретное значение выражения. Ключевые слова Public/Private имеют

тот же смысл, что и для переменных.

В модуле можно указать первой инструкцию: Option Explicit, что означает требование обязательного описания переменных. Код VBA хранится в проектах – рабочих книгах. Проекты содержат модули, а

9 модуль включает процедуры и функции пользователя (программы и подпрограммы).

1.3. Процедуры и функции пользователя

Процедура (программа) – это поименованный набор описаний и инструкций на языке VBA. Инструкция – единица кода, соответствует операции (действию), описанию или области определения. Различают

подпрограммы - процедуры, подпрограммы - функции и подпрограммы - свойства. Рассмотрим первые два типа подпрограмм. Подпрограмма – законченный набор инструкций, который может быть использован другими подпрограммами неоднократно. Как правило, подпрограмма не может выполняться самостоятельно. Только при вызове ее из другой процедуры (программы/подпрограммы). Программирование любой задачи включает блок инструкций, который выполняется самостоятельно. Его и называют программой (основной программой). В ней, как правило, содержатся вызовы других подпрограмм (процедур). Будем говорить процедура, имея в виду основную программу или подпрограмму.

Структура процедуры имеет вид:

Sub <имя> ([аргументы]) <команды> (инструкции)

end Sub.

Необязательный параметр [аргументы] позволяет передать в процедуру и из нее требуемые значения. В этом случае имеется в виду процедура - подпрограмма. Передача аргументов осуществляется по ссылке или по значению. Аргументы, передаваемые по ссылке, помечаются словом ByRef, а по значению - ByVal.

Sub <имя> (Byref A as String; Byval B as integer) <инструкции>

end Sub.

Если ключевые слова ByRef и ByVal отсутствуют, то по умолчанию принята передача аргументов по ссылке. Это значит, что если процедура в процессе своей работы изменит значение одного из своих аргументов, то и исходные данные, переданные в качестве этого аргумента, изменяются. Как правило, по ссылке передаются аргументы (переменные), которые возвращают результат в вызываемую процедуру. При передаче аргументов по значению VBA делает копию исходных данных и передает ее для обработки в процедуру.