Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Создание проекта, модуля, процедуры, функции.




Перед созданием программ, необходимо удалить лишние модули и подпрограммы. Для этого необходимо открыть окно VBA. Перейти в окно проекта. Выделить удаляемый модуль или процедуру, вызвать контекстное меню (щелкнуть правую кнопку мыши) нажать строчку удалить модуль. На запрос о сохранении удаляемого модуля, выбрать НЕТ.

Создание модуля осуществляется из меню Вставка/ Модуль.

Задание 2. Создайте модуль с именем VBAМод1. Опишите в конспекте каким образом присваивается имя модуля. Каким образом можно изменить имя модуля.

Конец задания 2.

 

Средства ввода- вывода данных.

Модули содержат процедуры и функции. Создание процедуры осуществляется из меню Вставка/ процедура. В диалоговом окне задается имя процедуры, тип.

Задание 3. Используя команду Вставка / Процедура Создайте процедуру ВводВывод:

Public Sub ВводВывод()

Dim strИмя As String

strИмя = InputBox ("Введите Ваше имя", "Окно ввода", "Неизвестный")

MsgBox Prompt:=strИмя & "! У Вас получилось! "

End Sub

Функция InputBox имеет параметры:

InputBox (“сообщение пользователю”, заголовок окна, значение по умолчанию)

 

Сообщение в окне диалога MsgBox представляет собой строку, включающую последовательность строковых констант в кавычках соединенных знаком & c именами переменных. Например, при использовании операторов

b = 10

MsgBox(“Значение переменной b = ” & b)

будет выведено - Значение переменной b = 10.

Свяжите созданную процедуру с кнопкой на панели инструментов. Для вывода кнопки запуска программы на созданную панель необходимо в окне Настройка перейти на вкладку Команды, выбрать в поле Категории Макросы, в поле Команды выбрать кнопку соответствующую программе, захватить кнопку мышкой перетащить на панель и бросить. Используя меню Изменить выделенный объект выбрать Основной стиль для кнопки или изменить значок.

Перейдите в окно текстового документа. Запустите в работу программу. Опишите в конспекте назначение операторов программы.

Конец задания 3.

Задание 4. Создайте подпрограммы:

1. расчета скорости по известным расстоянию и времени.

2. расчета длины окружности и ее площади по значению радиуса.

3. расчета объема цилиндра по известным высоте и радиуса.

Свяжите созданные процедуры с кнопками на панели инструментов.

Конец задания 4.

8.8. Решение задач при помощи стандартных средств VBA

В таблице 1 показано соответствия основных алгоритмических и программных структур.

 

Таблица соответствия алгоритмических и программных структур Таблица 1
№ п/п Задача Алгоритм Программа на VBA
  Начало процесса, заголовок. начало; Public Sub ImProgram()
  Описание структуры данных. Список переменных: a, b, c – вещ; d, k – цел; mas(5, 5) – цел; mas1(5,5) – вещ; Dim a, b, c As Single Dim d, k As Integer Dim mas(1 to 5, 1 to 5) As Integer Dim mas(5, 5) As Single
  Ввод исходных значений. Ввод(a, b, d, k); a = InputBox(“Ввод a”) b = InputBox(“Ввод b”) d = InputBox(“Ввод d”) k = InputBox(“Ввод k”)
  Проверка исходных данных. Вывод(a, b, d, k); MsgBox “Вывод a” & a MsgBox “Вывод b” & b MsgBox “Вывод d” & d MsgBox “Вывод k” & k
  Линейные операции (действия). c = 2a + √b c:= 2 * a + Sqr(b); c = 2 * a + Sqr(b) (см. ниже ссылку 1)
  Выбор альтернативного пути в зависимости от значения условия. Если с > 10 то с:= с – 3*а; иначе с:= с + 2*b; конец- если; If c > 10 Then с = с – 3*а Else с = с + 2*b End If
  Выбор одного из нескольких альтернативных путей. Если performance=1 то Bonus = salary * 0.1 Иначе Если performance=2или3 то Bonus = salary * 0.09 Иначе Если performance>=4 и performance<=6 то Bonus = salary * 0.07 Иначе Если performance>8 то Bonus = 100 Иначе Bonus = 0,   где performance – переменная выбора, Bonus, salary – переменные. Select Case performance Case 1 Bonus = salary * 0.1 Case 2, 3 Bonus = salary * 0.09 Case 4 To 6 Bonus = salary * 0.07 Case Is > 8 Bonus = 100 Case Else Bonus = 0 End Select
  Выполнение последовательности одних и тех же действий заданное количество раз. Цикл по i = 1 до 10 шаг 2; a:= 34/b; c:= √a + 2*c; b:= b + 1; Вывод (с); Конец цикла по i; For i = 1 To 10 Step 2 a:= 34/b; c:= √a + 2*c; b:= b + 1; MsgBox “Вывод с” & с Next i
  Выполнение последовательности одних и тех же действий с предварительной проверкой условия окончания действий. Последовательное приближение к результату, итерационный процесс. Цикл – пока myNum > 10; myNum = myNum – 1; counter = counter + 1; Конец цикла; Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop
  Выполнение последовательности одних и тех же действий с проверкой условия окончания операций в конце последовательности операций. Последовательное приближение к результату, итерационный процесс. Цикл – До myNum > 10; myNum = myNum – 1; counter = counter + 1; Конец цикла; Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10
  Завершение операций. конец; End Sub

 

