Разделы презентаций


Основы VBA

Содержание

Арифметические операторы VBA

Слайды и текст этой презентации

Слайд 1Основы VBA

Основы VBA

Слайд 2Арифметические операторы VBA

Арифметические операторы VBA

Слайд 3Конкатенация
объединение двух или более объектов счётного вида с сохранением порядка

следования элементов. (Списков, строк, массивов, кортежей).
Несколько ролей и у оператора

+
арифметический оператор сложения.
оператор конкатенации строк.
Пример: операнд1=”язык” операнд2=”Visual Basic” операнд1+ операнд2=“язык” + “Visual Basic”
В качестве оператора конкатенации можно использовать и оператор &. Считается, что & использовать предпочтительнее так как он в любом случае обрабатывает операнды как строковые данные.
Конкатенацияобъединение двух или более объектов счётного вида с сохранением порядка следования элементов. (Списков, строк, массивов, кортежей).Несколько ролей

Слайд 4Пример:
Dim str_UserName As String
Dim str_Result As String

Dim num_First As Double
Dim num_Second As Double

Dim num_Summ As Double
str_UserName = InputBox("Введите ваше имя")
num_First = InputBox("Введите первое число")
num_Second = InputBox("Введите второе число")
num_Summ = num_First + num_Second
str_Result = "Здравствуйте, "
& str_UserName _
& ". Вы ввели числа " & num_First & " и " & num_Second _ & ". Их сумма равняется " & num_Summ
MsgBox (str_Result)
Пример: Dim str_UserName As String  Dim str_Result As String  Dim num_First As Double  Dim

