Офисное программирование. Язык программирования VBA (Visual Basic for Application)

Содержание

Слайд 2

Язык программирования VBA (Visual Basic for Application) Офисное программирование

Язык программирования
VBA (Visual Basic for Application)

Офисное программирование

Слайд 3

Процедура обработки события События: Click, DblClick, KeyPress Private Sub CommandButton1_Click() End Sub

Процедура обработки события

События: Click, DblClick, KeyPress

Private Sub CommandButton1_Click()
End Sub

Слайд 4

Создание проекта программы на VBA состоит из 2 этапов: 1. размещение

Создание проекта программы на VBA состоит из 2 этапов:
1. размещение

элементов управления на рабочем листе Excel или на форме пользователя
2. написание текстов процедур для этих элементов
Слайд 5

Основные элементы управления Кнопка - CommandButton Поле со списком - ComboBox

Основные элементы управления

Кнопка - CommandButton

Поле со списком - ComboBox

Поле - TextBox

Надпись

- Label
Слайд 6

Кнопка Поле со списком Поле Надпись

Кнопка

Поле со списком

Поле

Надпись

Слайд 7

Элементы управления находятся на вкладке Разработчик

Элементы управления находятся на вкладке Разработчик

Слайд 8

Вкладка Разработчик 1. Оffice 2. Параметры Excel 3. Показывать вкладку «Разработчик» на ленте. 4. Кнопка Вставить

Вкладка Разработчик
1. Оffice
2. Параметры Excel
3. Показывать вкладку «Разработчик» на ленте.
4.

Кнопка Вставить
Слайд 9

Кнопка

Кнопка

Слайд 10

Свойства командных кнопок Caption – название Font – шрифт ForeColor –

Свойства командных кнопок

Caption – название
Font – шрифт
ForeColor – цвет букв
BackColor

– цвет фона
Слайд 11

Задаются в окне свойств Properties В контекстном меню кнопки выбрать команду Свойства

Задаются в окне свойств Properties

В контекстном меню кнопки выбрать команду Свойства

Слайд 12

Объекты VBA Workbooks - рабочая книга, Worksheets - рабочий лист, Cells - ячейки, Range - область

Объекты VBA

Workbooks - рабочая книга, Worksheets - рабочий лист, Cells - ячейки,

Range - область
Слайд 13

Worksheets(“Пример”) – рабочий лист с именем “Пример” Worksheets(“Лист1”) – рабочий лист с именем “Лист1”

Worksheets(“Пример”) – рабочий лист с именем “Пример”

Worksheets(“Лист1”) – рабочий лист с

именем “Лист1”
Слайд 14

Ячейка A4 – Cells(4, 1) или Range(“A4”) Ячейка C2 – Cells(2,

Ячейка A4 – Cells(4, 1)
или
Range(“A4”)

Ячейка C2 – Cells(2,

3)
или
Range(“C2”)

Номер строки

Номер столбца

Слайд 15

Чтобы запустить программу на выполнение надо: Отключить кнопку Режим конструктора на

Чтобы запустить программу на выполнение надо:
Отключить кнопку Режим конструктора на

вкладке Разработчик
Щелкнуть 1 ЛКМ по элементу управления Кнопка
Слайд 16

Включить Режим конструктора на вкладке Разработчик Щелкнуть 2 ЛКМ по элементу

Включить Режим конструктора на вкладке Разработчик
Щелкнуть 2 ЛКМ по элементу управления

Кнопка или 1 ПКМ по элементу управления Кнопка и выбрать команду Исходный текст

Чтобы изменить текст программы надо:

Слайд 17

Слайд 18

Сохранять файл необходимо как Книга Excel с поддержкой макросов Файл сохраняется с расширением XLSM, например primer1.xlsm

Сохранять файл необходимо как
Книга Excel с поддержкой макросов

Файл сохраняется с

расширением XLSM,
например primer1.xlsm
Слайд 19

Слайд 20

Вкладка Разработчик / Кнопка Безопасность макросов Отметить кнопку Включить все макросы.

Вкладка Разработчик /
Кнопка Безопасность макросов
Отметить кнопку Включить все макросы.
Закрыть файл

и запустить его снова.

Если программы не запускаются после открытия файла, необходимо
включить макросы. Для этого:

Слайд 21

Слайд 22

Запуск редактора VBA 1 способ: 2 ЛКМ по созданной Кнопке 2

Запуск редактора VBA

1 способ: 2 ЛКМ по созданной Кнопке
2 способ: 1

ПКМ по созданной Кнопке / Исходный текст
3 способ: Кнопка Visual Basic на ленте Разработчик
4 способ: Alt + F11
Слайд 23

Текст программы

Текст программы

Слайд 24

Слайд 25

Слайд 26

Пример Private Sub CommandButton1_Click() Dim S As String s = InputBox(“Как

Пример

Private Sub CommandButton1_Click()
Dim S As String
s = InputBox(“Как Вас зовут?")
MsgBox “Привет

“ & s
End Sub
Слайд 27

Слайд 28

используется для вывода данных в отдельное окно. Функция MsgBox()

используется для вывода данных в отдельное окно.

Функция MsgBox()

Слайд 29

Запуск программы на выполнение Приостановить выполнение Остановить выполнение программы

Запуск программы на выполнение

Приостановить выполнение

Остановить выполнение программы

Слайд 30

Ошибка в программе

Ошибка в программе

Слайд 31

Программирование в среде VBA Синтаксис, основные конструкции

Программирование в среде VBA
Синтаксис, основные конструкции

Слайд 32

Программа на VBA Переменные VBA

Программа на VBA

Переменные VBA

Слайд 33

Требования к имени переменной A1 = 2.4 Sum = A1 Примеры

Требования к имени переменной

A1 = 2.4 Sum = A1

Примеры

Слайд 34

Dim As Dim x As Integer Dim k2 As Single Объявление переменной Примеры

Dim < имя > As < тип >
Dim x As Integer
Dim

k2 As Single

Объявление переменной

Примеры

Слайд 35

Integer – целые числа (диапазон значений от -32 768 до 32

Integer – целые числа (диапазон значений от -32 768 до 32 767), объем

памяти 2 байта;
Single – вещественные (дробные) числа (диапазон значений: от 3,402823Е+38 до 1,401298Е–45), объем памяти 4 байта.

Типы переменных

Слайд 36

Большие по модулю и близкие к нулю числа записываются в экспоненциальном

Большие по модулю и близкие к нулю числа записываются в экспоненциальном

виде: например, 4,78E+5, что означает 4, 78·105 7,34E-6, что означает 7, 34·10-6 .
Слайд 37

String – символьные (строковые) значения, каждый символ требует объем памяти в

String – символьные (строковые) значения, каждый символ требует объем памяти в

1 байт. Длина строки символов от 1 до 64 Кбайт;
Variant – используется для хранения любых данных, требует объем памяти в 8 байт.
Слайд 38

Константы в VBA Типы констант в VBA: символьные, целые числа, вещественные

Константы в VBA

Типы констант в VBA: символьные, целые числа, вещественные числа.

Const

<имя константы> = <выражение>
Примеры
Const x = 5 (целое число)
Const a = “Студент” (символьная)
Const с2 = 4.235E-2 (вещественное число)
Слайд 39

Математические операции в VBA

Математические операции в VBA

Слайд 40

Слайд 41

Операции работы со строками В VBA только одна операция работы со

Операции работы со строками

В VBA только одна операция работы со строками

– это объединение (конкатенация) строк.
Знак операции & (амперсанд) или +
Пример: “Студент” & “Иванов”
или
“Студент” + “Иванов”
Результат: “СтудентИванов”
Слайд 42

Встроенные функции Atn(n) ⇒ arctg(n) Cos(n) ⇒ cos n Sin(n) ⇒

Встроенные функции

Atn(n) ⇒ arctg(n)
Cos(n) ⇒ cos n
Sin(n) ⇒ sin n
Tan(n) ⇒

tg n
Sqr(n) ⇒
Abs(n)⇒ ⎟ n⎟
Слайд 43

Str(n) - число n преобразует в строку Val(s) - строку символов

Str(n) - число n преобразует в строку
Val(s) - строку символов

s преобразует в число

Log(n) ⇒ ln n

Exp(n) ⇒ en

Слайд 44

Вычисление логарифма

Вычисление логарифма

Слайд 45

Арифметические выражения sin(3*x)+(log(x-1)+tan(x))/(x^3+ exp(x+3))^(1/4) Запись на VBA

Арифметические выражения

sin(3*x)+(log(x-1)+tan(x))/(x^3+
exp(x+3))^(1/4)

Запись на VBA

Слайд 46

1. 2. 3.

1.

2.

3.

Слайд 47

Exp(x+1) - cos(x)^2 Abs(exp(n-3)) - sin(a^2)^2 - sqr(cos(2*b)) Atn(3+a^3) – (2*cos(2*a)^2-b)/ (Sqr(abs(a*b-20))-b) 1. 2. 3.

Exp(x+1) - cos(x)^2

Abs(exp(n-3)) - sin(a^2)^2 - sqr(cos(2*b))

Atn(3+a^3) – (2*cos(2*a)^2-b)/
(Sqr(abs(a*b-20))-b)

1.

2.

3.

Слайд 48

Exp^(x+1) ОШИБКА Sin^(a) НЕ ПРАВИЛЬНО Cos*(b) НЕ ВЕРНО

Exp^(x+1) ОШИБКА

Sin^(a) НЕ ПРАВИЛЬНО

Cos*(b) НЕ ВЕРНО

Слайд 49

Операторы в VBA 1) Dim Оператор присваивания ИмяПеременной = Выражение Примеры

Операторы в VBA

1) Dim
Оператор присваивания
ИмяПеременной = Выражение
Примеры
a1 = 34.7
a2

= sin(a1)^2+20
a3 = a1 + a2
.
Слайд 50

a = 24 : x = x + 1 MsgBox “Первая

a = 24 : x = x + 1

MsgBox “Первая

строка” _
“Вторая строка”

S = “Привет”

Слайд 51

Комментарии в VBA Примеры ' Это текст комментария или Rem Это

Комментарии в VBA

Примеры
' Это текст комментария
или
Rem Это текст комментария
x =

x + 1 ‘ переменная х увеличивается на 1
n = n + 2 Rem переменная n увеличивается на 2
Слайд 52

Объекты VBA Workbooks - рабочая книга, Worksheets - рабочий лист, Cells - ячейки, Range - область

Объекты VBA

Workbooks - рабочая книга, Worksheets - рабочий лист, Cells - ячейки,

Range - область
Слайд 53

Ячейка A4 – Cells(4, 1) или Range(“A4”) Worksheets(“Пример”) – лист с

Ячейка A4 – Cells(4, 1)
или
Range(“A4”)

Worksheets(“Пример”) – лист с

именем “Пример”

Ячейка C2 – Cells(2, 3)
или
Range(“C2”)

Номер строки

Номер столбца

Слайд 54

Любая программа состоит из 4 этапов: Объявление всех переменных (исходных и

Любая программа состоит из 4 этапов:

Объявление всех переменных (исходных и содержащих

результаты вычислений)
Ввод исходных данных
Вычисления по формулам
Вывод результатов
Слайд 55

Ввод данных Ввести исходные данные можно: С помощью команды Inputbox c

Ввод данных

Ввести исходные данные можно:
С помощью команды Inputbox c клавиатуры во

время выполнения программы
a = Val(Inputbox(“Введите а”))
Слайд 56

2. Непосредственно в программе командой присваивания a = 45 prim = 6.87 s = 2.43E-5

2. Непосредственно в программе командой присваивания
a = 45
prim = 6.87
s

= 2.43E-5
Слайд 57

3. Из ячеек таблицы Excel a = Worksheets(“Имя”).Cells(3,2) Или a = Worksheets(“Имя”).Range(“B3”)

3. Из ячеек таблицы Excel
a = Worksheets(“Имя”).Cells(3,2)
Или
a = Worksheets(“Имя”).Range(“B3”)

Слайд 58

Вывод данных Вывести данные можно: С помощью команды MsgBox в отдельное окно MsgBox (“а=” & a)

Вывод данных

Вывести данные можно:
С помощью команды MsgBox в отдельное окно
MsgBox (“а=”

& a)
Слайд 59

В ячейки таблицы Excel Worksheets(“Имя”). Cells(3,2) = a Или Worksheets(“Имя”). Range(“B3”) = a

В ячейки таблицы Excel
Worksheets(“Имя”). Cells(3,2) = a
Или
Worksheets(“Имя”). Range(“B3”) = a

Слайд 60

a=Val(InputBox(“Введите значение переменной x ...”)) Окно ввода InputBox

a=Val(InputBox(“Введите значение переменной x ...”))

Окно ввода InputBox

Слайд 61

Чтобы вывести число в нужном виде, используют функцию Format Format (x,

Чтобы вывести число в нужном виде, используют функцию Format

Format (x, “##.#”)

1 знак после запятой
Format (x, “##.##”) 2 знака после запятой
Format (x, “##.###”) 3 знака после запятой

Примеры

MsgBox Format(a, “##.#”)
Cells(3,2) = Format(a, “##.##”)

Слайд 62

Вывод в диалоговое окно MsgBox x

Вывод в диалоговое окно

MsgBox x

Слайд 63

MsgBox Format(x, “##.##”)

MsgBox Format(x, “##.##”)

Слайд 64

MsgBox "Значение x=" & x

MsgBox "Значение x=" & x

Слайд 65

MsgBox "Значение x=“ & Format(x, “##.##”)

MsgBox "Значение x=“ & Format(x, “##.##”)

Слайд 66

Пример Для x=1,5 a=3,75 m=0.5▪10-4 вычислить выражения:

Пример

Для x=1,5 a=3,75 m=0.5▪10-4 вычислить выражения:

Слайд 67

Слайд 68

Формула в ячейке листа для вычисления w =0,5*КОРЕНЬ(C8*C9*ABS(1-C10^2)) Формула в ячейке листа для вычисления z =COS(LN(ABS(D14))/(2+D14))

Формула в ячейке листа для вычисления w
=0,5*КОРЕНЬ(C8*C9*ABS(1-C10^2))
Формула в ячейке листа для

вычисления z
=COS(LN(ABS(D14))/(2+D14))
Слайд 69

Для кнопки «Вычислить». Пример 1. Dim x As Single, a As

Для кнопки «Вычислить». Пример 1.

Dim x As Single, a As Single,

m As Single, w As Single, z As Single

x = Worksheets("Лист2").Range("c8")
a = Worksheets("Лист2").Range("c9")
m = Worksheets("Лист2").Range("c10“)

w = 0.5 * Sqr(x * a * Abs(1 - m * m))
z = Cos(Log(Abs(w)) / (2 + w))

Worksheets("Лист2").Range(“d15") = w
Worksheets("Лист2").Range(“e15") = z

Слайд 70

Пример 2. Dim x As Single, a As Single, m As

Пример 2.
Dim x As Single, a As Single, m As Single,

w As Single, z As Single

x = Worksheets("Лист2").Cells(8, 3)
a = Worksheets("Лист2").Cells(9, 3)
m = Worksheets("Лист2").Cells(10, 3)

w = 0.5 * Sqr(x * a * Abs(1 - m * m))
z = Cos(ln(w )/ (2 + w))

Worksheets("Лист2").Cells(15, 4) = w
Worksheets("Лист2").Cells(15, 5) = z

Слайд 71

Dim x As Single, a As Single, m As Single Dim

Dim x As Single, a As Single, m As Single
Dim w

As Single, z As Single

Пример 3. Ввод значений через InputBox

Объявление
переменных

Вывод результатов

MsgBox “w=” & w
MsgBox “z=” & z

x = Val(InputBox(“Введите x “))
a = Val(InputBox(“Введите a”))
m= Val(InputBox(“Введите m”))

Ввод исходных данных с помощью InputBox

w = 0.5*Sqr(x*a*Abs(1 - m ^2))
z = Cos(Log(w)/( 2 + w))

Вычисления по формулам

Слайд 72

Очистка ячейки A2 Range(«A2").Clear Или Range(«A2")=“”

Очистка ячейки A2

Range(«A2").Clear
Или

Range(«A2")=“”

Слайд 73

Для кнопки «Очистить»: Worksheets("Лист2").Range(" d15 ").Clear Worksheets("Лист2").Range(" e15 ").Clear Очистка всех ячеек: Worksheets("Лист2").Сells.Clear

Для кнопки «Очистить»:

Worksheets("Лист2").Range(" d15 ").Clear
Worksheets("Лист2").Range(" e15 ").Clear

Очистка всех ячеек:

Worksheets("Лист2").Сells.Clear

Слайд 74

Ввод переменной х из ячейки листа A1 x=Worksheets("Лист1").Range("A1") или x=Worksheets("Лист1").Cells(1, 1)

Ввод переменной х из ячейки листа A1
x=Worksheets("Лист1").Range("A1")
или
x=Worksheets("Лист1").Cells(1, 1)

Слайд 75

Вывод переменной х в ячейку листа A1 Worksheets("Лист1").Range("A1") = x или Worksheets("Лист1").Cells(1, 1) = x

Вывод переменной х в ячейку листа A1

Worksheets("Лист1").Range("A1") = x
или
Worksheets("Лист1").Cells(1, 1) =

x
Слайд 76

x=Worksheets(“Иванов”).Range("A1") Или x=Worksheets(“Иванов”).Cells(1, 1) Ввод из ячейки листа Excel Имя листа

x=Worksheets(“Иванов”).Range("A1")
Или
x=Worksheets(“Иванов”).Cells(1, 1)

Ввод из ячейки листа Excel

Имя листа

Имя ячейки на указанном

листе

Ячейка с указанием номера строки и столбца

Слайд 77

Пример Private Sub CommandButton6_Click() x = 10 Worksheets("Лист1").Range("A3") = x x

Пример

Private Sub CommandButton6_Click()
x = 10
Worksheets("Лист1").Range("A3") = x
x = 5
Worksheets("Лист1").Cells(5, 1) =

x
End Sub
Слайд 78