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/funkcii-i-formuli/ – Дата доступа: 25.04.2011.

 

 

 


ПРИЛОЖЕНИЕ 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")

VBA. Перевод чисел в текстовое представление