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


VBA

Содержание

Для записи макроса с помощью Макрорекордера необходимо: 1. Вкладка Разработчик, группа Код, кнопка Запись макроса . 2. В окне Запись макроса установить параметры записываемой процедуры , нажать ОК. Кнопка Запись макроса

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

Слайд 1VBA
Visual Basic

for Application
(лекции

1-3)
VBA        Visual Basic for Application

Слайд 2Для записи макроса с помощью Макрорекордера необходимо:
1. Вкладка Разработчик,

группа Код, кнопка Запись макроса .
2. В окне Запись

макроса установить параметры записываемой процедуры , нажать ОК. Кнопка Запись макроса в группе КОД изменится на кнопку Остановить запись .
3. Выполнить действия, которые нужно записать.
4. Нажать кнопку Остановить запись

МАКРОС — это именованная последовательность заданных пользователем команд и действий, хранящаяся в форме программы на языке VBA.
MacroRecorder —транслятор, создающий программу (макрос) на языке VBA.

Группа КОД при записи макроса

Для записи макроса с помощью Макрорекордера необходимо: 1. Вкладка Разработчик, группа Код, кнопка Запись макроса . 2.

Слайд 3Для просмотра и редактирования созданного макроса:
Вкладка Разработчик, группа Код,

кнопка Макросы, в диалоговом окне Макрос выбрать имя макроса, нажать

кнопку Изменить, откроется редактор VBA и окно Модуль с текстом макроса.
Внести в текст макроса необходимые изменения и закрыть окно редактора.


Для выполнения макроса:
Вкладка Разработчик, группа Код, кнопка Макросы, в диалоговом окне Макрос выбрать имя макроса, нажать кнопку Выполнить

Для просмотра и редактирования созданного макроса: Вкладка Разработчик, группа Код, кнопка Макросы, в диалоговом окне Макрос выбрать

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

Y1=|sin x|+|cos x| и Y2=3sin√x+0,35x – 1,8

на отрезке [-5; 5] с шагом h=0,5

Пример: создать макрос построения графиков функций      Y1=|sin x|+|cos x| и Y2=3sin√x+0,35x –

Слайд 5Назначение макроса ГРАФИК командной кнопке
Затем щелкнуть правой кнопкой мыши по

создавшейся кнопке и в открывшемся контекстном меню выбрать команду «Свойства».


Откроется окно «Properties», где изменить надпись на кнопке: «Графики».
Еще раз щелкнуть правой кнопкой мыши на кнопке и в открывшемся контекстном меню выбрать команду «Исходный текст».
Откроется окно кода рабочего листа, где после заголовка процедуры, ввести инструкцию: Call график.

Private Sub CommandButton1_Click()
Call график
End Sub

Чтобы запустить макрос достаточно будет нажать кнопку «Графики».

Вкладка Разработчик, группа Элементы управления, кнопка Вставить.
Элемент управления Кнопка (CommandButton) из группы Элементы ActiveX установить на рабочем листе.
После появления командной кнопки на рабочем листе
на вкладке Разработчик
кнопка Режим Конструктора становится активной

Назначение макроса ГРАФИК командной кнопкеЗатем щелкнуть правой кнопкой мыши по создавшейся кнопке и в открывшемся контекстном меню

Слайд 6Редактор VBA
Вкладка Разработчик

Редактор VBAВкладка Разработчик

Слайд 7Окно Параметры EXCEL
Редактор VBA

Окно Параметры EXCELРедактор VBA

Слайд 8 Окно редактора VBA
Редактор VBA

Окно редактора VBAРедактор VBA

Слайд 9Работа в редакторе VBA
Автоматизированный ввод текста программы

Работа в редакторе VBAАвтоматизированный ввод текста программы

Слайд 10ФОРМЫ

ФОРМЫ

Слайд 11Типы данных

Типы данных

Слайд 12Типы данных
Существует функция VarType(Имя), которая возвращает число, соответствующее типу переменной.
Sub

TestVar()
Stemp = "Hello"
MsgBox VarType(Stemp)
Stemp = 4
MsgBox

VarType(Stemp)
End sub

строки инициализируются пустыми строками;
числа - значением 0;
переменные типа Boolean - False;
даты - 30 декабря 1899

Dim a as Integer
a=InputBox("","" ,"5")
‘ неявное преобразование типов а=5

Sub Proba1()
a=Inputbox("","","5") ‘variant в string
b=Inputbox("","","6") ‘variant в string
c=a+b
MsgBox c ‘ c=“56”
End sub

Option Explicit - требование явного объявления переменных (на уровне модуля)

