МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное
Учреждение высшего профессионального образования
«Юго-Западный государственный университет»
(ЮЗГУ)
Лабораторная работа №3
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКОЙ ФУНКЦИИ И ОРГАНИЗАЦИЯ ОБРАЩЕНИЯ К ЯЧЕЙКАМ ЛИСТА MS EXCEL СРЕДСТВАМИ VBA
Выполнил: студент группы СП-41б Юшков А.А.
Проверила: к. т. н. Титова Г.С.
Курск 2014
Цель работы: изучение оператора цикла, этапов создания пользовательской функции, а также организация обращения к ячейкам листа из процедуры/функции на языке VBA.
Создание пользовательской функции
1. Запускаем программу Excel.
2. Открываем редактор VBA (Visual Basic for Application) (Сервис à Макрос à Редактор Visual Basic).
3. Добавляем в проект новый программный модуль (Insert à Module).
4. Добавляем новую процедуру, выполнив команду Insert à Procedure…, а затем и введя в поле Name значение MyProcedure и выбрав в поле Type значение Sub.
5. Вводим недостающий текст так, чтобы содержимое окна редактора имело следующий вид:
- Устанавливаем текстовый курсор в пределах введенного текста и запускаем созданную процедуру на выполнение с помощью команды Run à Run Sub/User Form. Проверяем правильность вычисления факториала для значений числа N от 0 до 13.
7. Заменяем в строке
Dim F As Long
Long на Double.
8. Снова запускаем процедуру и проверяем правильность вычисления факториала для нескольких значений числа N, начиная с 13.
9. Для создания на основе имеющейся процедуры пользовательской функции изменияем введенный ранее текст следующим образом
Для добавления в модуль новой функции можно воспользоваться командой Insert à Procedure…, введя затем в поле Name имя создаваемой функции и выбрав в поле Type значение Function
10. Выбираем Лист 1 книги Excel и устанавливаем для всех ячеек формат Числовой, число десятичных знаков – 0. Вводим в ячейку A1 число 0, а в ячейку B1 – формулу =ФАКТОРИАЛ(A1).
При создании формулы можно воспользоваться Мастером функций, выбрав категорию «Определенные пользователем».
11. Вводим в ячейку A2 число 1, выделяем диапазон A1:A2 и с помощью автозаполнения заполняем ячейки до A21 включительно. Заполните соответствующие ячейки столбца B, также используя автозаполнение.
12. В ячейку C1 вводим формулу =ФАКТР(A1). С помощью автозаполнения заполняем другие ячейки столбца C (до С21 включительно).
- Убеждаемся в равенстве значений, полученных с помощью созданной функции ФАКТОРИАЛ() и стандартной функции ФАКТР().
Создание процедуры заполнения ячеек листа Excel случайными числами
1. Добавляем в модуль новую процедуру, выполнив команду Insert à Procedure…, а затем и введя в поле Name значение FillRandom и выбрав в поле Type значение Sub
2. Вводим недостающий текст так, чтобы содержимое окна редактора имело следующий вид:
3. Выбираем Лист 2 книги Excel и запускаем созданную процедуру с помощью команды Сервис à Макрос à Макросы…, выбрав затем имя макроса FillRandom и нажав кнопку «Выполнить».
4. Запускаем процедуру несколько раз, убедившись, что ячейки A1:A10 каждый раз принимают новые значения.
5. Вводим в ячейку C1 формулу =СЛЧИС()*100. Используя автозаполнение, распространяем ее на ячейки C2:C10.
6. Определяем, в чем разница в использовании двух приведенных способов заполнения ячеек случайными значениями.
7. Изменяем текст процедуры следующим образом:
Public Sub FillRandom()
Dim I, R, C As Integer
Randomize
R = ActiveCell.Row
C = ActiveCell.Column
For I = R To R + 10
Cells(I, C) = Rnd * 100
Next
End Sub
8.Выбираем Лист 3 книги Excel и запускаем процедуру несколько раз (см. п.3), выбирая на листе каждый раз активную ячейку произвольным образом.