VBA (Visual Basic for Application) Запуск:  , Другие команды, вкл. Разработчик, View / Immediate Window, View / Code

Содержание

Слайд 2

Переменные, константы Переменная – участок оперативной памяти для временного хранения данных.

Переменные, константы
Переменная – участок оперативной памяти для временного хранения данных.
Константа –

для хранения постоянного значения.
Оператор DIM - объявление переменных: DIM имя_переменной AS Тип
Имя переменной:
начинается с букв ;
не более 255 символов;
не содержит . └┘ ! @ # & % $
(регистр символов не имеет значения)
Типы переменных
Слайд 3

Операции отношения Логические операции

Операции отношения
Логические операции

Слайд 4

Математические операторы Математические функции

Математические операторы
Математические функции

Слайд 5

Запись и редактирование макроса ! Безопасность макроса (отключить) Запись макроса Вид

Запись и редактирование макроса
! Безопасность макроса (отключить)
Запись макроса
Вид / Макросы /

Относительные ссылки
Вид / Макросы / Запись Макроса
Имя: Заголовок
Сочетание клавиш: Ctrl + З
Сохранить в: Эта книга
Описание: Формат заголовка, ОК
Действия: Главная, кнопки - жирный, курсив, красный
Вид / Макросы / Остановить запись
Проверка: ввести текст, Ctrl + З или Вид / Макросы / Макросы, Выполнить форматирование текста
Редактирование:
Вид / Макросы / Макросы, выбрать, Изменить

Изменить
цифру Color
Добавить:
Selection.Font.Size = 28
Выполнить
изменение цвета и размера шрифта
Selection.Font.Bold = True (жирный)
Selection.Font.Italic = True (курсив)

Слайд 6

Создание макроса ! Безопасность макроса (отключить) Задание: Вычислить при x=6.678; y=7.565

Создание макроса
! Безопасность макроса (отключить)
Задание: Вычислить при x=6.678; y=7.565
Вывести исходные

данные и результаты расчетов
Полученные результаты округлить до 2-х знаков после запятой
Набрать программу, ► (Выполнить)
Слайд 7

Код макроса Option Explicit Public Sub Execute() Dim x As Single,

Код макроса
Option Explicit
Public Sub Execute()
Dim x As Single, y As Single

Dim z As Single, d As Single
x = 6.678
y = 7.565
z = Sqr(x ^ 2 + y ^ 2)
d = z ^ 3
Debug.Print "X="; x; " Y="; y
Debug.Print "Z="; Format(z, "###0.00"); " D="; Format(d, "###0.00")
End Sub

Начало процедуры

Строковые переменные

Исходные данные

Вывод результатов с округлением

Окончание процедуры

Объявление необходимости задания типа переменной

Слайд 8

Условный переход (If … Then…) Дано: x = 2.3 y=45.8 z=55.5

Условный переход (If … Then…)
Дано:
x = 2.3
y=45.8
z=55.5

Слайд 9

Код макроса Option Explicit Public Sub Execute() Dim a As Single,

Код макроса Option Explicit Public Sub Execute() Dim a As Single, x As

Single, y As Single Dim z As Single, n As Single x = 2.3 y = 45.8 z = 55.5 a = Sqr(Abs(x + y ^ 2 + z)) If a > 2 Then n = x ^ 2 - y ^ 3 + 2 * x * y End If If a = 2 Then n = y ^ 3 - x ^ 2 End If If a < 2 Then n = 1 - (y - z) / (y + z) End If Debug.Print "x ="; x; "y ="; y; "z ="; z Debug.Print "a ="; a Debug.Print "n ="; n End Sub
Слайд 10

Оператор IF проверяет одно условие. Оператор ELSE IF – переход управления

Оператор IF проверяет одно условие.
Оператор ELSE IF – переход управления

в зависимости от результатов проверки нескольких условий.
Анализируется, если предыдущее условие ложно.
Пример:
  Dim mes AS String
If x > 0 Then
mes = "Значение положительное"
Else lf x = 0 Then
mes = "Значение равно 0"
Else
mes = "Значение отрицательное"
End If
Слайд 11

Множественный выбор (конструкция Select case) Аналогична If…Then…Else (позволяет обработать несколько условий).

Множественный выбор (конструкция Select case)
Аналогична If…Then…Else (позволяет обработать несколько условий).
Состоит из

анализируемого выражения и набора операторов Case на каждое возможное значение выражения.
Слайд 12

Функции пользователя Пример: создать функцию для вычисления в EXCEL 1. Insert

Функции пользователя
Пример: создать функцию для вычисления в EXCEL
1. Insert / Module

– добавление в проект модуля, щелчок на пиктограмме Module 1
2. В окне свойств (Properties), Names (имя), ввести Vector
3. Ввести операторы функции
Public Function getVector(a As Single, b As Single) As Single
Dim z As Single
z = Sqr(a ^ 2 + b ^ 2)
getVector = z
End Function
(Function – имя процедуры,
Public – глобальный доступ)
4. Сохранить результаты, закрыть окно VBA
5. Найти созданную функцию – fx
6. Выбрать категорию
«Определенные пользователем»
7. Ввести значения аргументов 
Слайд 13

Результат задания «Функции пользователя»

Результат задания «Функции пользователя»

Слайд 14

Функция InputBox Для ввода строки текста в программу c помощью окна

Функция InputBox
Для ввода строки текста в программу c помощью окна диалога

Windows.
Формат вызова функции:
Dim s As String
S=InputBox(«приглашение»,[“значение по умолчанию”])
Функции преобразования чисел в типы данных
CInt(s) – Integer, CLng(s) – Long, CSng(s) – Single, CDbl(s) – Double,
CDate(s) – Date, Cvar – Variant
Функция MsgBox
 Для организации диалога с пользователем.
Формат вызова функции:
response=MsgBox(“Текст сообщения”,флаги,”Заголовок”)
Аргументы функции:
“Текст сообщения” – cообщение пользователю,
Флаги – комбинация системных констант VBA для вывода кнопок и пиктограммы к сообщению (vb…),
”Заголовок” – текст для заголовка окна (необязателен).
Слайд 15

Option Explicit Public Sub ExecDialog() Dim a As Single, b As

Option Explicit
Public Sub ExecDialog()
Dim a As Single, b As Single
Dim z

As Single
Dim strA As String, strB As String
Dim response
newInput:
‘Ввод данных
strA = InputBox("InputA")
strB = InputBox("InputB")
‘Проверка ввода
If Not IsNumeric(strA) Or Not IsNumeric(strB) Then
MsgBox "Error!" & Chr(10) & Chr(13) & "Not number data!", vbCritical, ""
Exit Sub
End If
‘Преобразования и вычисления
a = CSng(strA): b = CSng(strB)
z = Sqr(a ^ 2 + b ^ 2)
‘Вывод результатов работы
MsgBox "Z=" & Format(z, "###0.00") & "A=" & a & "B=" & b, vbInformation, ""
‘Запрос на повторный ввод данных
response = MsgBox("Input new data", vbQuestion + vbYesNo, "")
If response = vbYes Then GoTo newInput
End Sub

-выполнить вычисления (макрос) по формуле,
данные вводятся с клавиатуры,
если данные не числа – сообщение об ошибке,
после вычислений вывести запрос на продолжение.

Слайд 16

Массивы Задание: заполнить массив случайными вещественными числами, вычислить их сумму, вывести

Массивы
Задание: заполнить массив случайными вещественными числами, вычислить их сумму, вывести сумму

и массив.
Option Explicit
Public Sub ExecArray()
Const n = 10
Dim sngArray(1 To n) As Single
Dim i As Integer
Dim mes As String
Randomize
mes = "V["
For i = 1 To n
sngArray(i) = Rnd
mes = mes & "" & Format(sngArray(i), "###0.00")
Next i
mes = mes + "]”
Dim s As Single
s = 0
For i = 1 To n
s = s + sngArray(i)
Next i
MsgBox "S=" & s & Chr(10) & Chr(13) & mes, vbInformation, "“
End Sub