Слайд 5Преобразование типов данных
Val — тип String в тип Double
Val ("

12345привет") возвратит число 12345.
Val ("1 2 3") возвратит число 123
Val

("1 2 и 3") возвратит число 12.
в начале строки обязательно резервируется позиция для знака числа. Если число является положительным, возвращенная строка будет содержать пробел на месте знака.

Str — числовые типы в String

Str (12) возвратит строку «12»

Другие функции (их названия состоят из сокращенного слова «Convert»): CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar.

Преобразование типов данныхVal — тип String в тип DoubleVal (

Слайд 6Функции проверки типа данных
Для того, чтобы узнать тип данных переменной,

можно воспользоваться функцией TypeName.
Пример:
Dim num_MyAge as Byte
num_MyAge = 24
MsgBox (TypeName(num_MyAge))


функция

IsNumeric - проверяет, являются ли данные, хранимые в переменной типа Variant, числом
функция VarType - точное определение типа данных, которые хранятся в переменной типа Variant
Функции проверки типа данныхДля того, чтобы узнать тип данных переменной, можно воспользоваться функцией TypeName.Пример:Dim num_MyAge as Bytenum_MyAge

Слайд 7Встроенные математические функции

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

Слайд 9Пример
Randomize
MsgBox ("Группа случайных чисел: " + _

Str(Rnd()) + ", " + _
Str(Rnd() * 10)

+ ", " + _
Str(Rnd() * 75 + 25) + ", " + _
Str(Int(Rnd() * 34)))
Использование функции Rnd()
Rnd() – случайное число от 0 до 1
Rnd() * 10 – случайное число от 0 до 10
Str(Rnd() * 75 + 25 - случайное число от 25 до 90

ПримерRandomize  MsgBox (

Слайд 10Строковые функции

Строковые функции

Слайд 12Пример
str_InpStr = " У Лукоморья дуб

зеленый... "
str_NewStr = Mid(Trim(str_InpStr), 2, 1)
MsgBox ("Второй

символ введенной строки: " + _
str_NewStr)
str_NewStr = Mid(Trim(str_InpStr), 15, 1)
MsgBox ("Пятнадцатый символ введенной строки: " + _
str_NewStr)
'Выведем 5 символов, начиная с 15 символа
str_NewStr = Mid(Trim(str_InpStr), 15, 5)
MsgBox ("Пять символов строки с 15-й позиции: " + _
str_NewStr)

Слайд 13Пользовательские процедуры и функции
функция возвращает в точку вызова некое значение,

которое, как правило, является результатом обработки переданной функции информации.
процедура

лишь выполняет какие-либо действия, но ничего в точку вызова не возвращает.
Пример:
num_A = num_B + val(str_C) вместо выражения val(str_C) подставляется числовое значение переменной str_C, найденное благодаря функции Val.
num_A = InputBox("Введите число"). Здесь функция InputBox возвращает введенное пользователем число в переменную num_A.
MsgBox ("Привет") – процедура, вызывающее окно сообщения

Пользовательские процедуры и функциифункция возвращает в точку вызова некое значение, которое, как правило, является результатом обработки переданной

Слайд 14Пользовательские процедуры
Процедуры удобно использовать для сокращения объема программы, выделяя в

них часто используемые блоки операторов. И каждый раз, когда он

будет нужен, вызывать его с помощью одной лишь строчки кода.
Пример: нужно опросить пятерых пользователей, обработав и записав их ответы в файл.
Private Sub cmd_User_Data_Click()
Dim str_Name As String Dim byte_Age As Byte
MsgBox ("Здравствуйте, вы пользователь № 1")
str_Name = InputBox("Введите ваше имя")
byte_Age = InputBox("Введите ваш возраст")
'Здесь находится блок обработки и 'записи введенных данных End Sub
что нужно сделать с кодом при переходе ко второму пользователю????
Пользовательские процедурыПроцедуры удобно использовать для сокращения объема программы, выделяя в них часто используемые блоки операторов. И каждый

Слайд 15«Скелет» процедуры
Public Sub UserInput(UserNumber As Integer)
'пользовательская процедура
'для ввода

и обработки данных
End Sub

UserInput - имя процедуры
(UserNumber As Integer) -

объявление переменной, которую можно передать процедуре в качестве параметра
Sub – ключевое слово (процедура!)
Public – модификатор доступа. Процедуру можно вызвать из любого места проекта.

Public Sub UserInput(UserNumber As Integer)
MsgBox _ ("Здравствуйте, вы пользователь № " + _ Str(UserNumber))
End Sub


«Скелет» процедурыPublic Sub UserInput(UserNumber As Integer) 'пользовательская процедура 'для ввода и обработки данныхEnd SubUserInput - имя процедуры(UserNumber

Слайд 16Вызов функции: UserInput (1)
Public Sub UserInput(UserNumber As Integer)

Dim str_Name As String Dim byte_Age As Byte

MsgBox _ ("Здравствуйте, вы пользователь № " + _ Str(UserNumber))
str_Name = InputBox("Введите ваше имя")
byte_Age = InputBox("Введите ваш возраст") End Sub
‘Код для события «Нажатие кнопки»
Private Sub cmd_User_Data_Click()
UserInput (1)
UserInput (2)
UserInput (3)
UserInput (4)
UserInput (5)
End Sub
Вызов функции: UserInput (1)Public Sub UserInput(UserNumber As Integer)   Dim str_Name As String Dim byte_Age As

Слайд 17Пользовательские функции
Пример: создание и использование функции, которая возводит переданное ей

число во вторую степень.
Public Function Square(num_One As Double) As Double


Square = num_One ^ 2
End Function
Public Function Square – объявление функции (доступ, функция, имя)
Square(num_One As Double) – объявление параметров, передаваемых в функцию
As Double - тип возвращаемого значения
После того, как найдено значение, которое функция должна возвратить, в тексте кода функции нужно присвоить это значение переменной, которая имеет то же имя, что и функция.
Пользовательские функцииПример: создание и использование функции, которая возводит переданное ей число во вторую степень.Public Function Square(num_One As

Слайд 18Private Sub cmd_UserCalc_Click()
Dim num_Res As Double Dim

num_Input As Double
num_Input = CDbl(InputBox("Введите число"))

num_Res = Square(num_Input)
MsgBox (Str(num_Input) + " во 2-й степени = " + _ Str(num_Res))
End Sub
Private Sub cmd_UserCalc_Click()   Dim num_Res As Double Dim num_Input As Double   num_Input =

Слайд 19Массивы и циклы

Массивы и циклы

Слайд 20Массив
Массив - это именованный набор индексированных ячеек. Ячейки так же

называют элементами массива или индексированными переменными. Используются для обработки больших

объемов однотипной информации.
У каждого массива 5 основных характеристик:
имя,
размерность,
число элементов,
номер первого элемента
тип элементов.
МассивМассив - это именованный набор индексированных ячеек. Ячейки так же называют элементами массива или индексированными переменными. Используются

Слайд 21Характеристики массивов
Имя - правила именования массивов аналогичны правилам именования переменных.
Размерность:
одномерные

массивы напоминают одну строку таблицы, каждая ячейка которой содержит какие-то

данные.
многомерные массивы имеют больше измерений. Их можно сравнивать с таблицами, имеющими множество строк и столбцов и с наборами таблиц.

Характеристики массивовИмя - правила именования массивов аналогичны правилам именования переменных.Размерность:одномерные массивы напоминают одну строку таблицы, каждая ячейка

Слайд 22Нумерация элементов :
По умолчанию нумерация элементов массива начинается с 0.

Первый по счету элемент получит индекс 0, второй - 1

и т.д.
В объявлении отдельного массива можно явно указать индекс его первого и последнего элемента, разделив их ключевым словом To.
Если вы хотите, чтобы индексы всех массивов начинались с 1, добавьте в раздел объявлений модуля (вне процедур, функций и обработчиков событий) команду Option Base 1.


Нумерация элементов :По умолчанию нумерация элементов массива начинается с 0. Первый по счету элемент получит индекс 0,

Слайд 23Тип - подчиняется тем же правилам, которые мы ранее рассмотрели

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

тип по умолчанию - Variant. Это требует больше системных ресурсов, но позволяет обрабатывать значения различных типов.

Тип - подчиняется тем же правилам, которые мы ранее рассмотрели для переменных. Если пользователь не указал его

Слайд 24Одномерные массивы
Для объявления массивов используют оператор Dim.
Объявить массив можно

двумя способами.
указать общее количества элементов.
Пример:
Dim MyArrayA(30) As Single
Объявленный

массив MyArrayА содержит 31 элемент (с индексами от 0 до 30) типа Single. Поскольку нумерация явно не задана, элементы получат индексы по обычным правилам.
Одномерные массивыДля объявления массивов используют оператор Dim. Объявить массив можно двумя способами. указать общее количества элементов. Пример:Dim

Слайд 25задать границы нумерации
Dim MyArrayB(1 To 25)
Массив MyArrayB содержит 25 элементов.

Границы нумерации заданы явно - первый элемент получит индекс 1,

второй - 2 и т.д. Тип не указан - в массиве можно хранить любые данные.

задать границы нумерацииDim MyArrayB(1 To 25)Массив MyArrayB содержит 25 элементов. Границы нумерации заданы явно - первый элемент

Слайд 26Пример
Объявить одномерный массив на 3 элемента
Внести в первый элемент число

5 в программе, во второй - запросив значение с помощью

окна ввода
Вычислить в третьем элементе массива произведение значений, хранящихся в первом и втором элементах.
Вывести полученное значение в окне сообщения.

ПримерОбъявить одномерный массив на 3 элементаВнести в первый элемент число 5 в программе, во второй - запросив

Слайд 27Dim A(2)
A(0) = 5
A(1) = InputBox("Введите значение второго элемента")
A(2) =

A(0) * A(1)
MsgBox A(2)

Dim A(2)A(0) = 5A(1) = InputBox(

Слайд 28Виды циклов

Виды циклов

Слайд 29Цикл For - Next
Пример: вывести цифры от 1 до 10

в окнах сообщений.
Можно решить и без использования циклов, написав

10 строк вида: MsgBox ("1") и т.д.

For i = 1 To 10
MsgBox (i)
Next i

Цикл For - NextПример: вывести цифры от 1 до 10 в окнах сообщений. Можно решить и без

Слайд 30For - ключевое слово, задает начало цикла.
Переменная i, увеличивается

при каждом проходе цикла.
Начальное значение счетчика устанавливается при входе

в цикл.
Конечное значение переменной задается после ключевого слова To.
Ключевое слово Next с указанием переменной, к которой оно относится, закрывает цикл.
В качестве первого и последнего значения счетчика цикла можно использовать какую-нибудь переменную. Она может быть определена в ходе выполнения программы, но до входа в конструкцию For - Next.
For - ключевое слово, задает начало цикла. Переменная i, увеличивается при каждом проходе цикла. Начальное значение счетчика

Слайд 31Переменная цикла меняется с приращением
приращение можно задать в явном виде

с помощью ключевого слова Step.
For i = 1 To

10 Step 2
MsgBox (i)
Next i
С помощью ключевого слова Step можно создать не только возрастающий, но и убывающий счетчик. Для этого в Step надо указать отрицательное число и проследить за тем, чтобы первое значение переменной цикла было больше последнего.
Пример: For i=10 to 1 Step -1.
Первое значение переменной в таком цикле будет равняться 10, второе - 9 и т.д. - до 1.
Переменная цикла меняется с приращениемприращение можно задать в явном виде с помощью ключевого слова Step. For i

Слайд 32Пример: использование массивов и цикла
Dim MyArray(9)
For i = 0

To 9
MyArray(i) = InputBox("Введите фамилию №" & i +

1)
Next i
For i = 0 To 9 'Начало еще одного цикла
MsgBox ("Фамилия №" & (i + 1) & " " & MyArray(i))
Next i 'Конец цикла

Программа, которая предлагает пользователю ввести 10 фамилий, сохраняет их в массиве, а потом выводит в окнах сообщений.

Пример: использование массивов и циклаDim MyArray(9) For i = 0 To 9 MyArray(i) = InputBox(

Слайд 33Многомерные массивы
Двумерный массив - матрица
Dim MyArrayA(10, 1) As Single
Массив MyArrayА

содержит 11 строк и 2 столбца типа Single.
Можно в явном

виде задать границы размерностей:
Dim MyArrayB(1 To 25, 1 To 5)
Массив MyArrayB содержит 25 строк и 5 столбцов. Границы нумерации заданы явно. Тип не указан - в массиве можно хранить любые данные.
Многомерные массивыДвумерный массив - матрицаDim MyArrayA(10, 1) As SingleМассив MyArrayА содержит 11 строк и 2 столбца типа

Слайд 34Пример
Dim MyArray(1 To 5, 1 To 2)
For i = 1

To 5
MyArray(i, 1) = InputBox("Введите фамилию №" &

i)
MyArray(i, 2) = InputBox("Введите Телефон №" & i)
Next i

программы, которая объявляет двумерный массив 5х2 и предлагает ввести в него фамилии и номера телефонов сотрудников

ПримерDim MyArray(1 To 5, 1 To 2)For i = 1 To 5  MyArray(i, 1) = InputBox(

Слайд 36Вложенные циклы For-Next
Dim MyArray(1 To 10, 1 To 10)
For i

= 1 To 10
For j = 1 To

10
MyArray(i, j) = Int(Rnd(1) * 10)
Next j
Next i
Вложенные циклы For-NextDim MyArray(1 To 10, 1 To 10)For i = 1 To 10  For j

Слайд 37Динамические массивы
Dim MyArray()
ArraySize = InputBox("Введите количество сотрудников")
ReDim MyArray(1 To ArraySize,

1 To 2)
Для добавления двух дополнительных столбцов в динамический массив

нужно использовать такую команду:
ReDim Preserve MyArray(1 To ArraySize, 1 To 4)
Динамические массивыDim MyArray()	ArraySize = InputBox(

Слайд 38Дополнительные команды работы с массивами
Array (Список аргументов) - позволяет быстро

заполнять массив. Например:
Dim MyArray
MyArray = Array(1, 2, 6, 9,

19)
MsgBox MyArray(0)
IsArray (Имя переменной) - возвращает True если переменная является массивом.
Dim MyArray(10)
If IsArray(MyArray) Then _
MsgBox ("Переменная MyArray - массив") _
Else MsgBox ("Переменная MyArray - не массив")
Дополнительные команды работы с массивамиArray (Список аргументов) - позволяет быстро заполнять массив. Например:Dim MyArray MyArray = Array(1,

Слайд 39Функции
LBound (Имя Массива, Размерность) - возвращает нижнюю границу для указанной

размерности массива.
UBound (Имя Массива, Размерность) - возвращает верхнюю границу для

указанной размерности массива.
ФункцииLBound (Имя Массива, Размерность) - возвращает нижнюю границу для указанной размерности массива.UBound (Имя Массива, Размерность) - возвращает

Слайд 40Пример
Dim MyArray()
ReDim MyArray(Int(Rnd * 5 + 5), Int(Rnd * 5

+ 5))
MsgBox ("Двумерный массив MyArray:" +Chr(13) +_ "Первая

размерность:" + Str(LBound(MyArray, 1)) +« -»_ + Str(UBound(MyArray, 1)) + Chr(13) + _
"Вторая размерность:"+ Str(LBound(MyArray, 2)) + «-»_ +Str(UBound(MyArray, 2)))
For i = LBound(MyArray, 1) To UBound(MyArray, 1)
For j = LBound(MyArray, 2) To UBound(MyArray, 2)
MyArray(i, j) = Int(Rnd * 100)
Next j
Next i

ПримерDim MyArray()ReDim MyArray(Int(Rnd * 5 + 5), Int(Rnd * 5 + 5))MsgBox (

Слайд 41Erase Имя_массива - очистить массив. Элементы обычных массивов, содержащих числовые

данные, обнуляются.
Если мы применим команду Erase к массиву строк

- каждый его элемент будет хранить строку нулевой длины ("").
Применяя команду Erase к динамическому массиву, мы очищаем память, выделенную этому массиву командой ReDim. Для повторного использования динамического массива, придется снова устанавливать его размерности.
Erase Имя_массива - очистить массив. Элементы обычных массивов, содержащих числовые данные, обнуляются. Если мы применим команду Erase

Слайд 42Цикл с предусловием
Цикл с предусловием While - Wend выполняется до

тех пор, пока условие, указанное на входе, верно.
А = 1


While А < 10
А = Int(Rnd() * 20)
MsgBox А
Wend

Цикл с предусловиемЦикл с предусловием While - Wend выполняется до тех пор, пока условие, указанное на входе,

Слайд 43Цикл с постусловием
Цикл Do-Loop While выполняется до тех пор, пока

значение на выходе из цикла верно. Подобные циклы используют, например,

для проверки правильности ввода каких-либо данных пользователем. Если данные введены неверно - цикл выполняется снова.
Аналогично действует цикл Do-Loop Until - он будет выполняться до тех пор, пока условие цикла неверно (то есть равно False ).
Цикл с постусловиемЦикл Do-Loop While выполняется до тех пор, пока значение на выходе из цикла верно. Подобные

Слайд 44Dim var_A
Do
var_A = InputBox("Введите

число")
Loop Until IsNumeric(var_A)

Пользователю предлагается ввести какое-нибудь число. Если

введено не число (то есть функция IsNumeric возвратит False ), программа выведет окно ввода снова.
Dim var_A  Do    var_A = InputBox(

Слайд 45Оператор Like
Like используется для сравнения строк с шаблонами.
Шаблон -

это особым образом записанная последовательность символов.
При построении шаблонов используются

специальные символы, приведенные в таблице.
Оператор LikeLike используется для сравнения строк с шаблонами. Шаблон - это особым образом записанная последовательность символов. При

Слайд 46Символы для построения шаблонов

Символы для построения шаблонов

Слайд 47Пример
Узнать, есть ли в строке прописные и заглавные буквы латинского

алфавита.
Проверить, состоит ли введенное слово из четырех символов (цифр или

букв)
Проверить, состоит ли введенная последовательность из двух любых символов (цифр или букв) и двух цифр
Проверить, нет ли во введенной строке русских букв " а " и " о "
Если введенная строка начинается двумя буквами " d " и заканчивается тремя буквами " f ", сообщить об этом
ПримерУзнать, есть ли в строке прописные и заглавные буквы латинского алфавита.Проверить, состоит ли введенное слово из четырех

Слайд 48Dim str_Inp As String
str_Inp = InputBox("Введите строку")

'Есть ли латинские буквы в строке
If str_Inp Like

"*[a-z]*" Or str_Inp Like "*[A-Z]*" _
Then MsgBox ("В строке есть латинские буквы")
'Состоит ли введенное слово из 4-х символов
If str_Inp Like "????" Then _
MsgBox ("Введенное слово состоит из 4-х символов")

Dim str_Inp As String  str_Inp = InputBox(

Слайд 49 'Состоит ли введенная последовательность
'из 2-х любых символов

и 2-х цифр
If str_Inp Like "??##" Then _

MsgBox ("Введены два любых символа и две цифры")
'Проверка на отсутствие букв "а", "о"
If str_Inp Like "[!а]" And _
str_Inp Like "[!о]" Then
MsgBox ("В строке нет букв " + Chr(34) + _
"а" + Chr(34) + " и " + Chr(34) + "о" + Chr(34))
End If
'Проверка на наличие в начале введенной 'строки двух букв "d", а в конце трех "f"
If str_Inp Like "dd*fff" _
Then MsgBox ("Строка имеет вид: dd*fff")

'Состоит ли введенная последовательность  'из 2-х любых символов и 2-х цифр  If str_Inp Like

Слайд 50Работа с внешними файлами
var_Doc = Dir("C:\*.*")
Do While var_Doc

""
MsgBox var_Doc

var_Doc = Dir()
Loop
Поиск всех файлов в корневом каталоге диска C.
Функция Dir возвращает строку, содержащую имя файла, используя путь, заданный при вызове
Работа с внешними файламиvar_Doc = Dir(

Слайд 51Dir
По умолчанию функция ищет лишь обычные файлы, не обращая внимания

на папки, скрытые и системные файлы. Чтобы функция нашла по

заданному пути не только файлы, но и папки, ее нужно вызвать так:
var_Doc = Dir("C:\*.*", vbDirectory)
Обратите внимание на то, что после пути и маски указан параметр vbDirectory - он указывает функции, что она должна включить в поиск и директории.

DirПо умолчанию функция ищет лишь обычные файлы, не обращая внимания на папки, скрытые и системные файлы. Чтобы

Слайд 52ChDir
Помимо Dir полезной может оказаться команда ChDir. Она позволяет перейти

в указанную при ее вызове директорию, которая будет использоваться в

качестве директории по умолчанию. Такая конструкция, предшествующая циклу из предыдущего примера позволит найти все файлы в папке "Документы", которая расположена по пути " C:\Документы ":
ChDir ("C:\Документы")
var_doc = Dir("*.*")

ChDirПомимо Dir полезной может оказаться команда ChDir. Она позволяет перейти в указанную при ее вызове директорию, которая

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика