Использование встроенных функций Excel и VBA
| МИНОБРНАУКИ РОССИИ |
| федеральное
государственное
бюджетное образовательное
учреждение высшего
профессионального образования |
| «Южно—Российский государственный университет экономики и сервиса» |
| (ФГБОУ ВПО «ЮРГУЭС») |
Факультет Экономический
Кафедра Информатика
Специальность Менеджмент
организации
__________________
подпись руководителя
«_______»_____________200 г.
К
У Р С О В
А Я Р А
Б О Т А
тема__________________________
______________________________
______________________________
______________________________
по дисциплине_________________
Разработал
_____________
Руководитель
_____________
должность, ученая степень,
ШАХТЫ 2011
| МИНОБРНАУКИ РОССИИ |
| федеральное
государственное
бюджетное образовательное
учреждение высшего
профессионального образования |
| «Южно—Российский государственный университет экономики и сервиса» |
| (ФГБОУ ВПО «ЮРГУЭС») |
Факультет Экономический
Кафедра Информатика
Специальность Менеджмент
организации
З
А Д А Н И
Е
на курсовой проект
по дисциплине____________________
на курсовую работу для студента «__» курса ___________группы
______________________________
(фамилия, имя, отчество)
Тема ______________________________
Исходные данные ______________________________
______________________________
Объем
проекта (работы) ______________________________
______________________________
Срок проектирования ______________________________
Руководитель _____________ ____________________
должность, ученая степень, звание
Задание
к выполнению принял студент_______________________
Дата выдачи задания «_____» _______________ _________ г.
Содержание
Введение
Актуальность курсовой работы связана с тем, что язык VBA, подобно другим развитым языкам программирования, содержит целый арсенал мощных встроенных средств, предназначенных для решения самых разнообразных задач, возникающих при создании проектов различного типа.
В частности, в языке VBA имеется обширный набор встроенных функций, использование которых в значительной мере упрощает процесс программирования. Все эти функции можно разделить на такие основные категории, как математические функции, функции преобразования данных, функции проверки типов, функции даты и времени, функции обработки строковых выражений, финансовые функции и пр. Целью курсовой работы является получение представлений о функциях VBA, а также рассмотрение практической реализации встроенной функции. Для достижения поставленной цели, нами поставлены следующие задачи, которые сводятся к рассмотрению:
- функций класса Format;
- функций класса Conversion
- функций класса Information
- функций класса String
- функций класса DateTime
- функций класса Math
- функций класса Financial
- и использования функций Excel и VBA
Предметом курсовой работы является изучение программирование в среде VBA, объектом – функции различных классов.
1 Теоретическая часть
- Стандартные функции для форматирования Format
Для форматирования данных в языке VBA предназначена функция Format, которая идентична функции Format как в Microsoft Excel, Microsoft Access, так и в других приложениях Microsoft Office. Функция Format форматирует данные любого встроенного типа по указанному образцу. При этом она конвертирует предложенное значение в новую строку, добавляя в нее символы, необходимые для представления данных в требуемом виде. Синтаксис функции Format следующий:
Format (Выражение[,Формат[, ПервыйДеньНедели[, ПерваяНеделяГода]]])
Здесь указанные аргументы означают следующее:
- Выражение — любое допустимое выражение — обязательный аргумент.
- Формат — любое допустимое именованное или определенное пользователем выражение формата — необязательный аргумент.
- ПервыйДеньНедели — константа, определяющая день недели, который считается первым, — необязательный аргумент.
- ПерваяНеделяГода — константа, определяющая первую неделю года — необязательный аргумент.
Для данных различных типов в языке VBA имеются встроенные именованные форматы, которые указываются в качестве аргументов функции Format (табл. 1.1).
Таблица 1.1 — Именованные форматы для использования в функции Format
| Именованный формат | Результат форматирования | Пример |
| General Number | Число без выделения разрядов тысяч | 13050,2184 |
| Currency- | Число с символом денежной единицы, с выделением разрядов тысяч и с двумя цифрами после десятичного разделителя | 13 050,22р. |
| Fixed | Число без выделения разрядов тысяч и как минимум с одной цифрой перед десятичным разделителем и двумя после него | 12142,91 |
| Standard | Число с выделением разрядов тысяч и как минимум с одной цифрой перед десятичным разделителем и двумя после него | 12142,91 |
| Percent | Число, умноженное на 100, с двумя цифрами после десятичного разделителя и знаком процента | 35,25% |
| Scientific | Число в стандартном виде для научных расчетов | 1.23Е+02 |
| Yes/No | Строка "Да" (Yes), если форматируемое число ненулевое или строка "Нет" (No), если значение равно нулю | Да |
| True/False | Строка "Истина" (True), если форматируемое число ненулевое, или строка "Ложь" (False), если значение равно нулю | ИСТИНА |
| On/Off | Строка "Вкл" (On), если форматируемое число ненулевое, или строка "Выкл" (Off), если значение равно нулю | Вкл |
| General Date | Дата и время в формате, зависящем от установок на компьютере пользователя | 25.09.2009 15:52 |
| Long Date | Дата в формате, зависящем от установок на компьютере пользователя для полного формата даты | 25 Сентябрь 2009 г. |
| Medium Date | Дата в формате, зависящем от установок на компьютере пользователя для среднего формата даты | 25.сен.09 |
| Short Date | Дата в формате, зависящем от установок на компьютере пользователя для короткого формата даты | 25.09.2009 |
| Long Time | Время (часы, минуты и секунды) в формате, зависящем от установок на компьютере пользователя для полного формата времени | 16:20:45 |
| Medium Time | Время (часы, минуты) в 12-часовом формате с метками до/после полудня в формате, зависящем от установок на компьютере пользователя | 6:25 |
| Short Time | Время (часы, минуты) в 24-часовом формате, зависящем от установок на компьютере пользователя | 16:28 |
Имя любого используемого в качестве аргумента формата обязательно должно быть заключено в кавычки.
- Функция преобразования данных (класс Conversion)
Если при написании процедуры (процедуры-функции) не был указан конкретный тип данных, то VBA выполняет автоматические преобразования данных одних типов в другие. Кроме того, для явного преобразования данных одних типов в другие в языке VBA существует целая группа специальных функций.
Преобразование строки в число и обратно осуществляется функциями Val и Str, соответственно. Функция Val преобразует строку с текстовой записью числа в числовую величину. Синтаксис этой функции следующий:
Val(строка)
Здесь строка — это исходное строковое выражение. Функция Val читает строку, заданную аргументом строка, начиная с первого символа и до тех пор, пока не встретит символ, недопустимый для представления чисел. Допустимыми символами считаются цифры от 0 до 9, знаки "+" или десятичная точка (а не запятая!), префикс, указывающий на восьмеричную систему счисления (&O, где О — это латинская буква) или шестнадцатеричную систему счисления (&Н, где Н — это латинская буква).
Функция Val игнорирует пробелы, символы табуляции и переходы на новую строку, например:
Val ("25 113. 2 14 ABC ")
В этом примере функция Val возвращает число 25 113, 214. Если VBA не может выполнить преобразование заданной строки в число, то функция Val возвращает значение 0.
Функция Str возвращает значение типа Variant (String) — строку с текстовым представлением исходного числа. Синтаксис этой функции следующий:
Str(число)
Здесь число — это произвольное числовое выражение. Для положительного числа результирующая строка начинается с пробела, а для отрицательного числа результирующая строка будет начинаться со знака минус, без пробела.
Функция Hex преобразует целые десятичные числа в строку символов, представляющую собой то же самое число, но в шестнадцатеричной системе счисления. Синтаксис ее следующий:
Hex (число)
Здесь число — произвольное числовое выражение, значение которого при необходимости предварительно округляется до ближайшего целого числа.
Функция Oct преобразует целые десятичные числа в строку символов, представляющую собой, то же самое число, но в восьмеричной системе счисления. Синтаксис ее следующий:
Oct(число)
Здесь число — произвольное числовое выражение, значение которого при необходимости предварительно округляется до ближайшего целого числа.
Кроме этих наиболее часто используемых функций, в языке VBA имеется еще целый ряд функций, предназначенных для преобразования одного типа данных в другой (табл. 1.2).
Таблица 1.2 — Функции преобразования данных
| Функция | Возвращаемое значение |
| Asc(S) | Возвращает число кода символа, соответствующее первой букве строки S. Буква "А", например, имеет код символа 65. |
| Chr(N) | Возвращает строку из одного символа, соответствующего коду символа N, который должен быть числом между 0 и 255, включительно. Код символа 65, например, возвращает букву "А". |
| Format(E, S) | Возвращает строку, содержащую значение, представленное выражением Е, в формате в соответствии с инструкциями, содержащимися в S. |
| Hex(N) | Возвращает строку, содержащую шестнадцатиричное представление N. |
| Oct(N) | Возвращает строку, содержащую восьмиричное представление N. |
| RGB(N, N, N) | Возвращает целое типа Long, представляющее значение основных цветов изображения. N в каждом аргументе должно быть целым в диапазоне 0 — 255, включительно. Аргументы (слева направо) — это значения для красного, зеленого и синего цвета. |
| Str(N) | Возвращает строку, эквивалентную численному выражению N. |
| Val(S) | Возвращает численное значение, соответствующее числу, представленному строкой S, которая должна содержать только цифры и одну десятичную точку, иначе VBA не может преобразовать ее в число. Если VBA не может преобразовать строку в S, то функция Val возвращает 0. |
| CBool(N) | Возвращает Boolean-эквивалент численного выражения N. |
| CByte(E) | Возвращает численное значение типа Byte (от 0 до 255); Е — любое допустимое численное или строковое выражение, которое может быть преобразовано в число. |
| CCur(E) | Возвращает численное значение типа Currency; E — любое допустимое численное или строковое выражение, которое может быть преобразовано в число. |
| CDate(E) | Возвращает значение типа Date. E может быть любым допустимым выражением (строкой или числом), представляющим дату в диапазоне 1/1/100 — 12/31/9999, включительно. |
| CDbl(E) | Возвращает численное значение типа Double; E — любое допустимое численное или строковое выражение, которое может быть преобразовано в число. |
| CInt(E) | Возвращает численное значение типа Integer; E — любое допустимое численное или строковое выражение, которое может быть преобразовано в число. |
| CLng(E) | Возвращает численное значение типа Long; E — любое допустимое численное или строковое выражение, которое может быть преобразовано в число. |
| CSng(E) | Возвращает численное значение типа Single; E — любое допустимое численное или строковое выражение, которое может быть преобразовано в число. |
| CStr(E) | Возвращает значение типа String; E — любое допустимое численное или строковое выражение. |
| CVar(E) | Возвращает значение типа Variant; E — любое допустимое численное или строковое выражение. |
- Получение информации о типе данных (класс Information)
При работе с типом данных Variant для определения того, какой именно тип данных содержится в данный момент в конкретной переменной, можно использовать одну из нескольких существующих в языке VBA функций проверки типов. Эти функции проверяют, является ли указанная переменная выражением специфицированного типа. Если переменная имеет соответствующий тип или содержит значение соответствующего типа, то любая из этих функций будет возвращать значение True, в противном случае — False. Перечень функций приведён в таблице 1.3.
Таблица 1.3 — Функции, необходимые для проверки типов данных
| Функция | Выполняемая проверка |
| IsDate(переменная) | Проверяет, является ли значение указанной переменной датой |
| IsNumeric (переменная) | Проверяет, является ли значение указанной переменной числовым значением |
| IsObject(переменная) | Проверяет, является ли значение указанной переменной объектом (объектной ссылкой) |
| IsArray(переменная) | Проверяет, является ли значение указанной переменной массивом |
| IsNul1(переменная) | Проверяет, является ли значение указанной переменной пустым значением (Null) |
| IsEmpty(переменная) | Проверяет, была ли указанная переменная типа Variant инициализирована (объявлена с помощью ключевого слова Dim) |
| IsError(переменная) | Проверяет, воспринимается ли значение указанной переменной или результат вычисления заданного выражения как ошибочное значение |
- Строковые функции (класс String)
Строковые функции в языке VBA используются очень часто. Трудно представить себе программу, созданную в среде VBA, которая не была бы так или иначе связана с обработкой текста. Строковые данные очень важны и встречаются практически в каждом VBA-приложении, поэтому в языке VBA имеется довольно большая коллекция функций форматирования строк и извлечения из них тех частей, с которыми необходимо будет работать. В таблице 1.4 приведены функции обработки строковых выражений и их краткое описание
Таблица 1.4 — Строковые функции
| Функция | Возвращаемое значение |
| InStr([Nl,] SI, S2[, N2]) | Возвращает положение S2 в S1. N1 — начальное положение для поиска; N2 определяет тип сравнения. N1 и N2 необязательны. Если N2 опускается, то для поиска используется текущая установка Option Compare. |
| InStrRev(Sl, S2 [, Nl[, N2]]) | Возвращает позицию появления строки S2 внутри S1, в направлении от конца (или N1) к началу строки. N2 определяет тип сравнения. Если N2 опускается, то для поиска используется текущая установка Option Compare. |
| LCase(S) | Возвращает строку (тип String), содержащую копию S со всеми символами верхнего регистра, преобразованными в символы нижнего регистра. |
| Left(S, N) | Возвращает строку; копирует N символов из S, начиная с левого крайнего символа S. |
| Len(S) | Возвращает число символов в S, включая начальные и конечные пробелы. |
| LTrim(S) | Возвращает копию строки S после удаления символов пробела из левой части строки (начальные пробелы). |
| Mid(S, N1, N2) | Возвращает строку; копирует N2 символов из S, начиная с позиции символа в S, заданной аргументом N1. N2 является необязательным; если N2 опущен, то Mid возвращает все символы в строке S от позиции N1 до конца строки. |
| Right(S, N) | Возвращает значение типа String; копирует N символов из S, начиная с правого крайнего символа S. Например, Right("outright", 5) возвращает строку "right". |
| RTrim(S) | Возвращает копию строки S после удаления символов пробела из правой части строки (конечные символы). |
| Space(N) | Возвращает строку пробелов длиной N символов. |
| StrComp(Sl, S2, N) | Сравнивает S1 с S2 и возвращает число, обозначающее результат сравнения: -1, если S1 < S2; 0, если S1 = S2; 1, если S1 > S2. N является необязательным и указывает, следует ли выполнять сравнение с учетом регистра. Если N опускается, строки сравниваются с использованием текущей установки Option Compare. |
| StrConv(S, N) | VBA предоставляет внутренние константы для использования с функцией StrConv; наиболее полезными являются: vbProperCase (преобразует строку так, что каждая буква, начинающая слово, становится заглавной), vbLowerCase (преобразует строку в буквы нижнего регистра) и vbUpperCase (преобразует строку в буквы верхнего регистра). |
| String(N, S) | Возвращает строку длиной N символов, состоящую из символа, заданного первым символом в S. Например, StringE, "x") возвращает строку "ххххх". |
- Функции даты и времени (класс DateTime)
В языке VBA существует ряд функций, позволяющих определить текущую дату и время, выполнять различные вычисления со значениями даты и времени, а также извлекать из переменных со значениями даты/времени различные их компоненты: время, год или день недели. При задании аргументов в этих функциях следует помнить, что значения типа даты/времени заключаются между парой символов #, а строковые значения, определяющие интервал даты, — в кавычки. В таблице 1.5 приведены функции для работы с датами и временем. Полный синтаксис этих функций, включая перечень их необязательных аргументов, которые здесь частично опущены, при необходимости можно найти в справочной системе VBA.
Таблица 1.5 — Функции даты и времени
| Функция | Возвращаемое значение |
| DateValue (строка_с_датой) | Возвращает значение с типом даты, сформированное на основании значения аргумента, который должен представлять собой строковое значение или выражение, определяющее требуемую дату |
| Day(дата) | Возвращает целое значение с типом Variant (Integer), соответствующее дню месяца в заданной дате |
| Month(дата) | Возвращает целое значение с типом Variant (Integer), соответствующее месяцу (значение между 0 и 12 включительно) в указанной дате |
| Year(дата) | Возвращает целое значение с типом Variant (Integer), соответствующее году в указанной дате |
| Hour(время) | Возвращает целое значение с типом Variant (Integer), соответствующее часу суток (значение между 0 и 23 включительно) в заданном значении времени |
| Minute(время) | Возвращает целое значение с типом Variant (Integer), соответствующее минутам (значение между 0 и 59 включительно), в заданном значении времени |
| Second(время) | Возвращает целое значение с типом Variant (integer), соответствующее секундам (значение между 0 и 59 включительно), в заданном значении времени |
| Timer | Возвращает значение с типом single, указывающее число секунд, прошедших с момента начала (полночь) текущих суток |
| TimeSerial (часы,минуты, секунды) | Возвращает значение времени с типом Variant (Date), соответствующее значению времени, заданному числовыми аргументами часы, минуты, секунды |
| TimeValue(строка_с_временем) | Возвращает значение с типом времени, сформированное на основании значения аргумента, который должен представлять собой строковое значение или выражение, определяющее требуемое время |
| Weekday(дата) | Возвращает целое значение с типом Variant (integer), соответствующее дню недели в указанной дате |
Следует отметить, что кроме вышеперечисленных функций, в языке VBA существуют также специальные операторы работы с датами и временем, которые, в отличие от функции, выполняют некоторые действия, не возвращая при этом результирующего значения. К ним относятся:
- оператор date(дата), который устанавливает системную дату в соответствии со значением аргумента дата;
- оператор time(время), который устанавливает системное время в соответствии со значением аргумента время.
Поскольку операции сложения и вычитания значений даты и времени не подчиняются обычным правилам арифметики, в языке VBA для выполнения таких операций предназначена специальная функция DateAdd.
С помощью этой функции к указанной дате можно прибавить любое значение, выраженное в годах, кварталах, месяцах и днях, или же суммировать интервалы времени, выраженные в часах, минутах, секундах. Функция DateAdd имеет следующий синтаксис:
DateAdd (интервал, число, начальная_дата)
Здесь аргумент интервал — это строковое выражение, определяющее тип временного интервала, добавляемого к исходной дате, поэтому его значение обязательно заключается в кавычки- Значения, которые может принимать аргумент интервал, приведены в таблице 1.6. Аргумент число — это числовое выражение, задающее количество интервалов, которое нужно прибавить (для получения более поздних дат) или отнять (для получения более ранних дат) от исходной даты. При необходимости вычитания интервалов в этом аргументе следует указывать отрицательное число. Аргумент начальнаядата — это та дата, к которой прибавляется или из которой вычитается указанный временной интервал.
Таблица 1.6 — Значение аргумента интервал в функции DateAdd
| Значение аргумента | Задаваемый интервал |
| YYYY | Год |
| q | Квартал |
| m | Месяц |
| У | День года (эквивалентно значению d) |
| d | День |
| w | День недели (эквивалентно значению d) |
| WW | Неделя |
| h | Час |
| n | Минута |
| s | Секунда |

- Использование вторичных тепловых ресурсов
- Использование в украшении тортов масляной рисовальной массы
- Использование в хлебопечении растительное сырье Дальнего Востока
- Использование в ценообразовании понятия безубыточности
- Использование выводов из анализа финансовой отчетности при разработке бизнес-плана организации и принятии различных управленческих реше
- Использование ВЭЖХ в анализе антибиотиков
- Использование в экономики теории магисталей
- Использование вопросов истории математики при изучении геометрии
- Использование вопросов математики на уроках геометрии
- Использование воспитательных систем в отечественном и зарубежном опыте
- Использование в Республике Беларусь зарубежного опыта организации медицинского страхования
- Использование Всемирной торговой организацией защитных мер
- Использование вспомогательных веществ в косметологии
- Использование в стратегическом планировании современных методов анализа