Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание процедур и особенности способов ввода-вывода информации в VBAСодержание книги
Поиск на нашем сайте 3.5.2.Создание процедур и особенности способов ввода-вывода информации в VBA Процедура – это универсальная единица программного кода, с помощью которой можно выполнять различные задания на VBA. Это наименьшая единица программного кода, на которую можно ссылаться по имени и которая может выполняться независимо. Процедуру можно определить и так – это VBA-программа наименьшего состава, так как любую VBA-программу можно оформить в виде одной-единственной процедуры. Поэтому целесообразно при создании процедур рассмотреть способы ввода-вывода исходных данных в VBA и способы запуска VBA-программ. Рассмотрим особенности способов ввода-вывода информации в VBA в сравнении со способами, используемыми в традиционных языках программирования, например, Qbasic. Отметим, что для ввода информации в VBA, кроме используемого в Qbasic оператора присваивания, используются как диалоговые окна, так и свойства объектов, в частности, свойства рабочего листа Excel.
1. Особенности ввода-вывода информации в диалоговом режиме В VBA для ввода информации в диалоговом режиме используется встроенное диалоговое окно - функция InputBox (в отличие от оператора Input в Qbasice), а для вывода информации встроенное диалоговое окно - процедура MsgBox (в отличие от оператора Print в Qbasice). Наличие встроенных диалоговых окон (если их возможностей достаточно) освобождает пользователя от необходимости проектирования диалоговых окон. Функция InputBox выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значения типа String, содержащее текст, введенный в поле (Л.6, с. 222). Пример 1: ИмяКлиента=InputВох («Введите ваше имя») -будет выдано диалоговое окно с полем для ввода имени. После ввода имени, например, Кирилл, щелкните кнопку ОК.
Процедура MsgBox «Привет,»&ИмяКлиента выдает диалоговое окно с сообщением: Привет, Кирилл.
Программный проект на VBA может быть реализован в виде процедуры Приветствие 1. Private Sub Приветствие 1() Dim ИмяКлиента As String ИмяКлиента = IприtВох("Введите ваше имя", "Пример окна ввода") MsgBox "Привет," & ИмяКлиента, vbInformation, "Пример окна сообщения" End Sub Функция InputBox используется и для ввода численных значений переменной. В этом случае для преобразования строки в число используется функция Vаl(строка), которая возвращает числа, содержащиеся в строке, как числовые значения соответствующего типа. После выполнения вычислений над числами результат выдается на экран процедурой MsgBox. Для преобразования чисел в строковые значения используется функция Str(число), которая воспринимает только точку (.). Если дробная часть числа отделяется от целой запятой (,) то используется функция СStr(число). Пример 2: Вычислить значение выражения с2=а2 +b2 при а=256.1584 и b= Процедура на VBA имеет вид: Sub Пример2 () Dim a As Double, x As Double 'а и х описаны как переменные двойной точности а = Vа1(InputВох("Введите а")) 'Ввод значения а х = Vа1(InputВох("Введите х")) ' Ввод значения х b = 1/(х)^(1/4) 'Вычисление значения b C#=a^2+b^2 'Вычисление значения с# двойной точности MsgBox ("Ответ=" + Str(C#)) 'Выдает результаты End Sub Ответ: 65617.7032408292.
Пример 3: Ввести в диалоговом режиме целочисленную квадратную матрицу А порядка N и вычислить сумму элементов матрицы. Процедура на VBA имеет вид: Sub Диалог() Dim a() As Integer, N As Integer Dim i As Integer, j As Integer N = Vа1(InputВох("Введите порядок матрицы")) ReDim a(N, N) For i = 1 To N For j = 1 To N a(i, j) = InputВох("Введите целочисленное значение матрицы") Cells(i,j) = a(i,j) Next j,i Sum=0 For i = 1 To N For j=l To N Sum = Sum + a(i,j) Next j,i MsgBox ("Sum=" + Str(Sum)) End Sub 2. В VBA уникальной возможностью по вводу-выводу информации в ячейки рабочего листа Excel является использование свойства ячеек Value . Пример 4: В диапазон ячеек А1:В2 ввести число 5, а в диапазон ячеек АЗ:В4 ввести символ «*». Результат решения задачи х=70 вывести в активную ячейку. Sub Пример4() Range("Al:B2").Value = 5 Range("A3:B4").Value = "*" х == 70: ActiveCell.Value = x End Sub
Пример 5: Вывести результаты решения задачи, получаемые в цикле, на рабочий лист Excel Sub Пример5() A=l:b=2:c=l:x=5 For у == 1 То 8 z = Sqr(A *x + b*y + c) Cells(y, 1). Value = z 'Результат решения задачи z выводится в 1 столбец рабочего листа Ехсеl Next у End Sub
Пример 6: В цикле вывести в ячейки рабочего листа Excel символ «*». Sub Пример6() For i=l To3 For j = 1 То 5 Cells(I,J)Value = "*" 'В ячейки I,J рабочего листа Ехсеl выводится символ"*" Next j, i End Sub Заметим, что в Qbasice вывод символов в заданную позицию осуществляется с помощью операторов Locate и Print. 3. Свойства ячеек Value позволяет также значение из ячейки присвоить некоторой переменной. Например, введем в ячейку С1 число 4 и присвоим его переменной х. X=Range("cl"). Value - переменной х будет присвоено значение 4. Если в диапазон ячеек ввести численные значения переменных, то, используя свойство Value, эти значения можно присвоить переменным. То есть, можно провести аналогию с операторами Data и Read, используемыми в Qbasice для ввода численных значений многих переменных (массивов и матриц). Вместо оператора Data значения переменных могут быть введены в диапазон ячеек рабочего листа Excel, а вместо оператора Read может быть использовано свойство Value для присвоения значений ячеек переменных. Пример 7: Ввести численные значения элементов матрицы а(5,5) в диапазон ячеек рабочего листа Excel и, используя свойство ячеек Value, присвоить их переменным a(i,j). Вычислить сумму элементов матрицы, а) Введем в диапазон ячеек А1:Е5 численные значения элементов матрицы а(5,5), например, 1, 2,..., 25, и реализуем процедуру их присвоения переменным a(i,j); в) вычислим сумму элементов матрицы. Sub Пример7() Dim a() As Integer, N As Integer Dim i As Integer, j As Integer N = InputВох("Введите порядок матрицы") ReDim a(N, N) For i = 1 To N For j = 1 ToN a(i,j)=Cells(i,j).Value Next j, i Sum=0 For i = 1 To N For j = 1 To N Sum = Sum + a(i, j) Next j, i MsgBox (("Sum=") + Str(Sum)) End Sub Пример 8: Заполнить массив с помощью датчика случайных чисел и вывести его в первый столбец второго листа рабочей книги. Отсортировать массив в порядке возрастания и вывести его во второй столбец второго листа рабочей книги. Sub a6() Dim a() As Integer, N As Integer Dim i As Integer, j As Integer Sheets("лист2").Select:Cells.Delete N = Vа1(InputВох("Введите порядок матрицы")) ReDim a(l ToN) Randomize Timer For i = 1 To N A(i)=Rnd*99+1.1 Cells(i, l)=a(i) Next i For i = 1 To N – 1 flag = True For j=l To N-l If a(j+l)<a(j)Then t=a(j):a(j)=a(j+1):a(j+1)=t flag = False End If Next j If flag Then Exit For Next i For i = 1 To N Cells(i, 2) = a(i) Next i MsgBox ("см.лист2") End Sub
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 57; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.006 с.) |