Published using Google Docs
VBA ПР №3.doc
Updated automatically every 5 minutes

Економічна інформатика

Практична робота №3

Мова програмування VBA. Робота з об’єктами MS Excel при створенні додатків для ведення обліку виробничих операцій

Завдання: автоматизувати процес обліку торгових операцій в табличному процесорі MS Excel

  1. Створити книгу MS Excel. Перший аркуш перейменувати у «Титульний», другий – у Nomenklatura.

  1. На аркуші Nomenkatura в комірки А2, В2, С2, D2 ввести слова: Операція, Опис, Сума, Дата.

  1. На першому аркуші ввести назву фірми (будь-яку). На панелі “Формы” вибрати об’єкт “Кнопка”, якій привласнити макрос.

  1. У вікні «Назначить макрос об’єкту» вибрати кнопку «Создать» після чого ввести наступний код:

Private Sub CommandButton1_Click()

ViknoProgramy.Show

End Sub

  1. Створити форму та перенести на неї такі елементи:
  1. Рамку (Frame)
  2. дві кнопки (CommandButton). Назвати їх OK і Vuxid
  3.  поле зі списком (ComboBox), назвати це поле Spisok – для введення назви операції
  4. три текстових поля, назвати їх Suma – для введення суми, Data, - для введення дати, Operaciya – для опису операції
  1. Назвати форму ViknoProgramy (поле Name)
  2. У вікні проекту натиснути на форму правою кнопкою і вибрати команду View Code.
  3. Увести програму ініціалізації. Для цього у списку об’єктів (верхній лівий кут) вибрати рядок UserForm, у списку процедур (правий верхній кут) вибрати Initalize.
  4. Ввести код, який при відкритті форми всім полям присвоїть пусті значення, тобто зітре все, що там було:

Private Sub UserForm_Initialize()

Suma.Text = ""            ‘- присвоює полю Suma пусте значення’

Data.Text = ""             ‘- присвоюэ полю Data пусте значення’

Operaciya.Text = ""         ‘- присвоює полю Operaciya пусте значення’

With ViknoProgramy    

Data.Text = Format(Now(), "mm/dd/yy")   ‘- в поле Data вставляє поточну дату’

End With

End Sub

  1. Зв’язати із кнопкою OK наступний код:

Private Sub OK_Click()

If Operaciya.Text = "" Then                ‘- Якщо в полі операція нічого не написано, то’

MsgBox "Введіть опис"                   ‘- з’являється вікно із повідомленням “Введіть опис”   ’

Operaciya.SetFocus                              ‘- курсор переміщується в поле Operaciya    ’

Else

Worksheets("Nomenklatura").Range("a3").EntireRow.Insert ‘- код, який вставляє пустий рядок між 3’

Worksheets("Nomenklatura").Range("a3").Value = Spisok.Value ‘- вставляє в комірку А3 значення поля Spisok’

Worksheets("Nomenklatura").Range("b3").Value = Operaciya.Value ‘- вставляє в комірку B3 значення поля Operaciya’

Worksheets("Nomenklatura").Range("c3").Value = Suma.Value ‘- вставляє в комірку С3 значення поля Suma

Worksheets("Nomenklatura").Range("d3").Value = Data.Value ‘- вставляє в комірку D3 значення поля Data

End If

End Sub

Також після рядка End If можна вставити код, який очищує дані в полях і вставляє поточну дату:

Suma.Text = ""            ‘- присвоює полю Suma пусте значення’

Data.Text = ""             ‘- присвоюэ полю Data пусте значення’

Operaciya.Text = ""         ‘- присвоює полю Operaciya пусте значення’

Spisok.Text = ""             ‘- присвоює полю Spisok пусте значення’

With ViknoProgramy    

Data.Text = Format(Now(), "mm/dd/yy")   ‘- в поле Data вставляє поточну дату’

  1. Із кнопкою Vuxid зв’язати наступний код:

Private Sub Vuxid_Click()

ViknoProgramy.Hide ‘- закриває програму’

End Sub

  1. Привести створену форму у відповідність з малюнком.
  2. Перевірити роботу форми в книзі, для чого ввести 10 записів у форму і подивитись, чи правильно вони перенесені на другу сторінку книги МС Ексел.

  1. На титульному аркуші змінити напис на кнопці, яка відкриває форму (використати контекстне меню):