- •1 Знакомство с Visual Basic
- •1.1 Первое знакомство
- •1.1.1 Запуск VB
- •1.1.2 Выход из VB
- •1.1.3 Практическое задание
- •1.2 Файлы проекта
- •1.3 Шаги создания проекта на VB
- •1.3.1 Планирование действий, выполняемых приложением
- •1.3.2 Планирование пользовательского интерфейса
- •1.3.3 Установка свойств
- •1.3.4 Написание текста программы
- •1.3.5 Отладка приложения
- •1.4 Первый проект
- •1.4.1 Основные сведения об исполнении приложений в операционной системе Windows
- •1.4.2 Разработка проекта
- •1.4.3 Условие задачи
- •1.4.4 Элементы управления
- •1.4.4.1 Вставка надписей
- •1.2.1 Разработка программы
- •1.3 Усовершенствование проекта
- •1.4 Компиляция проекта
- •1.5 Отображение окон в среде VB
- •1.6 Вопросы для контроля
- •2 Переменные и константы
- •2.1 Основные типы данных VB
- •2.2 Структура проекта
- •2.3 Объявление переменных и констант
- •2.4 Преобразование и совместимость типов
- •2.5 Разработка проекта
- •2.6 Вопросы для контроля
- •3 Ввод и вывод значений переменных
- •3.1 Ввод данных с помощью функции InputBox
- •3.2 Вывод данных с помощью инструкции Print
- •3.3 Вывод данных с помощью функции MsgBox
- •3.4 Вопросы для контроля
- •4 Выражения в VB
- •4.1 Арифметические операции
- •4.1.1 Сложение
- •4.1.2 Вычитание
- •4.1.3 Умножение
- •4.1.4 Деление
- •4.1.5 Возведение в степень
- •4.1.6 Целочисленное деление
- •4.1.7 Остаток от деления
- •4.1.8 Унарный минус
- •4.2 Логические операции
- •4.2.1 Логическое И
- •4.2.2 Логическое ИЛИ
- •4.2.3 Логическое НЕ
- •4.2.4 Операции отношения
- •4.3 Символьные операции
- •4.4 Синтаксис выражений
- •4.5 Явное преобразование типов данных
- •4.6 Задание для самостоятельной работы
- •4.7 Вопросы для контроля
- •5 Конструкции VB, реализующие базовые алгоритмические структуры
- •5.1 Базовые структуры алгоритмов
- •5.1.1 Следование (композиция)
- •5.1.2 Ветвление
- •5.1.3 Цикл
- •5.2 Конструкция If..Then
- •5.3 Конструкция Select … Case
- •5.4 Конструкция Do…Loop
- •5.5 Цикл со счетчиком. Конструкция For…Next
- •5.6 Задание для самостоятельной работы
- •6 Массивы в VB
- •7 Алгоритмы сортировки
- •7.1 Алгоритм сортировки выборкой
- •7.2 Алгоритм сортировки вставкой
- •7.3 Алгоритм пузырьковой сортировки
- •7.4 Алгоритм быстрой сортировки
- •7.5 Алгоритм сортировки слиянием
- •7.6 Алгоритм сортировки подсчетом
- •8 Обработка строк в VB
- •9 Чтение и сохранение данных в файлы, выполнение операций с файлами в VB
- •10 Приложение: Коды ошибок VB
- •11 Описание событий VB
- •12 Приложение: Таблица кодов ASCII
- •13 Приложение: Виртуальные коды клавиш
- •14 Приложение: Функции VB (алфавитный перечень)
- •14.1.2 Array
- •14.3.1 Функции конвертирования типов
- •14.3.1.1 CBool
- •14.3.1.2 CByte
- •14.3.1.3 CCur
- •14.3.1.4 CDate
- •14.3.1.5 CDbl
- •14.3.1.6 CInt
- •14.3.1.7 CLng
- •14.3.1.8 CSng
- •14.3.1.9 CStr
- •14.3.1.10 CVar
- •14.3.4 Command
- •14.3.5 CreateObject
- •14.3.6 CurDir
- •14.3.7 CVErr
- •14.4.1 Date
- •14.4.2 DateAdd
- •14.4.3 DateDiff
- •14.4.4 DatePart
- •14.4.5 DateSerial
- •14.4.6 DateValue
- •14.4.9 DoEvents
- •14.5.1 Environ
- •14.5.3 Error
- •14.6.1 FileAttr
- •14.6.2 FileDateTime
- •14.6.3 FileLen
- •14.6.5 Format
- •14.6.6 FreeFile
- •14.7.1 GetAllSettings
- •14.7.2 GetAttr
- •14.7.3 object.GetAutoServerSettings
- •14.7.4 GetObject
- •14.7.5 GetSetting
- •14.8.2 Hour
- •14.9.2 Input
- •14.9.3 InputBox
- •14.9.4 InStr
- •14.9.6 IsMissing
- •14.9.7 IsNull
- •14.9.8 IsNumeric
- •14.9.9 IsObject
- •14.11.1 LBound
- •14.11.2 LCase
- •14.11.3 Left
- •14.11.5 LoadPicture
- •14.11.9 LTrim
- •14.12.2 Minute
- •14.12.3 Month
- •14.12.4 MsgBox
- •14.14.2 QBColor
- •14.15.1 SaveSetting
- •14.15.2 Seek
- •14.15.4 Shell
- •14.15.9 StrComp
- •14.15.10 StrConv
- •14.15.11 String
- •14.15.12 Switch
- •14.16.3 Time
- •14.16.4 Timer
- •14.16.5 TimeSerial
- •14.16.6 TimeValue
- •14.16.7 Trim
- •14.16.8 TypeName
- •14.17.1 UBound
- •14.17.2 UCase
- •14.18.2 VarType
- •14.19.1 Weekday
- •14.20.1 Year
- •15 Приложение: Функции VB (по назначению)
- •15.1 Арифметические
- •15.2 Строковые (символьные)
- •15.3 Логические
- •15.4 Дата и время
- •15.5 Преобразование и конвертирование значений
- •15.5.2 Функции конвертирования типов
- •15.5.2.1 CBool
- •15.5.2.2 CByte
- •15.5.2.3 CCur
- •15.5.2.4 CDate
- •15.5.2.5 CDbl
- •15.5.2.6 CInt
- •15.5.2.7 CLng
- •15.5.2.8 CSng
- •15.5.2.9 CStr
- •15.5.2.10 CVar
- •15.6 Массивы
- •15.7 Работа с файлами и ОС
- •15.7.17 SaveSetting
- •16 Приложение: Дополнительные материалы по вычислению некоторых выражений
- •17 Приложение: Операторы VB
- •17.1.1 AppActivate
- •17.2.1 Beep
- •17.3.1 Call
- •17.3.2 ChDir
- •17.3.3 ChDrive
- •17.3.4 Close
- •17.3.5 Const
- •17.4.1 Date
- •17.5 Def<Type>
- •17.5.1 DeleteSetting
- •17.5.3 Do... Loop
- •17.6.1 End [<Конструкция>]
- •17.6.2 Enum
- •17.6.3 Erase
- •17.6.4 Error
- •17.6.5 Event
- •17.6.6 Exit <Кострукция>
- •17.7.1 FileCopy
- •17.7.2 For Each...Next
- •17.7.3 For...Next
- •17.7.4 Function
- •17.8.2 GoSub
- •17.8.3 GoTo
- •17.9.2 Implements
- •17.9.3 Input
- •17.10.1 Kill
- •17.11.2 Like
- •17.11.3 Line Input
- •17.11.4 Load
- •17.11.5 Lock
- •17.11.6 LSet
- •17.12.2 MkDir
- •17.13.1 Name
- •17.14.1 On Error
- •17.14.2 Open
- •17.14.3 Option Base
- •17.14.4 Option Compare
- •17.14.5 Option Explicit
- •17.14.6 Option Private
- •17.15.1 Print
- •17.15.2 Private
- •17.15.3 Property Get
- •17.15.5 Property Set
- •17.15.6 Public
- •17.16.1 RaiseEvent
- •17.16.2 Randomize
- •17.16.3 ReDim
- •17.16.5 Reset
- •17.16.6 Resume
- •17.16.7 RmDir
- •17.16.8 RSet
- •17.17.1 SavePicture
- •17.17.2 SaveSetting
- •17.17.3 Seek
- •17.17.4 Select Case
- •17.17.5 SendKeys
- •17.17.7 SetAttr
- •17.17.8 Static
- •17.17.9 Stop
- •17.18.1 Time
- •17.18.2 Type
- •17.19.1 Unload
- •17.20.2 Width
- •17.20.3 With
- •17.20.4 Write
17.17S
17.17.1SavePicture
SavePicture picture, stringexpression - рнфпЯмюдс зжнапЯедмзд, мЯфнгюшддрю б гЯммъи лнлдмс б рбнирсбЯф Picture зкз Image нащдйсЯ X б уЯик.
Опзлдп:
' Поместите на форму PictureBox и загрузите туда любую картинку
Private Sub Form_Click()
AutoRedraw = True ' Включаем перерисовку окна
Picture1.AutoRedraw = True
Form1.ScaleMode = vbPixels ' Ставим вид масштаба в пиксели
Picture1.ScaleMode = vbPixels
Form1.PaintPicture Picture1, 0, 0, 100, 100, 0, 0, 100, 100, vbSrcCopy Form1.Refresh
MsgBox "Нажмите OK для сохранения"
SavePicture Image, "C:\TEST.BMP" ' Сохраняем картинку
End Sub
17.17.2SaveSetting
SaveSetting appname, section, key, setting - ЖЯозръбЯдс мЯрспнийт б пддрсп.
МЯонлмэ, цсн утмйхзю DeleteSetting тгЯкюдс мЯрспнийт, Я утмйхзю GetSetting
жЯвптеЯдс. МЯрспнийз жЯозръбЯэсрю он Ягпдрт:
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
Б ьснл йкэцд рнжгЯясрю дшя нгзм йкэц р мЯжбЯмздл appname.
Опзлдп:
' Сохраняем положение левой координаты формы в реестр
SaveSetting "MyApp", "Startup", "Left", Form1.Left
17.17.3Seek
Seek [#]filenumber, position - ТрсЯмЯбкзбЯдс онжзхзэ гкю цсдмзю/жЯозрз б
уЯикд, нсйпъсъл нодпЯснпнл Open.
Опзлдп:
Type Record ' Определѐнный пользователем тип
ID As Integer
Name As String * 20
End Type
'Для файлов, открытых для произвольного доступа,
'Seek устанавливает следующую запись
Dim MyRecord As Record, MaxSize, RecordNumber ' Объявляем переменные
' Открываем файл для произвольного доступа
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord) ' Получаем количество записей в файле
' Цикл читает записи с конца до начала
For RecordNumber = MaxSize To 1 Step - 1
Seek #1, RecordNumber ' Устанавливаем позицию записи
Get #1, , MyRecord ' Читаем запись
Next RecordNumber
Close #1 ' Закрываем файл
'Для файлов, окрытых не для произвольного доступа,
'Seek устанавливает позицию с точностью до байта.
Dim MaxSize, NextChar, MyChar
Open "TESTFILE" For Input As #1 ' Открываем файл
MaxSize = LOF(1) ' Получаем размер файла в байтах
' Цикл читает по букве с конца файла до начала
For NextChar = MaxSize To 1 Step -1
Seek #1, NextChar ' Устанавливаем позицию
MyChar = Input(1, #1) ' Читаем символ
Next NextChar
Close #1 ' Закрываем файл
17.17.4Select Case
Select Case – йнмрсптйхзю рктезс гкю пдЯкзжЯхзз рсптйстпъ бъанп
17.17.5SendKeys
SendKeys string[, wait] - онръкЯдс нгмн зкз анкдд мЯеЯсзи мЯ йкЯбзчт б Яйсзбмнд нймн. Бря опнзрфнгзс снцмн сЯй ед, йЯй атгсн бря аъкн ббдгдмн р йкЯбзЯстпъ.
Опзлдп:
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' Запускаем калькулятор
AppActivate ReturnValue ' Активизируем калькулятор
For I = 1 To 100 ' Циклимся 100 раз
SendKeys I & "{+}", True ' Посылаем нажатие на клавишу в калькулятор
Next I ' Добавляем к значению в калькуляторе переменную I
SendKeys "=", True ' Нажимаем на знак равенства
SendKeys "%{F4}", True ' Посылаем Alt+F4 для закрытия калькулятора
17.17.6Set
Set objectvar = {[New] objectexpression | Nothing} - опзрбЯзбЯдс одпдлдммни
рръкйт мЯ нащдйс.
Опзлдп:
Dim YourObject, MyObject, MyStr
Set MyObject = YourObject ' Присваиваем ссылку
' MyObject иYourObject ссылаются на один и тот же объект
YourObject.Text = "Hello World" ' Инициализируем свойство
MyStr = MyObject.Text ' Возвратит "Hello World". ' Удаляем ссылку на объект
Set MyObject = Nothing ' Освобождаем объект
17.17.7SetAttr
SetAttr pathname, attributes - трсЯмЯбкзбЯдс Яспзатсъ уЯикЯ pathname.
Опзлдп:
SetAttr "TESTFILE", vbHidden
' Теперь файл скрытый
SetAttr "TESTFILE", vbHidden + vbReadOnly
' Теперь он и скрытый и только для чтения
17.17.8Static
Static varname[([subscripts])] [As [New] type] [, varname[([subscripts])] [As
[New] type]]...
Нащюбкюдс одпдлдммтэ. Одпдлдммъд Static нащюбкюэсрю бмтспз опнхдгтп з
утмйхзи з бмд зф мдгнрстомъ, мн б нскзцзд нс наъцмъф кнйЯкымъф одпдлдммъф нмз мд змзхзЯкзжзптэсрю опз бфнгд б опнхдгтпт зкз утмйхзэ,
вгд нмз нащюбкдмъ.
Опзлдп:
' Определение функции
Function KeepTotal(Number)
' Только переменная Accumulate сохраняет своѐ значение между вызовами
Static Accumulate
Accumulate = Accumulate + Number
KeepTotal = Accumulate
End Function
' Определение статической функции
Static Function MyFunction(Arg1, Arg2, Arg3)
' Все локальные переменные сохраняют свои значения между вызовами
Accumulate = Arg1 + Arg2 + Arg3
Half = Accumulate / 2
MyFunction = Half
End Function
17.17.9Stop
Stop - Р онлншыэ ьснвн нодпЯснпЯ лнемн онрсЯбзсы апзйонзмс б опнвпЯллд.
Дркз ед опнвпЯллт рйнлозкзпнбЯсы р ьсзл нодпЯснпнл з жЯотрсзсы, сн опз бъонкмдмзз ьснвн нодпЯснпЯ опнвпЯллЯ бъгЯрс нчзайт. Б нскзцзд нс нодпЯснпЯ End, нодпЯснп Stop мд жЯйпъбЯдс нсйпъсъд уЯикъ з мд нцзшЯдс одпдлдммъд.
Опзлдп:
Dim I
For I = 1 To 10 ' Запускаем цикл
Debug.Print I ' Печатаем I в Debug
Stop ' Останавливаемся на каждой итерации
Next I
17.17.10Sub
[Private | Public | Friend] [Static] Sub name [(arglist)]