Справочник от Автор24
Поделись лекцией за скидку на Автор24

Основы офисного программирования в MS EXCEL VBA

  • 👀 270 просмотров
  • 📌 228 загрузок
Выбери формат для чтения
Статья: Основы офисного программирования в MS EXCEL VBA
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Основы офисного программирования в MS EXCEL VBA» docx
Лекция №2. ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ В MS EXCEL VBA Visual Basic for Application (VBA) - это один из самых доступных языков программирования, который представляет собой упрощенную реализацию языка программирования Visual Basic. Он интегрирован в линейку продуктов Microsoft Office, а также во многие другие программные пакеты, такие как AutoCAD, CorelDRAW и т.д. VBA позволяет автоматизировать процессы выполнения различных операций и пользовательских действий, конструировать профессиональные приложения, решающие сложные практические задачи. Использование VBA совместно с возможностями электронных таблиц MS Excel особенно эффективно, так как позволяет совмещать возможности электронных таблиц с помощью языка программирования VBA. Таким образом, изучение основ использования VBA рекомендуется всем студентам и специалистам инженерных профилей. 2.1 Правило записи в редакторе Visual Basic Запуск редактора Visual Basic в MS Excel осуществляется или с помощью комбинации клавиш Alt+F11, или путем нажатия на кнопку Visual Basic на панели Разработчик (рис.1). Рис.1 – Кнопка запуска редактора Visual Basic в MS Excel Типы данных VBA Данные в Visual Basic могут иметь различные типы. Каждый тип данных характеризуется диапазоном допустимых значений и количеством байтов, требуемых для хранения значений. В следующей таблице перечислены поддерживаемые Visual Basic типы данных, размеры и диапазоны. Таблица – Типы данных Visual Basic Тип данных Размер Диапазон значений Byte (байт) 1 байт От 0 до 255 Boolean (логический) 2 байта True или False Integer (целое) 2 байта От -32768 до 32767 Long (длинное целое) 4 байта От -2147483648 до 2147483647 Single (с плавающей точкой обычной точности) 4 байта От -3,4x1038 до -1,4x10-45 и от 1,4x10-45 до 3,4x1038 Double (с плавающей точкой двойной точности) 8 байт От -1,79x10308 до -4,94x10-324 и от 4,94x10-324 до 1,79x10308 Currency (денежный) 8 байт От -922337203685477,5808 до 922337203685477,5807 Date (даты и время) 8 байт Дата – от 1 января 100 г. до 31 декабря 9999 г., время – от 0:00:00 до 23:59:59 String (строка переменной длины) 10 байт + длина строки От 0 до приблизительно 2109 Переменные Переменная – это именованная область памяти, в которой могут храниться различные данные, которые можно изменять во время выполнения программы. Для работы с данными в Visual Basic используются переменные. Каждая переменная должна иметь имя, которое начинающееся с буквы и содержащее не более 255 символов, и объявленный тип данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String, Object, Variant. Точки или символы описания типа в имени не допустимы. Указание типа данных для переменной необязательно. Инструкции объявления переменных Для объявления переменных применяются следующие инструкции: Dim, Private, Public, Static, Option Explicit. Рассмотрим пример объявления переменных: Пример. Dim x1 As Byte Dim x2 As Integer Dim x3 As Long , x4 As Single , x5 As Double , x6 As Date Вместо одного оператора Dim можно использовать два и более. Допускается описание нескольких переменных в одной строке. Для задания типа данных надо указать определенный тип для каждой переменной. Если в описании не указан тип переменной, для нее устанавливается тип Variant. Арифметические выражения Арифметические выражения образуются из констант, переменных, функций и выражений, заключенных в круглые скобки, которые соединены знаками арифметических операций. Стандартные математические функции Visual Basic приведены в таблице 1. Таблица 1.Стандартные математические функции Visual Basic Математическая запись Запись на Visual Basic SQR(X) ABS(X) LOG(X) EXP(X) COS(X) SIN(X) TAN(X) ATN(X) Примеры арифметических выражений X^Y X^(Y/Z) COS(X)^2 В Visual Basic существуют следующие виды арифметических операций: ^ – возведение в степень; - и + – присвоение знака числу (унарные операции); * – умножение; / – деление; \ – целочисленное деление; mod – взятие остатка от деления; + – сложение, - – вычитание. При составлении арифметических выражений необходимо учитывать приоритет выполнения арифметических операций. Наивысший приоритет имеют стандартные математические функции, затем – возведение в степень. После возведения в степень идет присвоение знака числу. Умножение и деление осуществляется после присвоения знака числу. Более низкий приоритет, за умножением и делением, имеют целочисленное деление и взятие остатка от числа. Самый низкий приоритет у вычитания и сложения. Операции в арифметических выражениях выполняются последовательно: слева на право в порядке их приоритета. В ряде случаев, приоритет может быть изменен при помощи скобок. При написании арифметических выражений, как правило, числитель и знаменатель берутся в круглые скобки. Если знаменатель или числитель составляет только одна функция, то скобки можно не ставить. Также скобки не ставятся, когда в числителе присутствуют только операции умножения или деления, что укладывается в естественный ход вычисления выражения: последовательно слева на право. Например, при вычислении выражения , скобки в числителе не ставятся, но обязательны в знаменателе: F=7*x^3*a^2/(5*x^5). Если скобки в знаменателе не поставить, то компилятор Visual Basic разделит числитель на 5, а затем, результат умножит на x^5. В случае, когда арифметическое выражение не помещается в одной строке, то при переходе на следующую строчку следует поставить знак _ и продолжить запись выражения на следующей строке. Пример. Пусть требуется написать арифметическое выражение на языке программирования VBA: Арифметическое выражение будет иметь следующий вид: F=(X^(3/5)+COS(X)^2-EXP(-7*X+4))/(LOG(ABS(X-7))*X^2-4*SQR(ABS(X))) Более оптимальной для вычислений будет следующая запись: F=(X^(3/5)+COS(X)^2-EXP(-7*X+4))/(LOG(ABS(X-7))*X*X-4*SQR(ABS(X))) Дело в том, что при возведении X в квадрат, X*X будет работать быстрее, чем X^2. При однократном вычислении эта тонкость останется незаметной для пользователя, но может привести к некоторой задержке выполнения программного кода при многократном повторении в теле цикла. 2.2 Последовательность операторов (ЛИНЕЙНОСТЬ). Последовательность Последовательность операторов означает последовательное их исполнение друг за другом. В языке программирования последовательно выполняемые операторы отделяются друг от друга символом конца строки (каждый оператор начинается с новой строки) или двоеточием. Присваивание Обычный синтаксис оператора присваивания: <переменная> <знак присваивания> <выражение>, где <знак присваивания> имеет вид «=» в VBA). Выполняется присваивание так: вычисляется выражение в правой части этого оператора и полученное значение присваивается переменной левой части (переменная получает это значение, «стирая» предыдущее). Пример. Например, последовательность операторов присваивания (в языке VBA): a = 4 + 7 a = a + 2 b = 2 a = b*3 +a исполняется так: вычисляется 4+7, результат 11 присваивается переменной а. Прежнее значение а стирается, новое значение а есть 11. Во второй строке к этому значению прибавляется 2, результат выражения есть 13 (11+2=13). Это значение присваивается переменной а, теперь уже значение а есть 13. В третьей строке b получает значение 2. Наконец, в четвертой строке снова пересчитывается значение переменной а: вычисляется выражение b*3+а (вместо b и а подставляются их значения 13 и 2), результат 2*3 + 13 = 19 присваивается переменной а (говорят, 19 «заносится» в переменную а или «запоминается» в а). Результат выполнения всей последовательности: а=19, b=2. Присваивание можно трактовать как запоминание (сохранение) вычисляемых в ходе исполнения алгоритма значений для последующего их использования. Сохраняясь в переменной, значение приобретает имя, например, в предыдущем примере далее в алгоритме вместо числа 19 можно использовать его (временное) имя a, вместо числа 2 – имя b. Обратную операцию – извлечение значения из переменной называют разыменованием. На блок-схеме присваивание представляется прямоугольником со входом и выходом. Внутри прямоугольника записывается сам оператор. Например, а = b*3+а выглядит так: Вся последовательность предыдущего примера изображается так: 2.3. Условный оператор (ветвление) Эта алгоритмическая структура представляет разветвление алгоритма в зависимости от значения (истинности или ложности) некоторого условия. В общем виде конструкция выглядит так: <если> <условие> <то> <действия1> <иначе> <действия2>, и читается как «если условие истинно, то выполнить действия1, иначе (если условие ложно), выполнить действия2». Слова «если», «то», «иначе» в разных языках могут иметь разный синтаксис, но в большинстве языков это «if», «then», «else». В VBA синтаксис условного оператора: If <условие> Then <действия1> Else <действия2> End If Условный оператор может быть неполным, без ветки <иначе> <действия2>. Тогда, если условие ложно, управление передается следующему в общей последовательности оператору. На блок-схемах эти два случая изображаются так: Здесь знаки «+» и «-» обозначают «да» (условие выполняется) и «нет» (условие не выполняется). Например, вычисление y, заданного формулой: можно представить следующей блок-схемой: На языке программирования VBA эта конструкция выглядит так: If x<0 Then y=x*x Else y=x+1 End If Обратите внимание, что операторы после Then (ветка «+») и Else (ветка «-») начинаются с новой строки, а сам условный оператор заканчивается фразой End If – признаком конца конструкции ветвления. Пример использования неполного условного оператора: суммируются числа, вводимые с клавиатуры; если число отрицательное, оно прежде заменяется единицей. Пусть переменная а хранит значение введенного числа, а переменная S хранит сумму введенных чисел. Фрагмент блок-схемы решения такой задачи: На языке программирования VBA эта конструкция выглядит так: If a<0 Then a=1 End If S=S+a Каждая из ветвей условного оператора может содержать произвольное количество операторов, среди которых могут быть снова ветвления (вложенные «если»). Например, следующая программа: x=10 If x>5 Then x=x-5 If x>7 Then x=x+4 y=x Else x=x*x-1 y=x+8 End If Else x=x-4 y=1 End If выполняется так: переменная x получает в результате присваивания значение 10. Затем проверяется условие x>5? В данном случае оно выполняется, поэтому исполняются операторы после Then: вначале x получает новое значение 5, затем проверяется (вложенное) условие x>7? Оно ложно, тогда последовательно исполняются операторы, идущие после Else: x=x*x-1 и y=x+8, результат x=24, y=32. На этом внутренний «If» заканчивается, ветка «Else» внешнего «If» не исполняется, общий результат остается тем же: x=24, y=32. Если же изменить начальное присваивание, например, вместо x=10 записать x=2, то исполнение программы будет идти по другой ветке, соответствующей внешнему «Else»: x=x-4, y=1, и результат будет другой: x = -2, y = 1. Блок-схема для этой программы имеет вид: Какие операции можно включать в условие? Условие – это логическая формула, значение которой может быть вычислено. Простейшее условие – это отношение: больше (>), меньше (<), больше или равно (>=), меньше или равно (<=), не равно (<>). Более сложные условия составляются из простых с помощью операций конъюнкции (в VBA это And), дизъюнкции (Or), отрицания (Not), импликации (Imp). Например, условие х меньше пяти, но больше или равно двум, записывается как (x<5) And (x>=2).
«Основы офисного программирования в MS EXCEL VBA» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot