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

Автор работы: Пользователь скрыл имя, 18 Марта 2012 в 13:36, курсовая работа

Описание

VBA (Visual Basic for Application) – это язык программирования, поддерживаемый всеми приложениями пакета Microsoft Office, в состав которого входят такие популяр¬ные приложения, как Microsoft Access, Microsoft Excel, Microsoft PowerPoint, Microsoft Word и др.

Содержание

Введение 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

Работа состоит из  1 файл

Курсач23.doc

— 154.50 Кб (Скачать документ)

ГЛАВА 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. Перевод чисел в текстовое представление