Задание одномерного массива

Задание счетчика шагов

Активизация генератора случайных чисел

Операторы цикла

Вычисление суммы

Получение случайного вещественного числа

Слайд 17

Задание: создать макрос для ввода с клавиатуры последовательности чисел, выполнить их

Задание: создать макрос для ввода с клавиатуры последовательности чисел, выполнить их

суммирование до контрольного значения, которое вводится с клавиатуры.
Option Explicit
Public Sub getNumbers()
Dim strN As String, strX As String
Dim n As Single, s As Single, x As Single
strN = InputBox(“Вв. Предельное число N")
If Not IsNumeric(strN) Then Exit Sub
n = CSng(strN)
s = 0
Do While s < n
strX = InputBox(“Введите число")
If Not IsNumeric(strX) Then Exit Do
x = CSng(strX)
s = s + x
Loop
MsgBox “Получено=" & s & "N=" & n
End Sub

Построение цикла по логическому условию

Слайд 18

Элементы управления (ActiveX) Другие команды, кнопка (элемент управления ActiveX), режим конструктора,

Элементы управления (ActiveX)

Другие команды, кнопка (элемент управления ActiveX), режим конструктора,

растянуть кнопку на листе,
правой кнопкой по кнопке / Свойства
правой кнопкой по кнопке / Исходный текст (программирование кнопки) – окно VBA,
ввести
Private Sub cmdNumber1_Click()
'Загрузка формы
Load frmNumber1
frmNumber1.Show
End Sub

Начало процедуры для события Click – щелчок по кнопке

Комментарий

Загрузка формы с именем Number1

Вывод на экран формы Number1

Окончание процедуры

Слайд 19

Пользовательские формы Insert / User Form View / Properties Window Визуальные компоненты диалога View / ToolBox

Пользовательские формы

Insert / User Form
View / Properties Window
Визуальные компоненты диалога
View

/ ToolBox
Слайд 20

Создание формы «Закрыть» 1. Создать на рабочем листе командную кнопку «Закрыть!»,

Создание формы «Закрыть»
1. Создать на рабочем листе командную кнопку «Закрыть!», запрограммировать

ее
Private Sub cmdForm1_Click()
'Загрузка формы
Load Form1
Form1.Show
End Sub
2. Создать форму Form1 с текстовой меткой и командной кнопкой:
Текстовая метка:
Командная кнопка: имя – CloseButton, заголовок – Закрыть!, изменить шрифт, заливку.
3. Программирование кнопки
открыть редактор VBA
ввести End между операторами:
Private Sub CloseButtom_Click()
End
End Sub
4. Проверить работу формы.
Слайд 21

Разработка формы для работы с валютой Задание: возможность ввода пользователем в

Разработка формы для работы с валютой

Задание: возможность ввода пользователем в

полях формы денежной суммы,
курса валют доллар/рубль и евро/рубль.
Пересчет введенной суммы по курсу.
Для вызова формы на рабочий лист разместить командную кнопку.
Слайд 22

1. Размещение на листе кнопки. Свойства кнопки: 2. Программирование кнопки: Private

1. Размещение на листе кнопки. Свойства кнопки:

2. Программирование кнопки: Private Sub

cmdLoad_Click()
'Загрузка формы
Load frmValuta
frmValuta.Show
End Sub

3. Insert / User Form – создание формы.
Свойства формы:

4. Размещение на форме текстовых полей, меток, флажков, рамок, командных кнопок

5. Свойства текстовых полей:

6. Свойства меток текстовых полей:

Слайд 23

7. Свойства блока кнопок для выбора курса валют: 8. Свойства блока

7. Свойства блока кнопок для выбора курса валют:

8. Свойства блока кнопок

для выбора типа операции:

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

10. Свойства текстовой метки для вывода результатов расчетов: