- •Норинский л. Ю. Программирование на 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.
- •Литература
Проект 6.
Создание простого списка и его построчное сохранение в файле. Проекту присвоено имя Pro6.
При разработке проекта создаются следующие формы:
1. Загрузочная форма Form600, которая отличается от формы Form100 проекта Pro1 только значением Caption = Создание простого списка и его построчное сохранение в файле (для метки Label601);
2. Форма frmSPISOK601 – такие же свойства как у других ЭУ; аналогична frmSPISOK201;
3. Форма frmSPISOK602 - со свойствами такими же как у других ЭУ;
4. frmDialog601 – такая же как и frmDialog201 в Pro2;
5. frmDialog601 с Caption = Указание сохраняемого или открываемого файла;
содержит следующие ЭУ:
а) Label1 c Caption = Введите полное имя файла;
б) Text1 c Text = c:\Program Files\Microsoft Visual Studio\VB98\Users\*.txt;
в) кнопки Command1 c Caption = OK и Command2 c Caption = Cansel;
6. frmMenu601 – основные свойства такие же как у других ЭУ.
Форма frmDialog602 имеет следующий вид:
Форма frmMenu601 имеет следующий вид:
Проект имеет следующий состав процедур:
1) модуль процедур общего назначения под именем Mod1
Attribute VB_Name = "Mod1"
' СОЗДАНИЕ ПРОСТОГО СПИСКА И ЕГО ПОСТРОЧНОЕ
' СОХРАНЕНИЕ В ФАЙЛЕ
Public NamFile As String 'Полное имя файла
Public nF As Integer 'Дескриптор файла - номер свободного канала
Public PS As Integer 'Признак создания списка
Public SH As String 'Строка с номером группы
Sub Main()
Dim NG As Integer 'Номер группы
Form600.Visible = False
PS = 0
nF = -1
frmMenu601.Show
End Sub
'Создание нового списка
Public Sub New_Spis()
NG = InputBox("Введите № группы")
SH = " Список группы " & Str(NG)
frmSPISOK601.Form_Load
frmDialog601.Form_Load
frmDialog601.Show vbModal
frmSPISOK601.Show
PS = 1
End Sub
'Просмотр списка
Public Sub View_Spis()
If PS <> 1 Then
MsgBox "Список не создан"
Else
frmSPISOK601.Show
End If
End Sub
'Сохранение списка в файле
Sub Save_Spis()
Dim i As Integer
Dim YN As String
On Error GoTo MERR 'Перехват ошибок
nF = FreeFile()
Open NamFile For Append As nF 'Проверка сушествования файла
If LOF(nF) > 0 Then
YN = InputBox("Файл с таким именем уже существует.Заменить его -
Y/y, или не изменять - N/n")
If YN = "Y" Or YN = "y" Then
Close #nF
Open NamFile For Output As nF
GoTo M1
Else
MsgBox "Текст не сохранен ни в каком файле. Для указания нового
имени файла выполните пункт меню СОХРАНИТЬ "
GoTo M2
End If
End If
M1: Print #nF, frmSPISOK601.txtZAGOLOVOK.Text
For i = 2 To frmSPISOK601.lstGrup.ListCount + 1
Print #nF, frmSPISOK601.lstGrup.List(i - 2)
Next i
SH = ""
frmSPISOK601.lstGrup = Clear
Unload frmSPISOK601
PS = 0
Close #nF
MsgBox "Список сохранен в файле " & NamFile
M2: Close #nF
Mod1.NamFile = ""
Exit Sub
MERR: MsgBox "Имя файла задано неверно: " & NamFile
End Sub
'Открытие файла
Sub Open_File()
Dim i As Integer
Dim st As String
On Error GoTo MERR
nF = FreeFile()
Open NamFile For Append As nF 'Проверка сушествования файла
If LOF(nF) = 0 Then
MsgBox "Файл с таким именем не существует."
PS = 0
Exit Sub
End If
Close #nF
Open NamFile For Input As nF
Line Input #nF, SH
Load frmSPISOK601
i = 2
Do Until EOF(nF)
Line Input #nF, st
frmSPISOK601.lstGrup.AddItem st
i = i + 1
Loop
frmSPISOK601.Show vbModal
frmSPISOK601.lstGrup = Clear
Unload frmSPISOK601
PS = 0
Close #nF
Exit Sub
MERR: MsgBox "Имя файла задано неверно: " & NamFile
End Sub
2) процедуры обработки событий форм
'Процедуры обработки событий формы Form600
Private Sub Command601_Click()
Mod1.Main
End Sub
Private Sub Command602_Click()
End
End Sub
'Процедуры обработки событий формы frmDialog601
Public Sub cmdCommand601_Click()
frmSPISOK601.lstGrup.AddItem _
txtFamiliy.Text & " " & _
txtName.Text & " " & _
txtOtchestvo.Text
End Sub
Public Sub cmdCommand602_Click()
txtFamiliy.Text = ""
txtName.Text = ""
txtOtchestvo.Text = ""
End Sub
Public Sub cmdCommand603_Click()
frmDialog601.Hide
End Sub
Public Sub Form_Load()
txtZAGOLOVOK_Change
End Sub
Public Sub txtZAGOLOVOK_Change()
txtZAGOLOVOK.Text = SH
End Sub
'Процедуры обработки событий формы frmDialog602
Private Sub Command1_Click()
Mod1.NamFile = frmDialog602.Text1.Text
Unload frmDialog602
End Sub
Private Sub Command2_Click()
Mod1.NamFile = ""
Unload frmDialog602
End Sub
Public Sub Form_Load()
End Sub
Private Sub mnuCancel_Click()
Unload frmSPISOK601
Unload frmMenu601
Form600.Show
End Sub
'Процедуры обработки событий формы frmMenu601
Private Sub mnuNew_Click()
Mod1.New_Spis
End Sub
Private Sub mnuOpen_Click()
Dim st As String
Load frmDialog602
frmDialog602.Show vbModal
If Mod1.NamFile = "" Then
MsgBox "Имя файла не указано"
Else
Mod1.Open_File
End If
End Sub
Private Sub mnuSave_Click()
Load frmDialog602
frmDialog602.Show vbModal
If Mod1.PS = 0 Then
MsgBox "Список не создан"
ElseIf Mod1.NamFile = "" Then
MsgBox "Имя файла не указано"
Else
Mod1.Save_Spis
End If
End Sub
Private Sub mnuView_Click()
Mod1.View_Spis
End Sub
'Процедуры обработки событий формы frmSPISOK601
Private Sub cmdCommand601_Click()
frmSPISOK601.Visible = False
End Sub
Public Sub Form_Load()
txtZAGOLOVOK_Change
End Sub
Private Sub Label1_Click()
End Sub
Public Sub txtZAGOLOVOK_Change()
txtZAGOLOVOK.Text = Mod1.SH
End Sub