1. Справка по функциям и операторам VBA вызывается в окне Visual Basic по схеме: «? / Содержание и предметный указатель / содержание / Справочное руководство поVisual Basic / Функции или Обзор Visual Basic для приложений».

 

Ниже приведен текст программы нахождения наибольшего элемента массива. В программе использованы все основные структуры. В комментариях указано назначение программы. Прочитайте текст программы. Опишите назначение основных операторов.

 

8.9. Программа поиска наибольшего элемента массива

Public Sub Massiv() 'Начало

'Список данных

Dim a, b, c, d As Integer 'в ОЗУ отводится место для переменных

Dim mas(4, 4) As Integer 'в ОЗУ отводится место для массива

'Конец списка

'Ввод значений элементов массива размером 4 на 4

For i = 1 To 4 'начинаем цикл по переменной i, изменение первого индекса

For j = 1 To 4 'изменение второго индекса

'в следующем операторе используется функция InputBox для ввода данных

'при выполнении функции выводится окно диалога InputBox

 

mas(i, j) = InputBox ("Ввод значения элемента mas(" & i & ", " & j & ")",, 10)

 

Next j 'конец цикла по j

Next i 'конец цикла по i

'определение наибольшего элемента массива

b = mas(1, 1) 'переменной b присваивается значение элемента mas(1,1)

For i = 1 To 4

For j = 1 To 4

If mas(i, j) > b Then 'если очередной элемент массива больше

b = mas(i, j) 'записать его значение в переменную b

c = i 'в переменную с записать значение первого индекса

d = j 'в переменную с записать значение второго индекса

End If

Next j

Next i

'вывод значения наибольшего элемента массива в окно диалога MsgBox

 

MsgBox "Наибольший элемент массива mas(" & c & ", " & d & ")" & ", равен " & b

End Sub 'Конец

 

8.10. Линейные алгоритмы и ветвления

Ход занятия. Используя стандартные средства VBA разработать программы, для решения задач, связать их с кнопками на панелях инструментов. Программы разрабатывать в документе Word. Предлагаемый перечень задач:

ЗАДАЧА 1

Составить алгоритм на VBA для вычисления и печати значений функции Y, заданной формулой:

;    

 

в алгоритме предусмотреть ввод аргумента x и вывод на печать введенной информации и результатов решения.

 

ЗАДАЧА 2

Известно, что система уравнений

имеет решение:

 

Составить алгоритм на VBA для вычисления и печати значений x и y по известным численным значениям коэффициентам A1, B1, C1, A2, B2, C2, являющихся исходными данными для алгоритма.

ЗАДАЧА 3

Составить алгоритм на VBA в случае (а), обеспечивающий присваивание переменной A значение “1” при выполнении следующего условия:

а). переменная X принадлежит отрезку ]0;1[

ЗАДАЧА 4

Составить алгоритм на VBA для вычисления и печати значений функции Y, заданной формулой:

В алгоритме предусмотреть ввод аргументов X и Z на вывод на печать введенной информации и результатов расчета.

ЗАДАЧА 5

Разработать алгоритм для вычисления и печати значения переменной X равному квадрату наименьшего одного из двух чисел A и B.

8.11. Циклические алгоритмы

Теоретические сведения.

Типы циклов

· Do...Loop: повторяет набор инструкций, пока условие имеет значение True или пока оно не примет значение True

Sub ChkFirstWhile()

counter = 0

myNum = 20

Do While myNum > 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "Выполнено " & counter & " итераций цикла."

End Sub

· For...Next: использует счетчик. Повторяет набор инструкций указанное число раз.

· For Each...Next: повторяет набор инструкций для каждого объекта семейства

Sub TwosTotal()

For j = 2 To 10 Step 2

total = total + j

Next j

MsgBox "Сумма равна " & total

End Sub

В приведенном ниже примере для формирования приветствия в ответ на ввод имени пользователя используется конструкция цикла с параметром. Этот оператор позволяет организовать ввод пяти имен пользователей.

 

Public Sub ВводВывод()

Dim strImya As String

Dim i, a As Integer

For a = 1 To 5 Step 1

strImya = InputBox(" Введите ваше имя - ")

MsgBox (strImya & "! У Вас получилось вывести приветствие! Ура! ")

Next a

End Sub

 

Следующая ниже программа позволяет вводить имена пользователей и выводить приветствие до тех пор пока значение переменной а больше либо равно 1.

 

Public Sub ВводВывод()

Dim strImya As String

Dim i, a As Integer

a = 5

Do While a >= 1 'Выполняется пока условие истинно

a = a - 1

strImya = InputBox ("Введите ваше имя - ")

MsgBox (strImya & "! У Вас получилось вывести приветствие! Ура!")

Loop

End Sub

 

Существует второй вариант использования условия:

Public Sub ВводВывод()

Dim strImya As String

Dim i, a As Integer

a = 5

Do

a = a - 1

strImya = InputBox ("Введите ваше имя - ")

MsgBox (strImya & "! У Вас получилось вывести приветствие! Ура!")

Loop While a >= 1 'Выполняется пока условие истинно

End Sub

Во втором варианте условие проверяется в конце цикла. Это дает возможность выполнить операторы тела цикла хотя бы один раз не зависимо от условия.

 

Решение задач

ЗАДАЧА 6

Составить алгоритм на VBA, обеспечивающий выполнение следующих действий:

а). Переменной С присвоить значение суммы элементов массива:

ЗАДАЧА 7

Составить алгоритм, обеспечивающий вычисление и печать значений функции Y=f(x) в точках X1, X2,...,Xn:

а).

ЗАДАЧА 8

Переменная Х меняет свое значение от Хн до Хк с шагом Х. Разработать алгоритм, обеспечивающий вычисление и печать значений аргумента Х и функции Y=f(x) при каждом значении Х. Значения Хн, Хк и Х являются исходными и подлежат вводу.

а) Хн=-2, Хк=8, DХ=2.

ЗАДАЧА 9

Разработать алгоритм, обеспечивающий для заданного одномерного массива из n элементов {Ai}, i=1,2,.....,n выполнение следующих преобразований:

д) найти номер и величину наименьшего элемента Аi

 

 

8.12. Создание пользовательских форм с элементами управления

Цель практического занятия- приобретение и закрепление умений в использовании пользовательской формы для ввода вывода данных.

Алгоритм выполнения действий студентами при использовании формы для ввода вывода данных:

а) Открыть текстовый документ Word.

б) Сохранить текстовый документ под именем Пзi Фамилия, где i- номер занятия, Фамилия- фамилии студентов.

в) Используя команду Вид/ Панели инструментов/ Настройка создать панель VBAПрограммы, смотри рис.1.

В конце занятия результаты работы предъявить преподавателю.

 

Рис. 1.

г) Командой Сервис/ Макрос/ Редактор VBA запустить редактор VBA.

Привести редактор VBA к стандартному виду (панель Стандарт, слева закреплены окна проекта и свойств, справа окно модуля).

Командой Вставка/ UserForm вставить модуль формы.

Разработать в конспекте эскиз формы (смотри Рис. 2.).

Используя панель элементов поместить на форму элементы управления.

Рис. 2.

д) Изучить условия очередной задачи, определить вводимые и выводимые данные.

Задача: Составить блок- схему алгоритма и программу на VBA для вычисления и печати функции .

е) Перейти в текстовый процессор Word.

В текстовом документе, используя Автофигуры, для конкретной задачи составить ГСА и написать текст процедур (смотри Рис. 3.).

Ниже приведен алгоритм решения задачи:

Рис. 3.

ж) Скопировать тексты программ и перенести их в соответствующие модули, находящиеся в окне VBA.

Связать одну из процедур (имеющую атрибут Public) с кнопкой на панели VBAПрограммы (смотри Рис.4.)

Перейти в редактор VBA, запустить и отладить программы.

Рис. 4.

В результате работы программы в окне Word появляется форма:

Ход занятия. В папке VBA 33i (i- номер группы) создать файл "Пз4Фамилия", в файле создать панель Настраиваемая1, на панели поместить кнопку запуска программы с формой.

 

Примерный вид формы:

Текст процедур, обеспечивающих работу формы:

Private Sub Document_Open()

Load UserForm1

UserForm1. Show

'установка курсора на позицию 5

UserForm1.TextBox1.SelStart = 5

'передача фокуса текстовому полю

UserForm1.TextBox1.SetFocus

End Sub

Public Sub пр1()

Call Document_Open

End Sub

Private Sub CommandButton1_Click()

UserForm1. Hide

End Sub

 

Private Sub CommandButton2_Click()

'курсор в начало текстового поля

TextBox1. SelStart = 0

'курсор в начало текст. поля с выделением

TextBox1. SelLength = Len (TextBox1.Text)

'фокус в текстовое поле

TextBox1. SetFocus

End Sub

 

Private Sub CommandButton3_Click()

'получение результата расчета

'перезапись текста из окна в окно при нажатии кнопки

TextBox2.Text = Val (TextBox1.Text) * 10

End Sub

Ход занятия. В папке VBA 33i (i- номер группы) создать файл "Пз6Фамилия", в файле создать панель Настраиваемая1, на панели поместить кнопку запуска программы. Открыть окно VBA. В модуле ThisDocument написать процедуру, при помощи которой запускается форма:

Public Sub Форма()

UserForm2.Show

End Sub

связать процедуру с кнопкой на панели. Внимание! Панель инструментов и кнопку создавать в текстовом документе Word, а не в окне VBA.

Задание 1 Создать пользовательскую форму. Ниже приведен фрагмент программы. Попробуйте определить для чего он необходим. Используя сведения, полученные на лекции № 10 ответьте на вопросы: Что такое Value? Что такое Caption? Что такое ScrollBar1? Что обозначает надпись Label1.Caption? Создайте на форме необходимые элементы управления. Реализуйте текст программы в элементе формы. Запустите форму в работу. Опишите что вы наблюдаете.

Dim Var1 As Integer

Private Sub ScrollBar1_Change()

' Программа присваивания надписи значения, определяемого полосой прокрутки

Label1.Caption = Trim$ (Str$ (ScrollBar1.Value))

Var1 = ScrollBar1.Value

Label2.Caption = Trim$ (Str$ (Var1 * 8))

End Sub

Задание 2 Ниже приведены рисунок формы с элементами управления, и программы с помощью которых осуществляется настройка элементов управления формы, ввод данных и размещение их в соответствующих элементах.

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then

Label1.Visible = True

Else

Label1.Visible = False

End If

End Sub

Private Sub SpinButton1_Change()

CheckBox1.Caption = "Вывод результата"

Label1.Font.Size = 26

SpinButton1.Min = 3

SpinButton1.Max = 60

TextBox1.Font.Bold = True

TextBox1.Font.Size = 26

TextBox1.AutoSize = True

TextBox1.Value = SpinButton1.Value

Label1.Caption = SpinButton1.Value * 100

End Sub

Создайте форму, введите в модуле формы программы, опишите что происходит с элементами управления на форме. Ответьте письменно на вопросы:

1. Какие объекты обозначают имена- CheckBox1, Label1, TextBox1, SpinButton1?

2. Каким оператором задается размер текста на надписи, равный 26 пунктам?

3. Для чего необходим оператор SpinButton1.Max = 60?

4. Какая процедура позволяет включать и выключать надпись?

5. Каким способом можно задать автоматическое изменение размеров текстового поля? (Size- обозначает размер)

6. Какой оператор присваивает надписи значение счетчика умноженное на число?

7. Запишите оператор при помощи которого можно задать автоматическое изменение размеров надписи в соответствии с длинной помещаемого в ней текста или числа?

8.13. Создание программы подготовки открыток

Ход занятия. В папке VBA 33i (i- номер группы) создать файл "Пз8Фамилия", в файле создать панель Настраиваемая1. Открыть окно VBA. В модуле ThisDocument написать процедуру, при помощи которой запускается программа:

Public Sub Поздравление()

(сюда поместить оператор запуска формы)

End Sub

связать процедуру с кнопкой на панели. Внимание! Панель инструментов и кнопку создавать в текстовом документе Word, а не в окне VBA.

Задание. В документе Пз8Фамилия создать проект, позволяющий формировать поздравления ваших знакомых, с использованием объекта Word Art. Рекомендуется соблюдать последовательность:

1.Создать форму, содержащую два текстовых поля, две надписи и две кнопки.

2.В первое текстовое поле вводится имя поздравляемого во второе текстовое поле вводится текст поздравления.

3.Назначение полей отразить при помощи надписей.

4.Создать две кнопки, предназначенные: первая - для управления выводом поздравления в виде объекта Word Art в документ; вторая - для закрытия формы.

5.Записать при помощи макрорекордера процедуру, позволяющую выводить в документ текст поздравления в виде объекта Word Art и связать ее с соответствующей кнопкой на форме. После записи внести в процедуру изменения, например, указать источник текста в соответствующей строке процедуры (…AddTextEffect(msoTextEffect16, UserForm1.TextBox2.Text, "Arial",…).

Объект Word Art вызывается нажатием кнопки с изображением синей наклонной буквы А на панели РИСОВАНИЕ.


 





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 578 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2235 - | 2163 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.