![](/user_photo/2706_HbeT2.jpg)
- •Введение
- •Лабораторная работа №1 Форматирование документов в ms Word.
- •Теоретические положения.
- •Контрольные вопросы.
- •Задания к лабораторной работе № 1.
- •Лабораторная работа №2 Работа с таблицами в ms Word.
- •Теоретические положения.
- •Контрольные вопросы.
- •Задания к лабораторной работе № 2.
- •Оформить счет.
- •Лабораторная работа №3 Работа с рисунками в ms Word.
- •Теоретические положения.
- •(2 Часа)
- •Контрольные вопросы.
- •Задания к лабораторной работе № 4.
- •Лабораторная работа №5 Форматирование ячеек, использование простейших функций и операторов.
- •Теоретические положения.
- •Контрольные вопросы.
- •Задания к лабораторной работе № 5.
- •Лабораторная работа №6. Вложенные функции, создание сводных таблиц. (2 часа)
- •Теоретические положения.
- •Контрольные вопросы.
- •Задания к лабораторной работе № 6.
- •Лабораторная работа №7. Фильтрация списков при помощи фильтров и построение диаграмм. (2 часа)
- •Теоретические положения.
- •Контрольные вопросы.
- •Задания к лабораторной работе № 7.
- •Лабораторная работа №8. Использование функций из категории «Ссылки и массивы»
- •Теоретические положения.
- •Контрольные вопросы.
- •Задания к лабораторной работе № 8.
- •Лабораторная работа №9. Работа с макросами в ms excel. (2 часА)
- •Основные теоретические сведения для выполнения работы.
- •Создание макроса Запись макроса
- •Выполнение макроса
- •Назначение кнопки или графического объекта для запуска макроса.
- •Создание пользовательской функции.
- •Выполняемые и невыполняемые инструкции.
- •Лабораторная работа №10. Матричные операции в Ms Excel.
- •Основные теоретические положения.
- •Функции, входящие в категорию “Статистические“
- •Лабораторная работа №11. Использование Ms Excel для решения задач оптимального планирования.
- •Основные теоретические положения.
- •Лабораторная работа №12. Построение регрессионных моделей с помощью Ms Exsel.
- •Основные теоретические положения.
- •Приложение 1
- •Кафедра информатики
- •Список литературы
- •Пичугина Мария Анатольевна
- •164500, Г. Северодвинск, ул. Воронина, 6.
Выполняемые и невыполняемые инструкции.
Основное различие между выполняемой инструкцией Visual Basic и комментарием (невыполняемой инструкцией) состоит в тем, что комментарий всегда начинается с апострофа или ключевого слова Rem. Следовательно, если при создании макроса или пользовательской функции вы ввели инструкцию и затем решили, что она не должна выполняться при работе процедуры, то достаточно вставить перед этой инструкцией апостроф, преобразовав ее в комментарий. При выполнении макроса Excel пропустит невыполняемую инструкцию, как если бы ее не было вовсе. Так, например, если вы создаете макрос, который форматирует лист и затем его печатает, то на время отладки макроса можно превратить инструкцию печати в комментарий.
Разработка гибкой функции.
Давайте создадим еще одну пользовательскую функцию, чтобы приобрести некоторый опыт редактирования процедур в модуле Visual Basic.
Некоторые встроенные функции Excel позволяют опускать определенные аргументы. Например, в функции ПЗ (PV) вы можете опустить аргументы тип и будущее значение, но Excel все равно вычислит результат. Но если опустить аргумент в пользовательской функции, Excel выведет сообщение об ошибке, если только специально не указать (с помощью ключевого слова Optional), что данный аргумент является необязательным. При этом в саму функцию необходимо включить проверку наличия соответствующего аргумента.
Например, предположим, что вы хотите создать простую пользовательскую функцию с именем Треугольник, которая использует теорему Пифагора для вычисления длины любой стороны прямоугольного треугольника по двум другим сторонам, как показано на этом рисунке:
Теорема Пифагора может быть выражена следующим уравнением:
a2+b2= с2, где а и b являются катетами, а с — гипотенуза.
Если заданы любые две стороны, то уравнение можно переписать тремя способами так, чтобы неизвестная переменная всегда находилась слева от знака равенства:
Следующая функция использует эти три варианта уравнения для вычисления длины неизвестной стороны:
Function Треугольник(Optional short1, Optional short2, Optional longside)
If Not (IsMissing(short1)) And Not (IsMissing(short2)) Then
Треугольник = Sqr(short1 ^ 2 + short2 ^ 2)
Else
If Not (IsMissing(short1)) And Not (IsMissing(longside)) Then
Треугольник = Sqr(longside ^ 2 – short1 ^ 2)
Else
If Not (IsMissing(short2)) And Not (IsMissing(longside)) Then
Треугольник = Sqr(longside ^ 2 - short2 ^ 2)
Else
Треугольник = Null
End If
End If
End If
End Function
Первая инструкция содержит имя пользовательской функции и необязательные аргументы shorti, short2 и longside. Обратите внимание, что в этой функции мы не можем использовать слово long в качестве имени аргумента, потому что long является зарезервированным словом Visual Basic. Следующий фрагмент текста функции содержит ряд инструкций If, которые используют встроенную в Visual Basic функцию IsMissing, чтобы выяснить, какая именно пара аргументов была задана. Эта проверка нужна для определения той стороны, длину которой должна вычислить функция.
Например, инструкция
If Not (IsMissing(shortl))
And Not (IsMissing(short2)) Then
Треугольник = Sqr(short1 ^ 2 + short2 ^ 2)
проверяет наличие аргументов shorti и short2. Функция IsMissing возвращает True (Истина), если аргумент не был задан. Если аргументы shorti и short2 заданы, Excel вычисляет квадратный корень из суммы квадратов длин двух катетов и возвращает длину гипотенузы.
Если задано меньше двух аргументов, то ни одна из инструкций If не возвращает значение True, и в этом случае выполняется инструкция
Треугольник = Null
Эта инструкция возвращает определенное в Visual Basic значение Null, которое в рабочем листе Excel преобразуется в ошибочное значение #Н/Д (#N/A).
Теперь посмотрим, что происходит при использовании этой функции в рабочем листе. Формула
=Треугольник (; 4; 5 )
возвратит значение 3, длину отсутствующего катета. Соответственно, формула =Треугольник(3; ;5)
возвратит значение 4 — длину другого отсутствующего катета. И наконец, формула
=Треугольник(3 ;4;)
возвратит значение 5 — длину гипотенузы. Если длины двух катетов (3 и 4) хранятся в ячейках А4 и В4, а в ячейку С4 введена формула
=Треугольник( А4; В4;) то Excel выведет в этой ячейке значение 5.
Если заданы значения для всех трех аргументов, тогда первая инструкция If возвращает True, и пользовательская функция действует так, как если бы значение для гипотенузы не было задано. Но что произойдет при вводе для всех трех аргументов ссылок на ячейки. Например, предположим, что вы ввели в ячейку D4 следующую формулу:
=Треугольник(А4; В4; С4)
предполагая, что длины двух сторон треугольника будут введены в соответствующие ячейки, а не прямо в функцию. Если ячейки А4 и С4 содержат длины одного из катетов и гипотенузы, а ячейка В4 пустая, то хотелось бы ожидать, что функция Треугольник возвратит длину второго катета. Однако ссылка на пустую ячейку В4 возвращает 0, а не #Н/Д. Поскольку первые два аргумента имеют числовые значения, то функция пытается рассчитать длину гипотенузы прямоугольного треугольника, в котором один из катетов имеет нулевую длину, и как обычно возвращает квадратный корень из суммы квадратов катетов. Результатом функции является длина катета, который был задан в листе, а вовсе не длина отсутствующей стороны.
Одним из способов разрешения этой потенциальной проблемы является изменение инструкций If так, чтобы они проверяли присутствие нулевых значений, а также ошибочных значений #Н/Д. Прямоугольный треугольник не может иметь сторону с нулевой длиной, и в том случае, когда аргумент оказывается нулевым, это означает, что он просто не был задан.
Эта проблема наглядно демонстрирует один из основных вопросов, возникающих перед разработчиком пользовательских функций. Следует создавать и отлаживать функции так, чтобы они работали правильно даже тогда, когда используются неожиданным способом.