Типы данныхСуществует функция VarType(Имя), которая возвращает число, соответствующее типу переменной.Sub TestVar() Stemp =

Слайд 13Область действия переменных Переменные, описанные с помощью ключевого слова Dim на

уровне модуля, доступны для всех процедур в данном модуле. Переменные,

описанные на уровне процедуры, доступны только в данной процедуре. [Public |Private] используется на уровне модуля для описания констант ( доступных всем модулям | только внутри модуля) .

Описание переменных: [Public |Private| Dim|Static ] ИмяПеременной As Тип
1. Длина <=255 символов.
2. Имя не может содержать точек, пробелов и следующих символов:
%, !, &, #, @, $.
3. Имя может содержать любую комбинацию букв, цифр, и символов, начинающуюся с буквы.
4. Имена должны быть уникальны в области, в которой они определены.
5. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных процедур и функций.
Константы [Public |Private] Const ИмяКонстанты [As тип] = Выражение

Область действия переменных Переменные, описанные с помощью ключевого слова Dim на уровне модуля, доступны для всех процедур

Слайд 14ОПЕРАЦИИ
Математические операции:
+ - * / \ Mod ^
Операции отношения :

>= =
obj1 is

obj2 str1 Like str2
Логические операции:
And Or Xor Eqv Imp Not

Математические функции:
Abs(x) Sqr(x) Tan(x) Atn(x) Cos(x) Sin(x) Exp(x) Log(x) Sgn(x) Rnd(x) Fix(x) Int(x)

Функции преобразования типов:
Str(n) Val(s) Asc(s) Chr(n)

CBool(a) CByte(a) CCur(a) CDate(a)
CDbl(a) CDec(a) CInt(a) CLng(a)
CSng(a) CVar(a) CStr(a)

Оператор присваивания: Переменная = выражение
Перенос строки:
х = х + 1 или х = х + 1 : у = х + 2
у = х + 2
Комментарий:
х = х + 1 ‘ Комментарий
Rem Комментарий

ОПЕРАЦИИМатематические операции:+ - * / \ Mod ^Операции отношения :<  >=  =

