Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования на Visual Basic и VBA в Excel 2007

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
23. Пользовательские формы
39: Close FNum 40: LabelMessage.Caption = "Расчет окончен. Введите..." End Sub
Свойство Text элемента TextBoxA — переменная строкового типа, значение которой совпадает с полным именем файла, содер­жащего значения m è n и матрицу A; это полное имя вводится в текстовое поле a формы при эксплуатации программы транспони­рования матрицы. Свойство Text элемента TextBoxB — перемен­ная строкового типа, значение которой совпадает с полным име­нем файла, предназначенного для хранения матрицы B; это пол­ное имя вводится в текстовое поле b. Полные имена открываемых файлов задаются при выполнении 1-го и 2-го операторов (с метка­ми 1 è 2).
При выполнении 40-го оператора свойству Caption элемента LabelMessage присваивается
строка "Расчет окончен. Введи-
òå...". Содержимое этого свойства выводится в форму.
Разработанную программу можно запустить, кликнув на стрел­ке на панели инструментов окна VB. В результате этого произой­дет загрузка формы (рис. 23.3). На рис. 23.5 изображено состояние формы по окончании очередного расчета, т. е. после ввода полных имен файлов
c:\Documents and Settings\usr\texts\a.txt c:\Documents and Settings\usr\texts\b.txt
соответственно в текстовые поля a è b и клика на кнопке Ñ÷åò.
Далее расчет можно повторить при других именах файлов или другом
содержании файла исходных данных. По окончании серии расчетов следует закрыть форму (кликнув на крестике в правом верхнем углу) и тем самым завершить выполнение программы.
Файл исходных данных, содержащий значения m è n и матрицу A, можно создать или отредактировать с помощью редактора Блокнот (Notepad). Результат расчета по программе (матрицу B) можно увидеть с помощью того же редактора. Окно редактора Блокнот (Notepad) с исходными данными и результатами расчета изображено на рис. 22.1 и 22.2.
Элемент TextBox (Поле) можно использовать не только для ввода информации, но и для вывода. При этом свойство Text со­ответствующего элемента TextBox (Поле) должно присутствовать в левой части оператора присваивания (слева от знака =).
111
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
Ðèñ. 23.5. Вид формы по окончании транспонирования матрицы
Задание: используя элемент TextBox (Поле), модифицируйте форму и текст последней программы так, чтобы сообщения выво­дились в текстовое поле.
Мы научились пользоваться тремя элементами панели элемен­тов управления — Label (Надпись), TextBox (Ïîëå) и CommandButton (Кнопка). Рассмотрим также элемент CheckBox (Флажок), который используется, когда некую «возможность» надо либо включать, либо выключать.
Элемент CheckBox (Флажок) изображается в виде квадратика. При клике на квадратике в нем появляется галочка, при повтор­ном клике галочка исчезает. Свойство Value элемента CheckBox (Флажок) имеет значение True при наличии галочки в квадратике и False при отсутствии галочки.
Вернемся к началу главы. Форму для программы расчета длины гипотенузы прямоугольного треугольника по длинам катетов, изо­браженную на рис. 23.3, дополним элементом CheckBox (Флажок), который расположим слева îò кнопки. Программу ComButCalc_Click() на стр. 108 модифицируем так, чтобы при наличии галочки, помимо длины гипотенузы, рассчитывалась еще и площадь треугольника:
Private Sub ComButCalc_Click()
Dim a As Single Dim b As Single
112
23. Пользовательские формы
Dim c As Single Dim s As String Dim out As String a = TextBoxA.Value b = TextBoxB.Value c = Sqr(a^2+b^2) out = "c =" & Str(c) If CheckBox1.Value Then
s = Str(a*b/2)
out = out & vbCrLf & "s =" & s End If LabelMessage.Caption = out
End Sub
В этой программе CheckBox1 — имя элемента CheckBox (Фла-
æîê).
На рис. 23.6 и 23.7 приведены состояния формы для програм-
расчета длины гипотенузы и площади прямоугольного тре-
мы угольника.
Ðèñ. 23.6. Вид формы после запуска программы
Выполнив File (Ôàéë)>Save (Сохранить) > ... â îêíå VB
(стр. 101), сохраним книгу Excel в дисковой памяти компьютера под именем КнигаФорма. При этом сохранится и проект, входя­щий в состав книги Excel.
113
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
Ðèñ. 23.7. Вид формы по окончании расчета
При возвращении к работе над проектом может потребоваться
двойной клик на строке UserForm1 в окне проекта. Удаляется форма так же, как модуль, с помощью контекстного меню (стр. 12).
Задание: используя форму с элементом CheckBox (Флажок), модифицируйте текст программы на стр. 109—111 так, чтобы при установке галочки производилось транспонирование матрицы от­носительно неглавной диагонали, а при удалении галочки — транспонирование матрицы относительно главной диагонали.
Задача транспонирования матрицы относительно главной диа­гонали сформулирована в главе 21.
114
24. Отступление. Разработка
программы с формой в автономной среде VB
Программы, рассмотренные ранее и рассматриваемые после этой главы, имеют общий недостаток: для проведения расчетов по этим программам компьютер пользователя должен быть оснащен табличным процессором Excel. Если требуется выполнять про­грамму в отсутствие Excel, то ее следует разработать в среде Visual Basic, не входящей в состав Microsoft Office. Рассмотрим особен­ности процесса разработки программы (проекта) с формой в среде Visual Basic, входящей в состав пакета Microsoft Visual Studio 6.0.
Для запуска среды VB надо в окне Windows выполнить Ïóñê (Start)>Все программы (All Programs)>Microsoft Visual Studio 6.0 > Microsoft Visual Basic 6.0. При этом возможны следующие вари­анты.
· Появится окно Project1 с формой Form1, которая выглядит,
как прямоугольник с точками.
· Появится окно New Project. В этом случае для начала разра-
ботки проекта следует активизировать вкладку New и дважды кликнуть на пиктограмме Standard EXE. При этом появится окно Project1 с формой Form1.
· Окно среды VB не содержит ни окна Project1, íè îêíà New Project. В этом случае для начала разработки проекта надо
выполнить File > New Project, а затем в появившемся окне New Project дважды кликнуть на пиктограмме Standard EXE. При этом появится окно Project1 с формой Form1.
В результате окно среды VB примет вид, приведенный на рис. 24.1. Разработка формы и программы производится, как опи­сано в предыдущих главах.
Проект содержит несколько файлов. При запоминании проекта (File > Save Project) следует указать путь в заранее организованную папку, например, vb, полное имя которой c:\Documents and Settings\usr\vb, ãäå usr — имя пользователя. Если к проекту
115
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
Ðèñ. 24.1. Окно автономной среды Visual Basic с формой
надо вернуться, то следует выполнить File > Open Project и дважды кликнуть на файле Project1.vbp в этой папке.
По окончании разработки проекта следует получить исполняе­мый файл программы, имя которого имеет расширение exe. Для этого надо выполнить следующие операции:
1) File > Make Project1.exe;
2) в появившемся окне Make Project указать местоположение
исполняемого файла и имя, которое следует ему присвоить;
3) нажать кнопку OK.
Для загрузки формы надо выполнить следующее:
1) найти пиктограмму исполняемого файла программы, напри-
мер, в окне программы Проводник (Windows Explorer);
2) дважды кликнуть на этой пиктограмме.
Далее, пользуясь формой, можно эксплуатировать программу. Если мы хотим передать кому-либо программу с формой, то дос­таточно передать исполняемый файл.
Теперь вернемся к программированию на Visual Basic в таблич­ном процессоре Excel.
116
25. Загрузка формы из окна Excel
Форма, разработанная в главе 23, загружалась из окна VB (кли­ком на стрелке на панели инструментов). Однако хотелось бы иметь возможность загружать форму из окна Excel. Для этого раз­работаем простую программу.
Откроем книгу Excel с именем КнигаФорма (стр. 113). В окне VB этой книги выполним Insert (Вставка)>Module (Модуль).
В окне кода наберем программу
Sub ЗагрузкаФормы()
UserForm1.Show
End Sub
Ðèñ. 25.1. Окно VB со строками UserForm1 è Module1 в окне проекта
117
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
В этой программе UserForm1 — имя формы, разработанной в главе 23.
Теперь форму, изображенную на рис. 23.6, можно загружать из окна
Excel. Для этого надо выполнить следующее: Разработчик >
Макросы > строка ЗагрузкаФормы > Выполнить.
Выполнив Разработчик > Макросы > строка ЗагрузкаФормы > Параметры > ..., можно назначить сочетание клавиш, запускающее программу ЗагрузкаФормы, т. е. загружающее форму UserForm1.
Если мы хотим, чтобы в загруженной форме мигающий курсор находился, например, во втором текстовом поле, то в программу
ЗагрузкаФормы надо вставить оператор
UserForm1.TextBoxB.SetFocus
При этом программа примет следующий вид (рис. 25.1):
Sub ЗагрузкаФормы()
UserForm1.TextBoxB.SetFocus UserForm1.Show
End Sub
Запомним книгу с именем КнигаФорма, дополненную про­граммой ЗагрузкаФрмы.
118
26. Расположение элементов
управления на листе Excel
Элементы управления, рассмотренные в главе 23, в частности кнопку, можно располагать на листе Excel.
Кнопка для загрузки формы создается следующим образом.
1. В окне Excel с книгой КнигаФорма выполним Разработчик >
Вставить. При этом появится панель, содержащая элементы управления формы (рис. 26.1).
Ðèñ. 26.1. Окно Excel с панелью элементов
2. Кликнув на элементе Кнопка раздела Элементы управления
формы, изобразим кнопку на листе Excel так, как делали это в гла­ве 23. При этом на созданной кнопке автоматически появится
119
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
надпись Кнопка1 и откроется окно Назначить макрос объекту (ðèñ. 26.2).
Ðèñ. 26.2. Окно Excel с созданной кнопкой и окном
Назначить макрос объекту
3. Кликнем на кнопке Создать. При этом откроется окно VB
(ðèñ. 26.3).
4. Между строками заготовки программы в окне кода вставим
оператор UserForm1.Show. Программа примет вид
Sub Кнопка1_Щелчок()
UserForm1.Show
End Sub
5. Вернемся в окно Excel и кликнем вне кнопки для снятия вы-
деления.
Теперь для загрузки формы, изображенной на рис. 23.6, доста­точно
кликнуть на кнопке Кнопка1.
Для изменения надписи на кнопке надо сделать на ней правый клик и выполнить команду Изменить текст открывшегося контек-
120
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]