МУ - Ввод и вывод информации в программах на VBA ( MS Excel ), страница 2
Описание файла
PDF-файл из архива "МУ - Ввод и вывод информации в программах на VBA ( MS Excel )", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве РУТ (МИИТ). Не смотря на прямую связь этого архива с РУТ (МИИТ), его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Рассмотрим тот же пример программы свычислением гипотенузы и периметра прямоугольного треугольника, но с другим способом в/в. Исходные данные(длины катетов) будем вводить в полях ввода, а результатыотображать в надписях диалогового окна.11надписьLabel1поле вводаTextBox1надписьLabel2поле вводаTextBox2КоманднаякнопканадписьLabel3надписьLabel5надписьLabel4надписьLabel6Рисунок 6 – Диалоговое окно с полями ввода и надписями.Итак, можно ввести в соответствующих полях длиныкатетов (например, 3 и 4) и затем щелкнуть команднуюкнопку. Тогда начнет выполняться процедура:Private Sub CommandButton1_Click()Dim a As Double, b As Double, с As Double, p As Doublea = Val(TextBox1.Text)„ввод из TextBox1b = Val(TextBox2.Text)„ввод из TextBox2c = Sqr(a^2 + b^2)Label5.Caption = Format(с, “0.0”) „вывод в Label5p=a+b+cLabel6.Caption = Format(p, “0.0”) „вывод в Label6End SubПервый оператор (после объявления Dim) означает: взять текст, напечатанный в поле ввода Text1; преобразовать его в число (функция Val); присвоить переменной «a» это число.12Аналогично второй оператор ввода означает: взять текст, напечатанный в поле ввода Text2; преобразовать его в число (функция Val); присвоить переменной «b» это число.Далее вычисляется длина гипотенузы (с) и ее значениевыводится в окно, точнее в надпись Label5.
Функция Formatуказывает формат – с одним знаком после запятой.Затем вычисляется периметр (р) и его значение с одним знаком после запятой выводится в надпись Label6.Ответы в окне будут выглядеть так:Важно при использовании этого способа в/в не перепутать имена (номера) полей ввода и надписей. Например,при проектировании окна (см. рис. 6) можно было сначаланарисовать пустые надписи с рамками для ответов, а потомнадписи со словами «гипотенуза» и «периметр». Посколькуимена объектов формируются по порядку их создания, рамки для ответов назывались бы Label3 и Label4.При составлении текста процедур с использованиемTextBox и Label надо очень внимательно проверять их имена. Для этого в режиме просмотра UserForm надо выделятькаждый объект по очереди и смотреть окошко с его свойствами, в самой первой строке – имя.Использование TextBox и Label позволяет одновременно видеть всю исходную информацию и все результатысразу в одном диалоговом окне.
Во многих случаях этоудобнее функций InputBox и MsgBox, которые вводят и выводят данные по одному элементу.132.2 Переключатели (OptionButton)Переключатели очень удобны для выбора одного изнескольких вариантов. На рисунке 7 изображено окно диалога для решения нелинейного уравнения с выбором метода. В рамке слева объединены 2 варианта: метод деленияотрезка пополам и метод Ньютона. Каждый метод – это отдельный переключатель (OptionButton1 и OptionButton2).Когда переключатели объединены в группу с помощьюрамки (Frame), в любой момент может быть выбран толькоодин.надписи (Label)рамка (Frame)рить по значению свойства Value – True (Истина) либо False(Ложь).Если выбран I метод (см.
рис.7), тоOptionButton1.Value = True и OptionButton2.Value = False.Если же выбран II метод, то наоборот:OptionButton1.Value = False и OptionButton2.Value = True.Используя оператор If … Then… Else, можно анализировать состояние переключателей в окне. В случае решенияуравнения одним из двух методов можно записать так:If OptionButton1.Value = True Then„ решение по I методуElse„ решение по II методуEnd IfЕстественно, можно использовать и больше двух переключателей.
Тогда нужно анализировать их операторомIf OptionButton1.Value = True Then…ElseIf OptionButton2.Value = True Thenпереключательполя вводаOptionButton1 переключатель(TextBox)OptionButton2Рисунок 7 – Окно диалога с группой из 2 переключателей.При решении задачи в тексте программы нужно определить, какой переключатель «нажат». Это можно прове14…ElseIf OptionButton3.Value = True Then…End If152.3 Флажки (CheckBox)Флажки в диалоговых окнах удобно использовать дляввода различных параметров со значениями «да» / «нет».
Нарисунке 8 показан фрагмент диалога «Параметры…» системы Word.Рисунок 8 – Фрагмент диалога с 6 флажками.Чтобы определить, какой флажок «включен», надопроверить значение свойства Value – True (Истина) либоFalse (Ложь). Как и при работе с переключателями, для этого используется оператор If … Then… Else.Рассмотрим пример, где по значению радиуса можновычислить любой набор из 3 величин: площадь круга, длинуокружности и объем шара. Сначала создается окно диалога:Рисунок 10 – Окно диалога с 3 флажками.16Private Sub CommandButton1_Click()Dim R As Double, S As Double, L As Double, V As DoubleR = Val(TextBox1.Text)If CheckBox1.Value = True ThenS = 3.14159 * R ^ 2MsgBox "площадь круга = " & Format(S, "0.00")End IfIf CheckBox2.Value = True ThenL = 2 * 3.14159 * RMsgBox "длина окружности = " & Format(L, "0.00")End IfIf CheckBox3.Value = True ThenV = 4 / 3 * 3.14159 * R ^ 3MsgBox "объем шара = " & Format(V, "0.00")End IfEnd SubЭта программа анализирует каждый из трех флажков(см.
строчки, выделенные жирным шрифтом) и вычисляеттолько те формулы, для которых флажки «включены». Соответственно и ответов будет в нашем примере два (см. двавключенных флажка на рис.10):Важно не перепутать имена флажков (CheckBox1,CheckBox2…). Как и для полей ввода и надписей, надо присоставлении программы проверять имена объектов в режиме просмотра UserForm.173. ФАЙЛОВЫЙ ВВОД-ВЫВОДВ некоторых задачах требуется создавать текстовыеотчеты с результатами либо наоборот, считывать данные изобычных текстовых файлов.В отличие от использования диалоговых окон, файловый в/в удобен для добавления информации к различнымдокументам, для отправления по почте и позволяет многократно просматривать данные независимо от программы.Рассмотрим средства файлового в/в для самого простого варианта – текстовые файлы последовательногодоступа.
В таких файлах информация хранится в текстовойформе (ее можно просмотреть с помощью стандартной программы «Блокнот») и все операции чтения и записи выполняются последовательно, т.е. по порядку от первой строкидо последней.Работа с файлом в программе начинается с его открытия (или создания) с помощью оператора Open. При этомзадается режим доступа к файлу: чтение (Input), запись(Output) или добавление записей (Append).Open имя_файла For режим As #номерИмя файла указывают полностью, с именем диска иполным путем.Номер можно выбирать любой, он служит только длякороткой ссылки на файл в других операторах (после Open).После окончания операций с файлом его необходимозакрыть простым операторомClose #номерТолько при закрытии файла отправленная для записиинформация будет физически записана на диск (до этогоона пишется в буфер).18Запись в файлВ первую очередь надо открыть файл для записи (режим Output) или для добавления записей (режим Append).Например, для создания на диске D: в папке Group2нового файла с именем result7.txt надо выполнить оператор:Open “D:\Group2\result7.txt” For Output As #2Если файла D:\Group2\result7.txt не было, то будетсоздан новый пустой файл.
Если же такой файл уже был, тоего содержимое стирается и новые данные будут записываться «с чистого листа».Если требуется добавлять записи к уже существующему файлу result7.txt, надо выполнить оператор:Open “D:\Group2\result7.txt” For Append As #3Данные в файл можно записывать одним из двух способов: вызвав оператор Print # (если файл нужен для вывода на экран или печати) либо оператор Write # (если данныеиз файла должны читаться программой на VBA).Оператор Print # записывает в файл форматированныеданные, перечисленные в списке вывода.Print #номер, список_выводаВ списке вывода могут быть имена переменных и текстовые данные в кавычках.
Элементы списка разделяютсялибо запятыми (тогда в файле элементы будут расположенына расстоянии), либо точками с запятой (тогда элементы печатаются вплотную).Например, выполнение следующих операторовPrint #2, “Решаем квадратное уравнение”Print #2, “коэффициенты a=”; a; “ b=”; b; ” c=”; cPrint #2, “дискриминант D=”; Format(D, “#.00”)Print #2, “корни: х1=”; Format(х1, “#.00”), ” x2=”; x219сформирует в файле 4 строчки вида:Решаем квадратное уравнениекоэффициенты: a= 1 b= 10 c= 2дискриминант D=9,59корни: х1=-3,45x2=-6,54852050734124Второй корень печатается на расстоянии, а не вплотную к x1, т.к. в списке вывода запятая. Выведено 14 знаковпосле запятой, т.к.
для x2 не записана функция Format, какэто сделано для x1.Если данные из файла должны в дальнейшем читатьсяпрограммой на VBA, то для записи используют операторWrite #. Он аналогичен оператору Print #, но есть отличия: текстовые значения печатаются в кавычках; между соседними выражениями печатаются запятые.Выполнение следующих операторов (вместо Print – Write):Write #2, “Решаем квадратное уравнение”Write #2, “коэффициенты a=”; a; “ b=”; b; ” c=”; cWrite #2, “дискриминант D=”; Format(D, “#.00”)Write #2, “корни: х1=”; Format(х1, “#.00”), ” x2=”; x2сформирует в файле 4 строчки вида:"Решаем квадратное уравнение""коэффициенты: a=",1," b=",10," c=",2"дискриминант D=","9,59""корни: х1=","-3,45"," x2=",-6.54852050734124Есть возможность добавлять в файл пустые строки,для этого применяют Print # либо Write # без списка вывода:Write #2,Print #2,Пустые строки в файле помогают отделять логическиефрагменты информации и облегчают просмотр.20Чтение из файлаПрежде всего файл надо открыть для чтения.