
- •Лабораторна робота №1 Вивчення середовища розробки додатків
- •Знайомство з середовищем Visual Basic For Applications
- •Порядок запису макросу за допомогою засобів автоматичного запису макросів (рекордера)
- •Питання для самоконтролю і завдання:
- •Лабораторна робота № 2. Процедури-функції Visual Basic For Applications
- •Методичні вказівки.
- •Створення процедури-функції.
- •Питання для самоконтролю:
- •Завдання на роботу:
- •Створення процедури-функції з операторами умовного переходу.
- •Лабораторна робота №4 Обмін даними між процедурою користувача, робочим листом і користувачем
- •Загальні відомості
- •Лабораторна робота №5. Створення процедур у vba з багаторазовими повтореннями (циклічні структури).
- •Порядок роботи:
- •Приклад створення екранної форми
Лабораторна робота №4 Обмін даними між процедурою користувача, робочим листом і користувачем
Мета роботи: 1. З'ясувати поняття «Виведення процедури» і «Введені дані»;
2. Вивчити діалогові вікна для обміну повідомленнями (інструкція MsgBox) і введення даних (функція InputBox())
3. Вивчити об'єкт Range і метод Cell, що забезпечують доступ до окремих елементів таблиці
Загальні відомості
Виведення повідомлень користувачеві. Повідомлення, які процедура виводить на екран або посилає на принтер або записує у файл на диску, називається виведенням процедури. Простим способом виведення на екран є інструкція MsgBox. Інструкція MsgBox — це як би вбудована в мову VBA процедура. Рядок в процедурі, в якій міститься слово MsgBox, викликає цю вбудовану процедуру. Приведемо приклад процедури, з якою зазвичай починається вивчення VBA
Текст в лапках після імені процедури — це текст того повідомлення, яке ви хочете вивести на екран. Лапки обов'язкові, оскільки це говорить VBA про те, що це аргумент процедури, а не інструкція, що підлягає виконанню. Після запуску процедури (Натиснення команди Run) на робочому листі з'явиться діалогове віконце наступного вигляду:
З
а
умовчанням в заголовку вікна виводиться
ім'я того застосування, яке запускає
процедуру, в нашому випадку це Excel. Можна
змінити заголовок вікна. Для цього
потрібно використовувати інструкцію
MsgBox наступного вигляду:
І
нструкція
MsgBox виглядає тепер трохи інакше, хоч і
служить тій же самій меті: виводить на
екран повідомлення для користувача.
Інструкція містить три аргументи, кожен
відокремлений від сусідніх комами.
Перший аргумент — це текст повідомлення,
що виводиться у вікні; Другий аргумент
— в списку необов'язкових. Він називається
Buttons,
служить для того, щоб вказати, скільки
і які кнопки повинні бути присутніми у
вікні повідомлень. Якщо ви опустите
аргумент Buttons,
вікно повідомлень міститиме тільки
одну кнопку — кнопку ОК.
Третій аргумент указує заголовок вікна.
Введення даних користувача в процедуру. Дані, що утримуються від користувача, називаються введеними даними, або просто введенням. Для отримання даних від користувача застосовується функція InputBox. Функція InputBox виводить на екран вікно з текстом-підказкою, що пропонує ввести деяке значення, і полем введення для цього значення. Крім того, у вікні функції InputBox присутні кнопки ОК і Cancel. Перед викликом функції InputBox потрібно сформувати текст запрошення. Крім того, можна задати заголовок вікна, який буде виведений в рядку заголовка вікна InputBox. Синтаксис виклику функції InputBox наступний:
Строка= InputBox(запрошення[,Заголовок])
де:
рядок — це будь-яка змінна, в якій може зберігатися текстовий рядок; може мати тип String або Variant;
запрошення — пойменована або непойменована константа або змінна, що містить текст. Це обов'язковий аргумент;
Заголовок — це необов'язковий другий аргумент функції InputBox. Якщо ви опустите цей аргумент у виклику функції, в заголовку буде виведений рядок Microsoft Excel.
Зауваження: 1. Після виклику функції потрібно якимсь чином використовувати значення, що повертається нею, зване також результатом функції. Значення, що зазвичай повертається, привласнюється деякій змінній;
2. Результат функції InputBox - це завжди рядок. Введення користувача перетвориться в число за допомогою вбудованої функції Val
Завдання 1. Створіть процедуру користувача, яка передбачає введення вашого імені за допомогою функції InputBox і виведення вітання вам з допомогою інструкція MsgBox
Порядок дій:
Відкрийте VB-редактор (натиснувши клавіші Alt+F11);
У вікні Project відзначте проект, до якого ви хочете додати модуль;
Виберіть в меню Insert_Module (або клацніть по кнопці Insert панелі інструментів). VB створить новий модуль і відкриє вікно Code;
Створивши новий модуль, потрібно дати йому змістовне ім'я.
Для перейменування модуля виконайте наступні дії:
У
VB-редакторові відзначте модуль, який ви хочете перейменувати;
У вікні Properties відображений єдиний модуль, який має тільки одну властивість — своє ім'я;
У
текстовому полі Name введіть нове ім'я для модуля. У нашому випадкуДиалоговыеОкна. Як тільки курсор покине це текстове поле, модуль буде перейменований.
У вікні Code наберіть наступну процедуру:
Запустите процедуру на виконання, клацнувши по команді Run.
Завдання 2. Змініть функцію InputBox, як показано на листенгу і проаналізуйте, в чому відмінність їх роботи:
Завдання 3. У тому ж модулі створіть нову процедуру. Для цього:
досить написати заголовок процедури і натиснути клавішу Enter. Нова процедура буде відокремлена від попередньою горизонтальною лінією, з'явиться команда кінця процедури і вам необхідно ввести тіло процедури.
Проаналізуйте кожен рядок програми і визначте її призначення;
Спробуйте визначити результати роботи процедури;
Запустите програму на виконання.
Доступ до осередків робочого листа. Окремі елементи таблиці доступні через об'єкт Range і метод Cell.
Range — це один з об'єктів Excel, що забезпечує роботу з прямокутною областю осередків, у якості аргументів якої використовується одна або два посилання на елементи таблиці в стилю А1:
Range(“A2”;“G10”)
Range(“f4”)
Або на блок осередків по їх імені:
Range(“A10”;“F12”).value=10 |
привласнення блоку осередків постійного значення |
Range(“D15”).value=“Test” |
привласнення осередку значення “Test” |
Range(“Criteria”).ClearCotents |
Очищення вмісту іменованого блоку середків |
Тут використовувалася властивість об'єкту Value — реальне значення, що показується в осередку і метод Clear, — видаляє дані, що містяться в об'єкті.
Завдання 4. Створіть процедуру наступного вигляду:
У осередок А1 занесіть будь-яке число;
Запустіть програму на виконання;
Поверніться в робочий лист і проаналізуйте результати роботи вашої процедури
Cell — це метод, який повертає об'єкт Range, у якості аргументу указується два цілі числа, що визначають місцеположення окремого елементу таблиці — Cell(число1;число2). Причому перше число вказує на рядок, друге — на стовпчик.
Cell(1,2). Value=5 |
Привласнює осередку В1 значення 5 |
Cell(2,1).Formula=“=sum(B1:B5)” |
Записує в осередок А2 формулу підсумовування значень в осередках В1:В5 |
Завдання 5.Створіть процедуру наступного вигляду:
У стовпець А, починаючи з осередку А1, введіть будь-які числа;
Запустите програму на виконання;
Поверніться в робочий лист і проаналізуйте результати роботи вашої процедури
Завдання 6. Створіть процедуру з вибором з лабораторної роботи 3. Введення організовуйте за допомогою функції InputBox, а виведення — об'єкту Range або інструкції MsgBox