
- •Норинский л. Ю. Программирование на Visual Basic и Visual Basic for Applications (Конспект лекций)
- •Введение
- •1. Основы языка программирования visual Basic
- •1.1. Общие сведения о Visual Basic
- •1.2. Среда vb, инструментальные средства. Разработка проектов
- •1.3. Типы данных. Константы и переменные
- •1.4. Операции
- •1.5. Ввод и вывод данных
- •1.6. Управляющие операторы
- •1.7. Массивы
- •1.8. Примеры программ работы с числами
- •1.9. Обработка строк. Примеры
- •1.10. Математические вычисления. Другие операторы и функции
- •1.11. Процедуры и функции. Примеры
- •1.12. Работа с файлами
- •1.13. Обработка ошибок
- •2. Разработка интерфейса
- •2.1. Элементы управления
- •2.1.1. Общие сведения
- •2.1.2. Встроенные эу
- •2.1.3. Внедренные и связанные эу
- •2.2. Разработка форм
- •2.3. Создание и использование меню
- •2.4. Окна диалога
- •3. Классовое общество
- •3.1. Классы-формы
- •3.2. Модули классов и стандартные модули
- •3.3. Управление событиями объекта
- •3.4. Семейства и массивы объектов
- •4. Vba. Макропрограммирование
- •4.1. Общие сведения о vba
- •4.2. Работа в Excel с помощью vba
- •4.2.1. Объекты Application и семейство Workbooks
- •4.2.2. Объекты Worksheet и Worksheets
- •4.2.3. Объект Range
- •4.3. Макропрограммирование
- •4.4. Создание макросов в Word
- •4.5. Создание макросов в Excel
- •4.6. Пример макроса
- •Приложения п1. Некоторые виды ошибок
- •П2. Свойства элементов управления
- •П3. Методы работы с элементами управления
- •П4. Примеры проектов vb Проект 1.
- •Проект 2.
- •Проект 3.
- •Проект 4.
- •Проект 5.
- •Проект 6.
- •Проект 8.
- •Проект 11.
- •П5. Пример ПроектА vba.
- •Литература
2.1.2. Встроенные эу
CheckBox - флажок (галка) - используется для предоставления выбора ДА / НЕТ или TRUE / FALSE. Свойство Value указывает, флажок выбран (0, или константа vbUnchecked) или не выбран (1, или vbChecked), или деактивирован (тускло-серый цвет 2, vbGrayed). Первоначально по умолчанию устанавливается в 0. Для установки значения используются процедуры vbChecked или Form_Initialize формы.
При щелчке на флажке инициируется событие Click. Если щелкнуть дважды, каждый щелчек обрабатывается отдельно (флажок не поддерживает событие DoubleClick). Это событие инициируется также, когда с помощью клавиатуры (Tab) на флажок установлен фокус (стал текущим) и нажата клавиша пробела.
OptionButton – переключатель, представляет собой кружок с точкой или без нее, предназначен для установки только одной опции из группы. Для формирования новой группы переключателей их нужно поместить в отдельный элемент-контейнер, например Frame. Основным событием является Click. С помощью свойства Value можно определить состояние переключателя. Оно имеет два значения True и False.
TextBox – текстовое поле, предназначено для ввода данных. Событие Change вызывается при изменении содержимого текстового поля, происходит каждый раз при вводе, удалении или изменении каждого символа. Событие LostFocus вызывается после того, как текстовое поле становится неактивным (после передачи фокуса другому элементу). Если поле является единственным элементом в форме, оно не может потерять фокус. Для удаления или инициализации содержимого текстового поля используется событие GotFocus. Свойство Text содержит отображаемый в поле текст:
Private Sub txtInput_LostFocus()
strText$ = txtInput.Text
End Sub
В данном примере при возникновении события LostFocus переменной strText$ присваивается значение txtInput.Text, т. е. Текст поля.
Для ввода нескольких строк (многострочное поле) надо установить свойство MultiLine. Свойство ScrollBars позволяет установить полосы прокрутки.
Текст можно редактировать, но установив Locked в True, будет только для чтения.
Свойство Text содержит введенный текст объемом до 2К и до 32К при значении True свойства MultiLine.
Свойство SelStart определяет начальную позицию выделения текста в символах; свойство SelLength содержит количество выделенных символов. С помощью свойства SelText можно прочитать или изменить выделенный текст:
Private Sub txtInput_GotFocus() ‘выделение всего текста после получения полем фокуса
txtInput. SelStart = 0
txtInput. SelLength = Len( txtInput.Text)
End Sub
Все ЭУ, которые разрешают ввод символов, имеют свойство Text, а ЭУ, предназначенные только для отображения текста, - только свойство Caption.
ListBox - простой список. Могут быть стандартные и связанные списки.
Добавление элемента в список:
ListBox.AddItem =элемент[,индекс]
где ListBox - имя списка, элемент - строковое выражение, добавляемое к списку (если это литерная константа, то она должна быть в кавычках), индекс - позиция в списке - куда (если индекс отсутствует, то элемент добавляется в конец списка).
Для ввода в алфавитном порядке установить в TRUE свойство Sorted.
Элемент в список может быть добавлен при разработке установкой свойства List в окне свойств. Если выбрать строку List и щелкнуть стрелку "вниз", откроется окно куда можно вводить элементы списка. Для перехода между значениями используется CTRL+ENTER.
Для удаления элемента списка используется метод RemoveItem
ListBox.RemoveItem индекс
Для удаления всех вхождений Clear: List1.Clear.
Для получения значения выбранного элемента свойство Text (выводит в отдельное текстовое поле): Text1.Text = "Выбранное значение" & List1.Text
Доступ ко всем элементам списка свойство List, содержит массив, каждый элемент которого соответсвует элементу списка: ListBox.List(индекс), где ListBox - имя списка, индекс - индекс элемента; например, оператор Text1.Text = List.List(2) выводит в текстовом поле Text1 3-й элемент (индексация начинается с нуля).
Для получения позиции элемента свойство ListIndex, возвращает индекс выбранного элемента.
Свойство Columns специфицирует количество столбцов: 0 - один столбец с вертикальной прокруткой, 1 - то же с горизонтальной, >1- многостолбцовый с горизонтальной прокруткой.
ComboBox - комбинированный блок - объединяет функции текстового поля и простого списка; позволяет выбирать или вводить данные или, печатая текст в окне ввода, или, выбирая элемент из списка. Если число элементов списка превышает размер окна, автоматически выводятся полосы прокрутки. Комбинированный блок содержит поле редактирования (стили 0, 1), что позволяет ввести новое значение; стили 0 и 2 позволяют создавать раскрывающийся блок (список). Может быть стандартным или связанным. Для добавления элементов к блоку используется метод AddItem: ComboBox.AddItem ЭЛЕМЕНТ[, индекс], где ComboBox - имя списка или комбинированного блока, ЭЛЕМЕНТ - строковое выражение, добавляемое к списку, если требуется литерная константа, то она заключается в кавычки, индекс - позиция в списке, в которую нужно вставить новый элемент (0 - 1-й элемент); если индекса нет, то элемент добавляется в конец списка (или в порядке сортировки).
Для ввода в алфавитном порядке установить в TRUE свойство Sorted.
Элементы в список можно добавлять также во время разработки, устанавливая свойство List в окне свойств. Если выбрать строку List и щелкнуть стрелку "вниз", откроется окно куда можно вводить элементы списка. Для перехода к новой строке используется CTRL+ENTER. Добавление выполняется только в конец списка.
Для добавления элемента к списку в определенной позиции, надо после значения нового элемента указать через запятую индекс.
Удаление элементаЖ ComboBox.RemoveItem индекс.
Удаление всех вхождений: Combo1.Сlear.
Самый простой способ получить значение элемента - использовать свойство Text, например Comb1.Text дает значение элемента.
Свойство List дает доступ ко всем элементам списка: Combobox.List(индекс), где Combobox - ссылка на комбинированный блок.
Позиция элемента определяется с помощью свойства ListIndeeex, которое возвращает индекс выбранного элемента. Свойство NewIndex позволяет отслеживать индекс последнего добавленного элемента. Для получения количества элементов свойство ListCount.
CommandButton - командная (клавишная) кнопка - используется для инициирования, прерывания или завершения процессов; при щелчке на кнопке вызываются команды, внесенные в процедуру события Click кнопки. Свойство Caption для изменения текста на кнопке, а также для создания акселератора (клавиатурная комбинация быстрого доступа) - перед литерой в значении свойства поставить &, она станет подчеркнутой, тогда для выбора кнопки ввести Alt+литера. Свойство Font для шрифта.
При выборе кнопки ее свойство Value устанавливается в True, его можно генерировать в командном коде, например cmdClose.Value=True.
Вид кнопки можно изменить свойствами Style, Picture.
Data - для создания приложений доступа к базе данных без программного манипулирования данными. Для использования надо поместить в форму и, как минимум, назначить свойства DataName и RecordSource.
Для управления файловой системой можно использовать стандартные окна, создаваемые ЭУ CommonDialog, либо использовать комбинацию ЭУ DriveListBox (список дисководов), DirListBox (список каталогов) и FileBox (список файлов). Свойства Archive, Normal, System, Hidden, ReadOnly используются для указания видов выводимых на экран файлов (значение True). Для установки атрибутов их использовать нельзя; для этого применяется оператор SetAttr.
Frame - кадр - для создания идентифицируемых групп других ЭУ. Как правило, используется пассивно, в основном по своему прямому назначению; наиболее вероятно изменение свойств Name, Caption, Font. Для выбора нескольких элементов кадра надо при нажатой CTRL мышью растянуть рамку вокруг элементов (аналогично для формы).
Image - образ - для ввода содержимого графических файлов следующих форматов: растровый рисунок (.bmp, .dib - образ из точек), пиктограмма (.ico), метафайл (.wmf, .emf - определяет образ, как кодированные строки и фигуры), JPEG (.jpg), GIF (.gif).
Во время разработки изображение загружается выбором свойства Picture из окна свойств ЭУ, или в период выполнения этим же свойством и методом LoadPicture:
Image1.Picture = LoadPicture("c:\Windows\Winlogo.bmp").
Для очистки графики из ЭУ применяется метод LoadPicture без указания имени файла: Image1.Picture = LoadPicture.
Для добавления графических данных из другого приложения можно скопировать их в буфер обмена и, выбрав ЭУ ОБРАЗ, нажать CTRL+V или выбрать Edit/Past.
Свойство Stretch определяет, будут ли изменяться размеры графики при изменении размеров ЭУ.
Label - метка - для размещения в форме статического текста, который не может редактироваться пользователем. Свойство Caption для изменения текста; свойство Alignment для выравнивания текста.
Line - линия - для создания логических разделов или элементов оформления в форме; для установки цвета и стиля свойства BorderColor и BorderStyle; стили: Transparent - прозрачная линия, Solid - сплошная, Dash - из тире, Dot - из точек и др.
PictureBox - изображение - контейнер для других ЭУ, для вывода на экран графики, вывода из графических методов и вывода текста из метода Print.
Изображения могут загружаться в ЭУ во время разработки установкой свойства Pictute в окне свойств, или в период выполнения этим свойством и методом LoadPicture. Можно использовать также буфер обмена.
Используя методы Circle, Line, Point и установив свойство AutoRedraw (True), можно вывести в изображение круг, линию, точку.
Используя метод Print и установив свойство AutoRedraw (True), на поле изображения можно вывести текст
Picture1.Print "Visual Basic"
Shape - фигура - создание стандартных фигур в формах, кадрах или изображениях: прямоугольник 0 (Rectangle), квадрат 1(Square), овал 2(Oval), круг 3(Circle), округленный прямоугольник 4(Rounded Rectangle), округленный квадрат 5(Rounded Square).
Для стиля и окантовки свойства FillStyle BorderStyle.
Timer - таймер - отслеживает время системного или программируемого. Свойство Enabled при значении True таймер начинает работу при запуске формы; Interval - количество миллисекунд между событиями таймера.