Слайд 15Встроенные диалоговые окна
Окно сообщения ( используется для вывода, диалога)
MsgBox (Сообщение,Атрибуты,Заголовок,

справка)
P=MsgBox(…..)
Сообщение – выводимый текст.
Атрибуты = Параметр1 + Параметр2
(по умолчанию

только кнопка "ОК«)


Заголовок — строка в заголовке окна сообщений.
Справка — имя файла справки

Встроенные  диалоговые окнаОкно сообщения ( используется для вывода, диалога)MsgBox (Сообщение,Атрибуты,Заголовок, справка) P=MsgBox(…..)Сообщение – выводимый текст.Атрибуты =

Слайд 16Окно ввода
InputBox(Message, Title , Default, X. Y. Info)
Message

– Сообщение-подсказка в диалоговом окне
Title–надпись в строке заголовка окна
Default- значение

по умолчанию в поле ввода
X,Y – координаты левого верхнего угла

P=InputBox(……)

Окно ввода InputBox(Message, Title , Default, X. Y. Info) Message – Сообщение-подсказка в диалоговом окнеTitle–надпись в строке

Слайд 17MsgBox "Привет!", vbYesNoCancel + vbInformation , "Мое первое окно"
MsgBox

"Первая программа", , "Окно сообщения”
Private Sub Example()
Dim s As

String
s = InputBox("Ваше любимое занятие? ", "Любимое занятие")
MsgBox "Мое любимое занятие - " & s, 1, "Ответ"
End Sub
MsgBox

Слайд 18Пример: Сумма двух чисел
Sub Summa()
Dim A As Integer
Dim B

As Integer
Dim C As Integer
A = Val(InputBox(“A=”))
B = Val(InputBox(“B=”))

C = A + B
MsgBox C
End Sub

Пример: Сумма двух чисел Sub Summa()Dim A As IntegerDim B As IntegerDim C As Integer A =

Слайд 19Управляющие алгоритмические конструкции
Конструкции ветвления (If и Select)
Циклические конструкции

Управляющие алгоритмические конструкцииКонструкции ветвления (If и Select)Циклические конструкции

Слайд 20Оператор ветвления
Однострочная форма:
If U Then S1 Else S2
Блочная форма

:
If U Then
S1>
Else
S2>
End if
If A > 10 Then A

= A + 1: B = B + A: C = C + B
If Alpha <=90 Then MsgBox “Острый угол” Else MsgBox “Тупой угол”
If x>= ─5 And x < 5 Then K = K + 1: S = S + x

Sub Simple () ‘ определение четности числа
Dim X as integer
X=InputBox (“X=“)
If X Mod 2 =0 then MsgBox “четное” else MsgBox “нечетное”
End sub

Оператор ветвления Однострочная форма:If U Then S1 Else S2Блочная форма :If U Then S1>ElseS2>End ifIf A >

Слайд 21‘ Вложенные условные операторы Sub School() dim Age as integer Age=InputBox(“Укажите возраст”) If Age

>7 Then If Age

“Взрослый” End If Else MsgBox “Дошкольник” End If End Sub

Эквивалент вложенных операторов
If U1 Then
S1
ElseIf U2 Then
S2
Elseif U3 Then S3
Else
S4
End If

Sub School_1() Dim Age as integer Age=InputBox(“Укажите возраст”) If Age <7 Then
MsgBox “Дошкольник” ElseIf Age <=7 Then MsgBox “Школьник” ElseIf Age <23 Then
MsgBox “Студент”
ElseIf Age <55 Then MsgBox “Специалист” Else
MsgBox “Пенсионер”
End If End Sub

‘ Вложенные условные операторы Sub School() dim Age as integer Age=InputBox(“Укажите возраст”) If Age >7 Then

Слайд 22SELECT CASE
Sub Scase()
Dim a as Integer
A=InputBox(“Ваш рост в см”)
Select Case

A
Case Is

“Вы человек среднего роста”
Case Is >180
MsgBox “Вы высокий человек”
End Select
End Sub

Select Case(Grade)
Case 1
....
Case 2,3
....
Case 4 to 6
....
Case Is > 8
....
Case Else
...
End Select

SELECT CASESub Scase()Dim a as IntegerA=InputBox(“Ваш рост в см”)Select Case ACase Is 180MsgBox “Вы высокий человек”End SelectEnd

Слайд 23Циклы
С предусловием;
С постусловием

ЦиклыС предусловием;С постусловием

Слайд 24ЦИКЛЫ
ЦИКЛ с предусловием
While U
Операторы
Wend
Sub WH_1()
Dim N as integer, k

as integer
K=0
While N>0
K=K+N Mod 10
N=N \ 10
Wend
MsgBox “Сумма цифр =”

& k
End Sub

Операторы цикла с условиями (Do … Loop)

ЦИКЛЫЦИКЛ с предусловиемWhile U 	ОператорыWendSub WH_1()Dim N as integer, k as integerK=0While N>0K=K+N Mod 10N=N \ 10WendMsgBox

Слайд 25Вычисление НОД
НОД = наибольший общий делитель двух натуральных

чисел – это наибольшее число, на которое

оба исходных числа делятся без остатка.

Перебор:

k = a ‘ или k = b;
while ( a Mod k <> 0 Or b Mod k <> 0 )
k =k-1
Wend
MsgBox "НОД=“ & k

много операций для больших чисел

Вычисление НОДНОД = наибольший общий делитель двух    натуральных чисел – это наибольшее

Слайд 26Алгоритм Евклида
Евклид
(365-300 до. н. э.)
НОД(a,b)= НОД(a-b, b)

= НОД(a, b-a)
Заменяем большее из двух чисел разностью

большего и меньшего до тех пор, пока они не станут равны. Это и есть НОД.

НОД (14, 21) = НОД (14, 21-14) = НОД (14, 7)

НОД (1998, 2) = НОД (1996, 2) = … = 2

Пример:

много шагов при большой разнице чисел:

= НОД (7, 7) = 7

Алгоритм ЕвклидаЕвклид(365-300 до. н. э.) НОД(a,b)= НОД(a-b, b)     = НОД(a, b-a)Заменяем большее из

Слайд 27Модифицированный алгоритм Евклида
НОД(a,b)= НОД(a Mod b, b)

= НОД(a, b Mod a)
Заменяем большее из двух чисел

остатком от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Тогда большее — это НОД.

НОД (14, 21) = НОД (14, 7) = НОД (0, 7) = 7

Пример:

Еще один вариант:

НОД(2·a,2·b)= 2·НОД(a, b)
НОД(2·a,b)= НОД(a, b) // при нечетном b

Модифицированный алгоритм ЕвклидаНОД(a,b)= НОД(a Mod b, b)     = НОД(a, b Mod a)Заменяем большее

Слайд 28Реализация алгоритма Евклида
Sub NOD1 ()
Dim a as integer
Dim b as

integer
while ( a b )
if

( a > b ) Then
a = a - b
else
b = b - a
End if
wend
MsgBox “Nod=” & a
End Sub

Sub NOD2 ()
Dim a as integer
Dim b as integer
while ( a*b <> 0 )
if ( a > b ) Then
a = a Mod b
else
b = b Mod a
MsgBox “Nod=” & (a + b)
End Sub

Реализация алгоритма ЕвклидаSub NOD1 ()Dim a as integerDim b as integer while ( a b )

Слайд 29ЧИСЛОВЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ
Последовательность — это набор элементов, расположенных в определенном

порядке.
Все элементы последовательности имеют номера, обычно начиная с 1. Для

того, чтобы задать последовательность, используют два следующих способа.
1. Рекуррентную формулу, которая позволяет вычислить элемент с номером n, зная один или несколько предыдущих. Например, последовательность
1, 3, 5, 7, … можно задать рекуррентной формулой .
2. Формулу для n-ого члена последовательности. Для той же последовательности легко получить . Правая часть этой формулы зависит только от номера элемента n.
Для хорошо известной арифметической прогрессии формула n-ого члена имеет вид
Для геометрической прогрессии, соответственно,

ЧИСЛОВЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ Последовательность — это набор элементов, расположенных в определенном порядке.Все элементы последовательности имеют номера, обычно начиная

Слайд 30Найти максимальный элемент последовательности ненулевых целых чисел.
0 - признак

конца последовательности.

Обработка последовательностей
При работе с последовательностями используют конечное количество
ячеек,

не зависящее от количества элементов в последовательности.

!

Sub Max_SQ()
Dim x as integer, max as integer
x=InputBox(“x=”) : max=x
While x<>0
If max >x then max=x
x=InputBox(“x=”)
Wend
If max=0 Then
MsgBox “пусто”
Else
MsgBox “max=” & max
End if
End Sub

Найти максимальный элемент последовательности ненулевых целых чисел. 0 - признак конца последовательности.Обработка последовательностейПри работе с последовательностями используют

Слайд 31Рекуррентные последовательности
В 1202 г. итальянский математик Леонардо Пизанский, известный под

именем Фибоначчи, предложил такую задачу:
Задача Фибоначчи. Пара кроликов каждый месяц

дает приплод – самца и самку, которые через 2 месяца снова дают такой же приплод. Сколько пар кроликов будет через год, если сейчас мы имеем 1 пару молодых кроликов?
Количество кроликов меняется с каждым месяцем в соответствии с последовательностью 1, 1, 2, 3, 5, 8, 13, 21, 34, ...,
которую называют последовательностью Фибоначчи. Она задается не общей формулой n-ого члена, а рекуррентной формулой, в которой n-ый член выражается через предыдущие. При этом надо определить начальные элементы:


n=InputBox(“n=”)
f1=1: f2=1: k=2
While kf1=f1+f2 : f2=f1-f2: k=k+1
Wend
MsgBox f1
End Sub

Рекуррентные последовательностиВ 1202 г. итальянский математик Леонардо Пизанский, известный под именем Фибоначчи, предложил такую задачу:Задача Фибоначчи. Пара

Слайд 32Получить все числа Фибоначчи, не превышающие данного N.
Sub Fibb()
Dim N

as integer
Dim f1 as integer, f2 as integer
f1=1 :

f2=1
While f1 <= N
MsgBox f1
f1=f1 +f2
f2=f1-f2
Wend
End Sub

Самостоятельно:
Найти наименьший элемент Фибоначчи, больший данного натурального N.
Найти сумму четных элементов Фибоначчи, не превышающих данного N.

Получить все числа Фибоначчи, не превышающие данного N. Sub Fibb()Dim N as integer Dim f1 as integer,

Слайд 33Найти сумму элементов последовательности целых чисел, номера которых являются элементами

Фибоначчи.
0 - признак конца последовательности.
Sub Sum_Fib()
Dim x as integer,

S as integer
Dim n as integer
Dim f1 as integer, f2 as integer
x=InputBox(“x=”): S=0: f2=1 : f1=1: n=1
While x<>0
If n=f1 then S=S+x: f1=f1+f2: f2=f1-f2
x=InputBox(“x=”): n=n+1
Wend
MsgBox “S=” & S
End Sub

X: 2 5 -6 8 45 -89 7 98 90 -4 9 56 5 …
n : 1 2 3 4 5 6 7 8 9 10 11 12 13….
f: 1 2 3 - 5 - - 8 - - - - 13 ….
f2 f1
f2 f1
f2 f1
f2 - f1
f2 - - f1


Найти сумму элементов последовательности целых чисел, номера которых являются элементами Фибоначчи. 0 - признак конца последовательности.Sub Sum_Fib()Dim

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

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

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

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

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


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

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