VBA. Перевод чисел в текстовое представление
Министерство образования Республики Беларусь
УО «Мозырский государственный педагогический университет имени И.П. Шамякина»
Кафедра информатики и методики преподавания информатики
Курсовая работа
VBA. Перевод чисел в текстовое представление
Выполнил:
студентка 3 курса 2 группы
факультета иностранных языков
Хаданович Олеся Алексеевна
Научный руководитель:
Загорский А.Е.
Оценка научного руководителя:
оценка, дата сдачи, подпись
Итоговая оценка:
Мозырь 2011
1
РЕЗЮМЕ
Ключевые слова: Visual Basic for Application, Microsoft Excel, объект, модуль, макрос, компонент, рабочая книга, рабочий лист, ячейка, программный код.
ОГЛАВЛЕНИЕ
Введение 4
Глава 1 Основные средства и возможности VBA 5
1.1 Общая характеристика VBA 5
1.2 Использование VBA в Microsoft Excel 7
1.3 Структура приложения Excel 7
1.4 Структура программного кода VBA 8
1.5 Макросы 9
Глава 2 Практическая часть 10
2.1 Постановка задачи 10
2.2 Программная реализация 10
2.3 Результаты тестирования 13
Заключение 14
Список использованных источников 15
Приложение А Программный код на языке VBA 16
Приложение Б Программа в электронном варианте 25
5
ВВЕДЕНИЕ
VBA (Visual Basic for Application) – это язык программирования, поддерживаемый всеми приложениями пакета Microsoft Office, в состав которого входят такие популярные приложения, как Microsoft Access, Microsoft Excel, Microsoft PowerPoint, Microsoft Word и др.
VBA – относительно несложный язык программирования, который очень прост и удобен в освоении и позволяет быстро получить ощутимые результаты – конструировать профессиональные приложения для решения практически любых задач в среде Microsoft Windows. Можно сказать, что язык VBA является прямым наследником языка программирования Basic, но, тем не менее, в сравнении с ним он шагнул далеко вперед. Поэтому и возможностей, как внутренних (например, в части вывода на экран всевозможных форм), так и в отношении взаимодействия с другими приложениями, у него гораздо больше.
В данной курсовой работе мы создадим программу в Microsoft Excel, при помощи встроенного языка программирования, которая будет переводить числовые данные в текстовое представление.
5
ГЛАВА 1. Основные средства и возможности VBA
1.1 Общая характеристика VBA
Visual Basic for Application (VBA) – развитая система визуального программирования для создания прикладных программ в среде Microsoft Office. С помощью VBA можно создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним соответствующий программный код. Методика программирования с использованием средств VBA сводится к следующему:
1. Создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);
2. Разработка процедур, используемых при вызове объектов.
Программы на языке VBA для приложений, функционирующих в Excel, создаются двумя способами:
1. В автоматическом режиме как результат построения клавишной макрокоманды;
2. В неавтоматическом режиме путем создания программного кода.
Для создания программного модуля в составе рабочей книги выполняется команда меню ВСТАВКА, Макрос с указанием типа макроса – Модуль. При этом создается новый рабочий лист со стандартным именем Модуль и порядковым номером программного модуля в рабочей книге. Имя модульного листа можно изменить.
При работе с модулем на экран выводится новая панель инструментов Visual Basic.
Первый ряд кнопок панели (слева направо):
<Вставка Модуля> - вставляет в активную рабочую книгу новый программный модуль;
<Редактор Меню> - редактирование строк и команд меню рабочей книги;
<Просмотр Объектов> - просмотр списка доступных в текущей рабочей книге процедур, модулей, и объектов и их свойств.
Второй ряд кнопок:
<Выполнить Макрос> - выбор нужного макроса для запуска через окно диалога Макрос;
<Шаг Макроса> - пошаговое выполнение выбранного макроса (шаг – одна строка кода);
<Продолжить Макрос> - возобновление выполнения макроса после его останова;
<Остановить макрос> - останов выполнения или записи макроса;
<Записать макрос> - ввод через окно диалога Макрос имени нового макроса и его запись.
Третий ряд кнопок:
<Точки Прерывания> - установление (снятие) точки прерывания для строки процедуры;
<Наблюдение> - указание в окне диалога выражения VBA для наблюдения его значений;
<Вход в Процедуру> - выполнение следующей строки кода процедуры VBA;
<Выход из Процедуры> - выполнение следующей строки кода процедуры VBA с приостановкой.
Экран модуля используется для записи строк программы на языке VBA.
Доступ к компоненту набора осуществляется двумя способами:
1. По номеру компонента
2. По имени компонента.
Наборы обладают следующими свойствами:
1. Count – определяет число компонентов в наборе;
2. Name – определяет имя компонента;
3. Parent – определяет имя объекта, включающего набор.
Для добавления и удаления компонентов набора используют методы Add и Delete. Отдельные ячейки таблицы доступны через объект Range и следующие методы:
1. Cell – в качестве аргументов указываются два целых числа, определяющих местоположение ячейки таблицы – Cell (число1; число2).
2. Range – работа с прямоугольной областью ячеек, в качестве аргументов используется одна или две ссылки на ячейки таблицы в стиле A1:
3. Offset – в качестве аргументов передаются два числа, указывающие местоположение ячейки относительно верхнего левого угла указанной области.
1.2 Использование VBA в Microsoft Excel
VBA позволяет существенно расширить возможности Excel. С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь специалистом в области программирования. VBA имеет графическую и инструментальную среду, позволяющую создавать экранные формы и управляющие элементы. С его помощью можно создавать свои собственные функции для Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню и многое другое.
Редактор VBA активизируется из Excel одним из следующих способов:
1. Командой меню СервисЮМакросЮРедактор Visual Basic;
2. Комбинацией клавиш <Alt+F11>;
3. Кнопкой панели инструментов Visual Basic .
Вернуться из редактора VBA в приложение можно по комбинации клавиш <Alt+F11>, по команде View>Microsoft Excel или через панель задач.
Знакомство с VBA мы рекомендуем начинать с создания макросов, когда сама программа Excel записывает выполняемые команды и генерирует программный код в виде процедуры. Между макросом, который создается в процессе записи, и VBA-программой, код которой мы вводим вручную, принципиальной разницы нет. В дальнейшем процедуру макроса можно модифицировать, добавляя новые команды или удаляя лишние. Тщательный разбор команд поможет освоить принципы языка VBA, а практическое написание программ значительно ускорит процесс.
1.3 Структура приложения Excel
При открытии рабочей книги автоматически активизируется объект Application, определяющий само приложение, и все встроенные в него объекты. Этот объект находится на вершине иерархической структуры. Приложение включает рабочие книги (Workbooks) и различные системы надстройки. В свою очередь, рабочие книги содержат рабочие листы (Sheets) и другие объекты. Наконец, рабочие листы включают самый важный объект – диапазон ячеек (Range).
Так как приложение разрабатывается на базе существующих таблиц, все результаты действий должны быть связаны с ячейками рабочего листа. Специального объекта ячейки в Excel не существует, в данном случае объект Range используется и для одной-единственной ячейки, и для интервала ячеек.
Редактор Visual Basic for Application в визуальном режиме позволяет просмотреть структурный состав объектов, обеспечивает добавление новых и редактирование существующих элементов, в том числе и макросов.
Главное окно редактора включает следующие элементы: окно проекта (Project), окно формы (UserForm), окно программного кода (Code), окно просмотра (Object Browser).
Рисунок 1.1 – Общий вид окна редактора VBA при первом запуске в программе Excel
1.4 Структура программного кода VBA
Программа VBA представляет собой совокупность процедур и функций, размещенных в зависимости от особенностей решаемой задачи в одном или нескольких модулях (это специальные разделы Excel). Добавление модуля осуществляется по команде Insert>Module (в этом случае программный код составляется пользователем) или при создании макроса (когда программа создается автоматически). Созданному модулю присваивается стандартное имя Module1, Module2 и т. д.
Каждый модуль отображается в окне, который имеет две области: общую область и область подпрограмм. В общей области помещаются операторы описания переменных, которые являются общими для всех процедур и функций этого модуля. В области подпрограмм помещается код программы. Окно программного кода предназначено для ввода, просмотра и редактирования процедур модуля. В данном окне можно просмотреть код выбранной процедуры или всех процедур модуля сразу.
Для удаления модуля следует: выделить имя модуля, выбрать команду File>Remove Module, щелкнуть в окне диалога на кнопке "Нет".
1.5 Макросы
Макрос – это последовательность команд и действий пользователя, записанная и хранимая внутри документа и исполняемая Excel так же, как пользователь производил эти действия. Последовательность действий пользователем выполняется один раз при записи макроса, затем автоматически производится Excel при каждом запуске макроса. Большинство команд, которые можно выполнить с использованием меню, клавиатуры или мыши, можно записать в макрос и выполнить их при необходимости. С помощью макроса можно строить числовые ряды, копировать таблицы, выполнять переход на нужные листы, сохранять информацию, работать в режиме ввода и т.д. Макрос записывается в виде процедуры с заданным именем в модуль. Имя макроса может состоять из букв, цифр и символа подчеркивания.
Для записи макроса необходимо: выполнить команду Сервис>Макрос>Начать запись, в окне диалога "Запись макроса" задать имя макроса и сочетание клавиш для быстрого выполнения макроса ; затем выполнить нужные действия; после чего закончить запись макроса по команде Сервис>Макрос>Остановить запись. При записи макроса используются команды меню, кнопки панели инструментов, ярлычки листов, клавиатура.
Макрос представляет процедуру, начинающуюся с ключевого слова Sub и заканчивающуюся словом End Sub. Первые строки процедуры являются комментариями, они содержат имя макроса, дату записи, автора и комбинацию клавиш. Далее следуют команды, записанные по правилам VBA. Каждая команда соответствует выполненному действию.
Язык программирования VBA имеет свои правила написания программного кода. Он использует свой алфавит, включающий буквы латинского алфавита и кириллицу; цифры от 0 до 9; символ подчеркивания.
Из этих символов состоят имена процедур, переменных, меток переходов, константы и команды.
В состав алфавита также входят пробелы для отделения слов друг от друга и знаки операций (+ - * / ^ = > < ( ) [ ] { } ‘ & @), в том числе составные ( >=, <=, <>).
ГЛАВА 2. Практическая часть
2.1 Постановка задачи
В данной главе мы создадим программу в Microsoft Excel, при помощи встроенного языка программирования VBA. Наша задача состоит в том, чтобы написать программу, которая будет переводить числовые данные в текстовое представление.
Наша программа будет состоять из 3 основных процедур:
1. Процедура, которая будет переводить числовые данные в текстовое представление;
2. Процедура добавления окончания;
3. Процедура вывода текста.
2.2 Программная реализация
Прежде чем начать писать программный код, необходимо запустить редактор VBA. Это можно сделать при помощи выбора команды меню Сервис>Макрос>Редактор>Visual Basic (Tools>Macros>Visual Basic Editor), или нажатием клавиш <Alt+F11>.
После запуска редактора VBA, нам необходимо определить функцию, которая будет записывать числовые данные в текстовое представление, а также переменные. В нашем случае, мы будем использовать функцию Cur.
Пример функции и переменных (см. Приложение А):
Function Cur_txt1(cur As Currency, gender As String) As String
Dim str As String
Dim word As String
Dim digital As Integer
Dim c As Currency
c = cur
word = ""
Следующим этапом в разработке программы будет написание функции, которая бы определяла разряд числа. Для этого мы воспользуемся функцией Int, которая отбрасывает дробную часть числа и возвращает целое значение.
Пример использования функции Int смотри в Приложении А.
В конце первого блока при помощи условного оператора If мы задаём окончание словам, определяющим разряд числа, при выводе на экран.
Пример использования оператора If (см. Приложение А):
If c < 1000000 Then
str = Cur_txt1(Int(c / 1000), "w")
word = ""
Select Case Int(c / 1000) Mod 10
Case 1
If Int(c / 1000) Mod 100 = 11 Then
word = "тысяч"
Else
word = "тысяча"
End If
Case 2, 3, 4
If (Int(c / 1000) Mod 100 > 10) And (Int(c / 1000) Mod 100 < 20) Then
word = "тысяч"
Else
word = "тысячи"
End If
Case Else
word = "тысяч"
End Select
Так как, наша программа предназначена, в основном, для бухгалтеров, то второй блок программного кода определяет окончание – рубли и копейки. В данном случае, это не принципиально и можно легко заменить рубли и копейки, на целые и сотые. Для этого мы воспользуемся функцией CurText, а при помощи оператора If зададим необходимое условие.
Пример использования функции CurText и оператора If:
Public Function CurText(cur As Currency) As String
Dim tmp As String
If cur < 1000000000 Then
tmp = ""
If cur >= 1 Then
tmp = Cur_txt1(Int(cur), "m") & " руб."
End If
If cur - Int(cur) >= 0.1 Then
tmp = tmp & " " & Int((cur - Int(cur)) * 100) & " коп."
Else
tmp = tmp & " 0" & Int((cur - Int(cur)) * 100) & " коп."
End If
CurText = tmp
Else
CurText = ""
End If
End Function
Заключительный блок программы отвечает за вывод текста на экран в Microsoft Excel. В данном случае мы используем функцию FirstLetter и оператор If.
Пример использования функции FirstLetter и оператора If:
Public Function FirstLetter(str As String) As String
If str <> "" Then
FirstLetter = UCase(Left(str, 1)) + Right(str, Len(str) - 1)
Else
FirstLetter = ""
End If
End Function.
2.3 Результаты тестирования
После написания программного кода, необходимо запустить программу в Microsoft Excel, чтобы удостовериться, правильно ли она работает. Если всё правильно сделано, то это будет выглядеть так, как представлено на рисунке 2.1:
Рисунок 2.1 – Вид программы в Microsoft Excel
ЗАКЛЮЧЕНИЕ
В данной курсовой работе мы узнали, что такое редактор Visual Basic for Application, для чего он служит и какими возможностями обладает. Также поставили задачу написать программу при помощи этого редактора, которая бы переводила числовые данные в текстовое представление в Microsoft Excel. И справились с ней.
По итогам проделанной работы можно утверждать, что изучив язык Visual Basic for Application, создание многих офисных приложений становится гораздо проще и быстрее, чем с помощью других языков программирования. В этом мы убедились, при написании нашей программы. Созданный нами макрос будет полезен в работе бухгалтеров, менеджеров, экономистов, а также простых пользователей.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Гарнаев А.Ю. Самоучитель VBA/ А.Ю. Гарнаев – Санкт-Петербург: БХВ-Петербург, 2003. – 512 с.
2. Гарнаев А.Ю. Excel, VBA, Internet в экономике и финансах/ А.Ю. Гарнаев – Санкт-Петербург: БХВ-Петербург, 2001. –132 с.
3. Демидова Л.А. Программирование в среде Visual Basic for Application/ Л.А. Демидова, А.Н. Пылькин – Москва: Телеком, 2004. – 15 с.
4. Уокенбах Д. Профессиональное программирование на VBA в Excel 2002. Пер. с англ./ Д. Уокенбах – Москва: Издательский дом «Вильямс», 2003. –784 с.
5. Функции и формулы – Хитрости работы с Excel – таблицы, функции, формулы, списки, рабочие книги, макросы [Электронный ресурс]. – Режим доступа: http://www.teachexcel.ru/
ПРИЛОЖЕНИЕ A
Программный код на языке VBA
Function Cur_txt1(cur As Currency, gender As String) As String
Dim str As String
Dim word As String
Dim digital As Integer
Dim c As Currency
c = cur
word = ""
If c < 1000 Then
digital = Int(c / 100)
Select Case digital
Case 1
word = "сто"
Case 2
word = "двести"
Case 3
word = "триста"
Case 4
word = "четыреста"
Case 5
word = "пятьсот"
Case 6
word = "шестьсот"
Case 7
word = "семьсот"
Case 8
word = "восемьсот"
Case 9
word = "девятьсот"
End Select
str = word
word = ""
c = c - digital * 100
If c > 19 Then
digital = Int(c / 10)
Select Case digital
Case 2
word = "двадцать"
Case 3
word = "тридцать"
Case 4
word = "сорок"
Case 5
word = "пятьдесят"
Case 6
word = "шестьдесят"
Case 7
word = "семьдесят"
Case 8
word = "восемьдесят"
Case 9
word = "девяносто"
End Select
If word <> "" Then
If str <> "" Then
str = str + " " + word
Else
str = word
End If
End If
word = ""
c = c - digital * 10
End If
Select Case c
Case 1
word = "один"
Case 2
word = "два"
Case 3
word = "три"
Case 4
word = "четыре"
Case 5
word = "пять"
Case 6
word = "шесть"
Case 7
word = "семь"
Case 8
word = "восемь"
Case 9
word = "девять"
Case 10
word = "десять"
Case 11
word = "одиннадцать"
Case 12
word = "двенадцать"
Case 13
word = "тринадцать"
Case 14
word = "четырнадцать"
Case 15
word = "пятнадцать"
Case 16
word = "шестнадцать"
Case 17
word = "семнадцать"
Case 18
word = "восемнадцать"
Case 19
word = "девятнадцать"
End Select
If (c <= 2) And ((gender = "w") Or (gender = "W")) Then
Select Case c
Case 1
word = "одна"
Case 2
word = "две"
End Select
End If
If word <> "" Then
If str <> "" Then
str = str + " " + word
Else
str = word
End If
End If
Else
If c < 1000000 Then
str = Cur_txt1(Int(c / 1000), "w")

- Virtual trip of world
- Visual Basic программалау ортасы
- Visual Basic тілінде объектілі-бағдарланған программалау негіздері
- Visual Basic тілінің графикалық мүмкіндіктері
- Visual Basic тілінің графикалық мүмкіндіктері
- Visual Basic тілінің графикалық мүмкіндіктері
- Visual Fox Pro импорт-экспорт
- Uzņēmuma vadība atkarība no tās organizācionāla attīstības posma
- Uznemuma X komercdarbibas organizacija
- Uzņēmuma “X” saimnieciskās darbības vērtējums
- Uосударственноt регулирования товарного обращения
- Vakuumsūkņa VVC 1/0 ekspluatācija un remonts
- Varieties of Present-day English
- VAR (Value at Risk) универсальная методология измерения риска