Ви є тут

VBA 1

Главное меню

Главное меню в верхней части окна Visual Basic, рис. 1.2. обеспечивает доступ к IDE - Integrated Development Environment. Среда разработки может иметь многодокументный (MDI - Multiple Document Interface) или простой (SDI - Simple DI) вид в зависимости от установки соответствующего флажка (Инструменты \to Опции \to Дополнительно \to Среда разработки SDI).

Окно Visual Basic

увеличить изображение
Рис. 1.2. Окно Visual Basic

Ниже перечислены основные меню. Меню Файл служит для работы с файлами, составляющими создаваемое приложение, команды меню можно выполнить также из контекстного меню после щелчка правой клавишей мыши в окне проекта (оно находится справа). Меню Правка обеспечивает, среди прочего, операции вырезания, копирования, вставки, применимые также и к составляющим проект управляющим элементам (панель управляющих элементов находится в окне слева), команда Найти обеспечивает поиск в IDE. Меню Вид обеспечивает вывод инструментов и компонентов. С использованием меню Проект добавляются/удаляются элементы создаваемого приложения: формы, стандартные модули, модули класса и т.д., многие команды меню можно выполнить с использованием кнопок панели инструментов (см. ниже) или в окне проекта с использованием контекстного меню. Меню Формат используется для определения вида и положения составляющих проекта. Меню Отладка и Запуск обеспечивают старт, остановку приложения, операции отладки, прерывание/возобновление выполнения программы. Меню Инструменты обеспечивает добавление процедур и задание значений их атрибутов, вызов редактора меню, установку значений параметров IDE. МенюДобавления - это меню вспомогательных программ-надстроек (не входящих в стандартную конфигурацию IDE), здесь можно использовать Менеджер Дополнений (Add-In Manager), служащий для выбора других надстроек, стартовать ActiveX Control Interface Wizard, инструмент для работ с базами данных - Визуальный Менеджер Данных (Visual Data Manager), можно стартовать Мастера класcов (Class Builder Utility:) - утилиту для работы с классами.

Меню Окна содержит список окон IDE; можно сделать переход в окно, изменить расположение окон IDE, можно упорядочить значки свeрнутых форм. Меню Помощь предоставляет справочные данные.

Панели инструментов

Имеется несколько панелей инструментов, главная среди которых - Стандартная. Кнопки панели Стандартная позволяют выполнять действия/вывести окна, панели:

  • создать проект типа Standard EXE,
  • Project Wizard (установка переключателей для работы с Project Wizard проводится в окне Инструменты \to Опции \to Среда),
  • добавить форму/модуль и т.д. в создаваемое приложение,
  • редактор меню, обеспечивающий создание меню, расположенного в верхней части формы, редактирование меню, создание всплывающих меню,
  • открыть существующий проект, сохранить проект,
  • вырезать (вырезанный объект попадает в буфер), копировать, вставить в требуемую позицию курсора,
  • найти,
  • отменить/восстановить последнее действие пользователя,
  • стартовать, прервать (например, в процессе отладки), остановить выполнение программы,
  • проводник проекта (вывести окно с составляющими проекта, сгруппированными по категориям), окно свойств (здесь можно задать свойства объекта), окно размещения (макета) формы для анализа вида формы в процессе выполнения,
  • проводник объектов для поиска и анализа сотен объектов,
  • панель элементов управления (некоторое количество объектов находится по умолчанию на этой панели, остальные нужно выводить на панель специальным образом),
  • окно просмотра данных (Data View Window).

Панель элементов управления

Для cоздания приложения используются элементы управления - текстовые поля, командные кнопки, поля списков и т.д., они расположены на панели (ToolBox), рис. 1.2., слева. Функции отдельных элементов описаны ниже. После двойного щелчка на пиктограмме элемента управления в центр формы выводится выбранный элемент стандартного размера; после одинарного щелчка на пиктограмме элемента управления на панели c помощью курсора мыши можно установить требуемый размер элемента на форме.

Форма

Форма, рис. 1.2., в центре - основной контейнер для элементов управления является главным элементом создаваемого приложения. Маркеры, появляющиеся на краях формы после щелчка на ней, позволяют с помощью курсора мыши изменить ее размеры.

Окно свойств

Форма, управляющие элементы являются объектами, имеющими набор свойств и полей, отображаемых в окне, рис. 1.2., справа, внизу; при этом объект на форме/форма должен быть выделен. Работать со свойствами объекта можно также, выбрав объект из раскрывающегося списка в верхней части окна свойств. Свойства задаются или в окне свойств в процессе разработки приложения (режим конструирования), или в программном коде (при этом происходит изменение свойств объекта во время выполнения программы). После щелчка правой клавишей мыши на названии свойства в окне свойств выводится контекстное меню с кратким описанием свойства. Распространeнными являютcя два строковых свойства Name и Caption. Name определяет имя объекта, используемое в приложении, Caption - его имя, отображаемое для пользователя. Свойства и поля обладают диапазоном возможных значений и имеют тип (логические, с фиксированным набором значений, строковые, шестнадцатеричные, файловые, размера). При работе со свойствами используется специфический синтаксис. Имеются так называемые свойства "по умолчанию", которые подразумеваются в том случае, если в коде не указано свойство; например, две записи, данные ниже равноценны: Text.Text = "Здравствуйте !" и Text = "Здравствуйте !".

Окно решения

Составляющие решения, сгруппированные по категориям, отображаются в окне решения, рис. 1.2., справа, вверху. Для добавления нового элемента в проект используйте команду Проект \to Добавить, для удаления - маркируйте имя элемента в окне и используйте команду Проект \to Удалить (можно использовать соответствующие кнопки панели инструментов и контекстное меню окна). При работе одновременно с двумя (несколькими) проектами с использованием контекстного меню можно установить второй проект "как стартовый", предварительно нужно маркировать имя проекта, затем в контекстном меню выбрать соответствующую команду.

Код размещен в нескольких независимых файлах. Для сохранения проекта используйте: Файл \to Сохранить Form1 Как: и далее: Файл \to Сохранить Проект Как :. При последующих сохранениях можно использовать соответствующую кнопку панели Стандартная. Проект может содержать составляющие: файл формы - *.FRM, файл формы с объектами - .FRX, файл проекта - *.VBP, файл модyля - *.BAS, файл модуля класса - *.CLS, файлы дополнительных элементов управления и т.д.

Одним из преимуществ Visual Basic является возможность использования элементов управления сторонних разработчиков - Custom Controls. Соответствующим стандартом является технология ActiveX.

Окно макета формы

Сюда, рис. 1.2. внизу, в центре, выводится для оценки занятых/свободных частей экрана изображение текущей формы, еe вид и положение во время выполнения.

Проводник объектов (Object Browser)

При программировании можно использовать множество объектов. Окно просмотра объектов рис. 1.2. слева в центре, выводится командой Вид \to Проводник объектов, клавишей F2, или используется кнопка Проводник объектов панели инструментов. Слева в окне перечислены классы и объекты. В окне справа отображаются свойства, события и методы (см. ниже) выбранного объекта; имеется возможность просмотреть их краткое описание, можно провести поиск конкретного объекта, свойства, метода или события; дан список соответствующих библиотек.

Окно кода

Программный код - это последовательность лексем, записанных в соответствии с принятым синтаксисом. Лексема - это единица текста программы, которая не может быть в дальнейшем разбита, она имеет определенный смысл для компилятора. Используются шесть классов лексем:

  • свободно выбираемые и используемые идентификаторы,
  • зарезервированные (служебные) слова,
  • константы,
  • строки (строковые константы),
  • операторы (знаки операторов),
  • знаки пунктуации (разделители).

Окно кода можно открыть двойным щелчком на элементе управления/форме. Код состоит из процедур и, как правило, связан с определенными элементами управления. Перечень элементов управления, используемых в данное время в форме, находится в выпадающем списке вверху слева в окне кода, рис. 1.2. и для работы с кодом конкретного элемента можно также сделать щелчок на требуемом элементе списка. Панель инструментов Редактировать ускоряет работу с кодом, кроме обычных операций обеспечивается автоматизация кодирования - используется всплывающая подсказка (отображается синтаксис вводимого оператора, функции, метода, процедуры), Complete Word - окно, обеспечивающее завершение написания ключевых слов и т.д.

Изменение IDE

Для изменения параметров среды разработки нужно перейти в окно Опции, см. рис. 1.3.

Опции

Рис. 1.3. Опции

Окно содержит несколько регистров: регистр Редактор содержит 2 группы флажков: обеспечивающих непосредственное влияние на работу редактора и флажки для разрешения перемещений текста/отображения процедур/вывода разделителей текста процедур. Регистр Формат Редактора позволяет выбрать цвет/шрифт. Регистр Главное служит для настройки элементов IDE: обработки ошибок, компиляции, вывода линий сетки на формах, отображения подсказки для управляющих элементов, одновременного сворачивания окон. Регистр Docking определяет закрепление окон IDE в позиции экрана. Регистр Среда обеспечивает решение вопросов: сохранения проекта, наличия окна Project Wizard и т.д. Регистр Дополнительно обеспечивает возможность загрузки проекта в фоновом режиме, выбор интерфейса IDE: MDI/SDI, выбор из списка внешнего редактора Web-страниц и так далее.

Начальные сведения о программировании

Синтаксис; элементарные сведения

Синтаксис - правила написания программ; они будут, ввиду их многоообразия, рассматриваться последовательно по мере изложения материала.

Инструкция Visual Basic - это синтаксически завершeнная конструкция, реализующая действие, описание или присваивание значения/выражения переменной/константе. Как правило, инструкция занимает отдельную строку, однако допускается использование символа разделителя строки и символа разделителя инструкций. Разделители строк позволяют разбить длинные строки на несколько строк, символ разделителя строк: _. Символ двоеточия (:) используется для размещения в одной строке нескольких инструкций. Пример строки кода: а = txt1 демонстрирует оператор присваивания. Пример: Print "A Happy New Millennium !" демонстрирует синтаксис команды Print (напечатать на форме текст, заключeнный в кавычки).

Комментарий служит для пояснения фрагментов кода. Символ ' является символом комментария (можно использовать также ключевое слово Rem), пример:Dim i As Integer ' oписание переменной

Если после набора строки текст выделяется красным цветом, то следует исправить ошибку.

Событийно-управляемое объектно-базирующееся программирование; образование имени процедуры обработки событий

Основой разработки приложений является использование событий. Возникающие в процессе работы действия вызывают события, передаваемые Windows в виде сообщений в приложения. Visual Basic перехватывает сообщения, передаeт их соответствующему объекту, после этого вызывается соответствующее событие. Программный код выполняется, как правило, при наличии события; пример события - щелчок клавишей мыши на командной кнопке.

Этот язык программирования является лишь объектно-базирующимся, не доходящим до уровня объектно-ориентированного языка. Объект - это комбинация кода и данных, которая может рассматриваться как единое целое. Почти всe то, с чем работает пользователь, является объектами (командная кнопка, команда меню, база данных и т.д.). Класс - шаблон объекта, объект определяется классом. Одному классу принадлежат объекты с одинаковыми параметрами (свойства, поля, события, методы). Метод - это процедура, определeнная внутри класса и действующая на объект (например, метод Move может вызывать перемещение объекта). Границы между свойствами и методами нечeтки (например, метод Move и свойства Left и Top могут вызывать одинаковые действия). Свойство - при работе со свойствами используются процедуры: Let, присваивающая значение свойству и Get, считывающая значение свойства (см. практическую работу 13).

Процедура - это последовательность инструкций, с помощью которых выполняются некоторые действия. Рассматриваются следующие типы процедур: процедуры обработки событий, процедуры Sub, Function, Property и Event (процедуры создания событий).

Процедура Sub - это процедура, выполняюшая действия и, как правило, не возвращающая значение. Описание процедуры начинается с зарезервированного слова Sub и заканчивается End Sub. Процедура Subможет получать аргументы (список которых размещают в скобках), передаваемые ей вызывающей процедурой. Если процедура Sub не имеет аргументов, инструкция Sub должна содержать пустые скобки, пример:

Private Sub GetInfo()
:
End Sub

Процедура Function - это процедура, возвращающая значение. Описание процедуры начинается с ключевого слова Function и заканчивается End Function

Процедура Property - это последовательность инструкций, которые позволяют пользователю создавать собственные свойства и оперировать с ними. Property Let присваивает значение свойству, Property Get возвращает значение свойства.

Имя процедуры обработки события образуется из имени объекта и имени события, разделенных символом подчеркивания, например Command1_Click(), рис. 1.4.

Образование имени процедуры обработки события

Рис. 1.4. Образование имени процедуры обработки события

На рис. 1.4. слева расположено поле со списком объектов, справа - поле со списком событий для каждого выделенного объекта. Секция (General) (Declarations) (см. начало этих списков, рис. 1.4.) используется для описания переменных.

Кратко о некоторых элементах управления

Некоторые общие свойства элементов управления

Большинство элементов управления обладают следующими свойствами:

  • Идентификатор - Name,
  • Позиция: Left, Top (координаты верхнего левого угла элемента управления), Height, Width (высота и ширина элемента управления),
  • Доступность и видимость: Enabled определяет будет ли объект реагировать на событие или нет, Visible определяет, будет ли объект видимым во время выполнения,
  • Цвет: BackColor - цвет фона, FillColor - цвет заполнения объектов, ForeColor - цвет текста, графики,
  • Свойства шрифта: FontName - название, FontSize - размер, FontBold - полужирный, FontItalic - курсив и т.д.

Существуют объекты-контейнеры (Container), служащие для объединения других объектов. Контейнерами могут служить: Form, Picture, Frame, ToolBar, OLE.

Важным понятием при работе с элементами управления является фокус. Когда в процессе функционирования принимается решение, какому объекту передавать событие - управление передаётся активному объекту(имеющему фокус). Передача фокуса - может быть осуществлена с использованием cобытий LostFocus, GotFocus. Событие LostFocus вызывается для предыдущего объекта при переходе от одного объекта к другому.

Некоторые элементы управления

Ниже перечислены некоторые элементы управления.

  • Метка - Label предназначена для отображения текста. Важным свойством является Caption, оно содержит отображаемый текст. При использовании свойства BorderStyle, можно отобразить текст с рамкой/без рамки. Присваиванием свойству AutoSize значения True устанавливается соответствие размера элемента управления и длины текста.
  • Текстовое поле - TextBox предназначено для ввода, вывода текста. При изменении содержимого текстового поля (ввод, удаление) вызывается событие Change. При "входе" пользователя в текстовое поле вызывается событие GotFocus. Важным является свойство Text: оно содержит текст, отображаемый в текстовом поле.
  • Командная кнопка - CommandButton может реализовать начало, окончание процесса и т.д; главное событие - Click.
  • Список - ListBox. В режиме конструирования можно создать список, используя окно свойств (используется свойство List, при этом первый элемент списка имеет индекс 0). В процесе выполнения можно выбирать элементы списка (расширение возможностей программирования), можно добавлять/удалять элементы списка. Использование массивов списков (см. ниже) предоставляет большие возможности программисту. Основные события - Click, DblClick, создаваемые при щелчках на элементах списка.
  • Поле со списком - ComboBox представляет собой комбинацию списка ListBox и поля текста TextBox.
  • Таймер - Timer используется, если нужно стартовать/останавливать процедуры проекта в определeнные моменты времени. Свойство Interval служит для установки временного интервала (в миллисекундах). Имеется единственное событие Timer, которое вызывается по прошествии определeнного временного интервала. Для отключения таймера можно присвоить свойству Interval значение 0 или свойству Enabled значение False.
  • Окно с рисунком - PictureBox является элементом-контейнером. Использование свойства AutoSize позволяет изменять размеры объекта. Свойство Picture определяет отображаемый объект.
  • Image служит для отображения графики. Свойство Picture определяет отображаемый рисунок. Важным свойством является Stretch, если его значение есть True, то размеры отображаемого рисунка изменяются до размеров элемента управления Image.
  • Особый интерес представляет информация о форме. Еe свойства можно устанавливать в окне свойств после щелчка клавишей мыши по форме или выбрав еe в списке объектов в окне свойств. Свойство Captionопределяет надпись на форме вверху, свойство BackColor определяет цвет, свойство Font - шрифт, свойство ВorderStyle определяет наличие рамки, возможность изменения размера/перемещения, вид рамки, вид строки заголовка. Свойство WindowsState позволяет увеличить размер формы до размера экрана, см. пример в практической работе 1. Наиболее часто используемым событием является Load, происходящим при загрузке формы в память, поэтому после старта проекта первым выполняется код процедуры Form_Load. Формы сохраняются в виде отдельных файлов (код и описание среды).

Ниже приведена некоторая часть сокращений, используемых в идентификаторах объектов (Name), принятые в Visual Basic (так называемое соглашение по коду ): frm - Form, lbl - Label, txt - TextBox, cmd - CommandButton, chk - CheckBox, opt - OptionButton, lst - ListBox, cbo - ComboBox, pic - PictureBox, cmdl - CommonDialog, img - Image, dat - Data, grd- Grid, mnu - Menu.

Практическая работа 1. Освоение среды разработки

  1. Стартовать Visual Basic,
  2. создать проект типа Standard.EXE, вывести в окно Visual Basic (если их нет) окна: свойства, проводник проекта, панель элементов управления (использовать меню Вид или соответствующие кнопки панели Стандартная),

    cоздание на форме элементов управления

  3. сделать двойной щелчок на пиктограмме А (Label - метка) панели элементов управления,
  4. увеличить размер формы (во весь экран) и метки до размера формы,
  5. восстановить размер формы,

    работа со свойствами

  6. свойству Name элемента управления Label присвоить значение lbl1,
  7. свойству Caption присвоить значение "A Happy New Millennium !",
  8. использовать свойство Font: маркировать свойство Font элемента управления Label, сделать щелчок на символах <:>, выводится диалоговое окно, выбрать шрифт Arial, размер 72, сделать щелчок на кнопке OK,
  9. используя свойство BackColor выбрать, например, жeлтый цвет,
  10. используя свойство ForeColor, выбрать, например, красный цвет,
  11. свойству Alignment - выравнивание присвоить значение 2-Center (текст переместить в центр),
  12. из списка объектов окна свойств выбрать Form,
  13. свойству Caption присвоить значение "Практика 1",
  14. свойству WindowsState присвоить значение 2-Мaximized (это вызовет увеличение размера формы до размера экрана после старта проекта),

    старт/остановка выполнения/сохранение проекта

  15. стартовать проект (меню Запуск/кнопка Запуск панели Стандартная/клавиша F5),
  16. остановить выполнение проекта (меню Запуск \to Остановка/кнопка Остановка панели Стандартная),
  17. сохранить проект (меню Файл \to Сохранить Form1 Как: \to Сохранить Проект Как:),

    работа с графикой

  18. сделать 2 щелчка на пиктограмме Image панeли элементов управления,
  19. охватить созданным объектом-прямоугольником букву А,
  20. в окне свойств для объекта Image свойству Stretch присвоить значение True (размер вставленного рисунка, см. следующий пункт, становится равным размеру Image),
  21. маркировать щелчком свойство Picture объекта Image, после щелчка на кнопке <:> выбрать в диалоговом окне каталог Icons, затем - каталог Elements, далее - файл Sun.ico, сделать щелчок на его имени, далее - OK,

    копирование графики

  22. вставить в буквы р рисунок Face05.ico, для этого на форме создать ещe один элемент управления Image с рисунком Face05.ico, подобно тому, как было сделано ранее. Маркировать второй объект Image.
  23. использовать меню Правка \to Копировать или контекстное меню, \to затем меню Правка \to Вставить. На вопрос: "Хотите, чтобы объект стал элементом массива ?", ответить: "Нет" , копия объекта появится в верхнем левом углу формы,
  24. перетащить рисунки на буквы p и увеличить объекты так, чтобы заполнить букву,
  25. стартовать проект, рис. 1.5.,
  26. остановить выполнение,
  27. сохранить проект, используя кнопку Сохранить Проект панели Стандартная.

Освоение среды разработки

Рис. 1.5. Освоение среды разработки

Практическая работа 2. Создание процедуры

Расматривается процедура, реализующая эффект движения объекта. Он может быть реализован с помощью 2-х элементов управления PictureBox (в данном случае они должны быть элементами массива объектов(массив из 2-х элементов)), содержащих графические объекты-кадры. Здесь в качестве источника графических объектов служат файлы Bfly1 и Bfly2 (бабочки с развeрнутыми и сложенными крыльями), используется элемент управления Image в качестве объекта для демонстрации движения, элемент управления Timer обеспечивает старт процедуры через установленный временной интервал. Используется также элемент управления CommandButton для остановки выполнения проекта.

Код обеспечивает размещение на экране поочерeдно с периодом 0,1 - 0,2 сек 2-х отличающихся кадров Bfly1 и Bfly2. При таком временном интервале пользователь не замечает смены кадров и создаeтся эффект движения объекта. Последовательность действий:

  • создать на форме контейнер - объект PictureBox,
  • создать массив объектов из 2-х элементов PictureBox, для этого вывести контекстное меню (щелчок правой клавишей мыши на объекте), затем использовать команду контекстного меню Копировать, затем - команду контекстного меню Вставить, на вопрос "Хотите, чтобы объект стал элементом массива?" ответить "Да". Копия объекта появится в верхнем левом углу формы, а в выпадающем списке окна свойств, вверху теперь имеется 2 элемента управления PictureBox, их идентификаторы: Picture1(0) и Picture1(1) - это элементы массива PictureBox, массив состоит из 2-х элементов, индексация проводится с 0,
  • свойствам Picture объектов PictureBox присвоить значения Bfly1 и Bfly2 соответственно, см. практика 1, п. 21, при этом в контейнерах PictureBox появятся объекты-бабочки, рис. 1.6.,

    Вид формы

    Рис. 1.6. Вид формы

  • создать на форме объект Image, рис. 1.6., слева,
  • создать на форме объект Timer,
  • создать на форме объект CommandButton, код которого обеспечит завершение выполнения программы,
  • задать свойства элементов управления, табл. 1.1.
    Таблица 1.1. Свойства элементов управления
    Объект, свойство Значение свойства Комментарий
    Timer    
    Name Timer1  
    Interval 200  
    Image    
    Name Image1  
    Stretch -1 ' True - размеры картинки станут равными размерам объекта Image
    PictureBox    
    Name Picture1(0) ' первый элемент массива объектов
    Picture (Bitmap) ' вставлен рисунок
    Visible 0 ' False - кадр невидим для пользователя
    PictureBox    
    Name Picture1(1) ' второй элемент массива объектов
    Picture (Bitmap) ' вставлен рисунок
    Visible 0 ' False - кадр невидим для пользователя
    CommandButton    
    Name Command1  
    Caption End  

    Для того, чтобы поместить i-кадр на экран, нужно свойству Picture объекта Image ( Image.Picture ) присвоить значение свойства Picture1(1). Picture, а реализующая элементарную анимацию программа представлена ниже.

  • ввести код, данный ниже, затем стартовать проект; для остановки выполнения сделать щелчок на командной кнопке.
(General) (Declarations)
Dim i As Integer ' инструкция описания переменной, см. ниже

Private Sub Form_Load()
i = 0
End Sub

Rem присвоить значение индексу элемента массива Picture1(i)
Private Sub Timer1_Timer()
Rem свойству Picture элемента управления Image присвоить
Rem значение свойства Picture элемента управления Picture
Image1.Picture = Picture1(i).Picture
i = i + 1
If i = 2 Then i = 0 
End Sub

Private Sub Command1_Click()
End ' закончить выполнение программы
End Sub

Пояснения. При загрузке формы в память начинает выполняться процедура Form_Load(), где номеру кадра i присваивается значение 0. Сразу же начинает выполняться процедура Timer_Timer(): на экран Image выводится кадр с индексом 0 (бабочка - Bfly1), следующая строка кода увеличивает номер кадра (i= i +1). В следующей строке проводится поверка номера кадра и если он не равен 2, то на экран выводится второй кадр кадр (i=1, бабочка - Bfly2). При повторном выполнении кода переменной i присваивается значение 0 и происходит смена кадра, рис. 1.7. - бабочка машет крыльями.

Бабочка машет крыльями

Рис. 1.7. Бабочка машет крыльями

Основные понятия. Элементы грамматики языка.

Для выполнения программы Visual Basic нужно стартовать содержащую эту программу процедуру. Процедуры выполняют некоторые действия, могут иметь параметры, значения которых они могут изменять. Процедуры обработки событий описываются как Private ; их можно вызывать только внутри формы. Процедуры являются общими, если они содержатся в модуле, тогда они могут быть вызваны процедурами другого контейнера. При их описании используется ключевое слово Public.

Модуль

Модуль - это совокупность описаний и процедур, сохранeнный под общим именем. Сохраняется в виде файла с расширениями .BAS и .CLS. Существуют типы - стандартный модуль и модуль класса (модуль, в котором сохранeн класс).

Переменная

Переменная - программный объект, имеющий имя, тип, размер и значение, которое может быть присвоено/возвращено программой. Имя должно начинаться с буквы и содержать не более 256 символов. Для доступа к содержимому памяти достаточно знать имя переменой.

Тип данных - характеристика переменной, определяющая тип данных который может храниться в этой переменной. Типы данных даны в табл. 1.2.

Таблица 1.2. Типы данных
Тип данных Размер Диапазон значений
Byte (байт) 1 байт От 0 до 255
Boolean (логический) 2 байта True или False
Integer (целое) 2 байта От -32 768 до 32 767
Long (длинное целое) 4 байта От -2 147 483 648 до 2 147 483 647
Single (с плавающей точкой обычной точности) 4 байта От -3,402823E38 до -1,401298E-45 для отрицательных значений.От 1,401298E-45 до 3,402823E38 для положительных значений
Double (с плавающей точкой двойной точности) 8 байт От - 1,79769313486232E308 до -4,94065645841247E-324 для отрицательных значений; от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений.
Currency (денежный) 8 байт От -922 337 203 685 477,5808 до 922 337 203 685 477,5807
Object (объект) 4 байта Любой указатель объекта
String (строка Переменной длины) 10 байт + длина строки От 0 до прибл. 2 млрд.
String (строка постоянной длины) длина строки От 1 до прибл. 65 400
Variant (числовые подтипы) 16 байт Любое числовое значение вплоть до границ диапазона типа Double
Variant (строковые подтипы) 22 байта + длина строки Как для строки (String) переменной длины.
Тип данных, определяемый пользователем (с помощью ключевого слова Type) объем определяется типом данных  

Для решения вопроса о равенстве чисел с плавающей точкой можно сравнивать абсолютное значение их разности с некоторой наперед заданной величиной. Приведем пример.

Dim A As Single, B As Single, del As Single
del = Abs(A - B)
If del <= 0.01 Then
Label1.Caption = "Числа равны с точностью 0.01" 
Else
Label1.Caption = "Числа не равны"
End If

Описание переменных. Инструкцией описания сообщается имя и тип переменной; для описания переменных используется инструкция Dim, примеры:

Dim Price As Currency
Dim Name (15) As String ' описание массива

Допускается описание нескольких переменных в одной строке:

Dim x, y As Integer

Доступность. Доступность определяет, в каких разделах программы переменные могут использоваться. Локальными переменными являются переменные, описанные внутри процедуры, блока (блок заканчивается ключевыми словами End Sub, Next, Loop...). Переменные контейнера описываются в области описаний контейнера (формы, модуля). Глобальные переменные описываются в модуле с использованием ключевого слова Public, они доступны во всех модулях и процедурах проекта.

Время жизни переменных. Локально описанные переменные после выполнения процедуры удаляются из памяти, их содержимое при этом не сохраняется, иногда - это недостаток. Имеется возможность описать переменную как Static, при этом при выходе из процедуры значение статической переменной сохраняется и при новом вызове переменная имеет значение, которое она имела при последнем выходе из процедуры

Идентификаторы типов. Тип данных при описании может устанавливаться добавлением знака типа к имени переменной. В табл. 1.3. приведены соответствующие символы

Таблица 1.3. Символы, используемые в качестве идентификаторов типов данных
Тип Символ Пример
Integer % -546%
Long & 2147483648&
Single ! -3.402823У+38!
Double # -1.79769313486232У308#
String $ ккккккккк$
Currency @ -922337203685477.5808@

Неявное описание переменных. Описание переменной может продлиться при появлении еe в коде. Например, две записи ниже эквивалентны:

Dim Price As Currency Price=9000
Price@=9000

Option Expliсit. Для того, чтобы устранить возможные ошибки в программе нужно описывать переменные. Для этого может использоваться опция Expliсit. Для работы с ней нужно установить флажок: меню Инструменты \to Опции Среда \to Требование описания переменных \to перезагрузить Visual Basic.

Необходимо перечислить некоторые функции, используемые при работе с данными. Функции Val(string), Str(number). Часто возникает необходимость преобразовать числовой тип в тип String и наоборот, например, при вводе чисел в текстовое поле. Для этого используются функции Val(string) и Str(number). Функция Val(string) возвращает число, содержащееся в строке. Функция Str(number) преобразует числовое выражение в тип String, являющийся строковым представлением числа. Функции преобразования типов данных. Если переданное в функцию значение аргумента, например, находится вне допустимого диапазона, то возникает ошибка. Чтобы избежать такого рода ошибок используют функции преобразования типов, в табл. 1.4., даны некоторые из них.

Таблица 1.4. Некоторые функции преобразования типов данных
Функция Диапазон аргумента выражения Возвращаемый тип
CCur(выражение) от -922 337 203 685 477,5808 до 922 337 203 685 477,5807 Currency
CLng(выражение) от -2 147 483 648 до 2 147 483 647 с округлением дробной части Long
CSng(выражение) от -3,402823E38 до -1,401298E-45 для отрицательных чисел, от 1,401298E-45 до 3,402823E38 для положительных чисел Single
CVar Диапазон значений Double для числовых значений. Диапазон значений String для нечисловых значений Variant
CStr(выражение) Возвращаемые значения функции CStr зависят от аргумента выражения String

Массив

Массив представляет собой переменную, которой соответствует множество ячеек памяти для хранения значений. Массив - это набор элементов, имеющих свой порядковый номер (индекс). Пример описания и инициализации массива:

Dim m(3) As Integer
For i = 0 To 2
m(i) = i
Next

Обозначения элементов данного массива: m(0), m(1), m(2); UBound = 3 - верхний индекс размерности; LBound = 0 - нижний индекс размерности; Length = 4 - наибольшее число элементов, которое можно разместить; Rank = 1 - ранг. При работе с массивами индексация элементов начинается с 0, однако можно формировать массив с другого индекса.

Различают статические массивы, границы которых устанавливаются в процессе конструирования и динамические массивы, которые могут изменять свои размеры/размерности в ходе выполнения программы. Динамический массив можно создать следующим образом:

(General) (Declarations)
Rem описать массив без указания размерности
Dim mass() As Variant 
Private Sub Command1_Click()
...
Rem установить размерность массива с использованием инструкции ReDim
ReDim mass(17) 
:.
End Sub

При описании многомерных массивов индексы размерностей разделяются запятой, пример:

Dim maName (7, 7) As String
Dim maBea (5, 7, 9) As String

Имеется возможность указывать диапазоны индексов:

Dim massMain (5, 7 To 16, 9 To 25, 3, 15 To 20, 23 To 29, 2)

Можно использовать присваивание массивов (см. справочник).

Константа

Константа имеет символьное имя и значение. При описании констант используется ключевое слово Const. Синтаксис:

[Public | Private] Const имя_константы As тип_данных = Значение

Рассматриваются константы:

  • внутренние (определяемые системой). Информацию о существующих константах можно получить в Object Browser,
  • определяемые пользователем.

Внутренние константы записываются с префиксом из 2-х букв, обозначающих библиотеку объектов (например, префикс vb - библиотека объектов Visual Basic, префикс db - библиотека объектов Access, префикс xl - библиотека объектов Excel), пример: dbAppendOnly.

Практическая работа 3. Функции Val(string), Str(number)
  1. Создать на форме 2 объекта текстового поля; свойствам Name присвоить значения txtOper1 и txtOper2 соответственно, создать объекты CommandButton и TextBox (Name = txtAdd),
  2. очистить свойства Text текстовых полей,
  3. ввести код процедуры Command1_Сlick():
    Dim Oper1 As Single, Oper2 As Single, Result As Single
    Oper1=Val(txtOper1.Text): Oper2=Val(txtOper2.Text)
    Result=Oper1+Oper2
    txtAdd.Text=Str(Result)
  4. стартовать проект,
  5. ввести числа в первое и второе текстовые поля, сделать щелчок на командной кнопке, результаты выводятся в 3-е текстовое поле.

Практическая работа 4. Типы данных; тип Boolean
  • Создать на форме объекты CommandButton, Label, TextBox,
  • ввести код процедуры Command1_Click():
    Dim x As Boolean
    x=Val(txt1.Text)
    lbl1.Caption=x
  • стартовать проект, ввести последовательно числа 1, -2, 0, нажимая после ввода командную кнопку, наблюдать результат. Значению 0 соответствует False, все другие интерпретируются как True.

Практическая работа 5. Типы данных (Long, Single, Currency); ошибка вычислений

Проводятся расчеты ошибок вычислений ( DelLong, DelSing ) при расчетах с использованием данных типа Long, Single, вычисляется итоговая ошибка. Далее проводятся аналогичные расчeты для данных типов Long и Currency.

  1. Создать на форме:
    • 2 вертикальных ряда по 5 объектов-меток с надписями, см. свойство Caption, рис. 1.8. слева и в центре (на рисунке цвет - черный),
    • текстовое поле txt1 для ввода значений переменной J в средине формы (см.: 999999),
    • две командные кнопки слева и справа от текстового поля (Caption = Long-Single, Caption = Long-Currency),
    • 2 метки вверху в центре:
    • с надписью Zahl::,
    • со списком значений переменной J, которые следует вводить после старта проекта,
    • два массива из 4-х элементов текстовых полей: txt10(0), txt11(0) - слева вверху, txt10(1), txt11(1) - слева ниже. Остальные 4: txt10(2), txt11(2) - справа вверху, txt10(3), txt11(3) - справа ниже,
    • два вертикальных ряда по 5 меток (напротив предыдущего ряда меток) для вывода результатов вычислений (lbl2(0), lbl22(0), lbl4(0) lbl44(0), lbl6(0), lbl2(1), lbl22(1), lbl4(1) lbl44(1), lbl6(1)),
    • командную кнопку для процедуры завершения выполнения программы (Command3),
  2. ввести код, данный ниже:
    Private Sub Command1_Click()
    Rem описание переменных для блока Long-Single
    Dim Xlong As Long, Xl As Long, Dx As Single, Xsingle As Single
    Dim Xs As Single
    Rem переменная, определяющая число циклов
    Dim J As Long 
    Dim I As Long, DelLong As Long 
    Dim DelSing As Single
    J = CLng(txt1.Text) 
    
    Rem организовать блок для работы с данными типа Long
    Xlong = 2000000000: txt10(0).Text = Xlong
    Xlong = CLng(Xlong / J)
    txt11(0).Text = Xlong & " " & CLng(Xlong * J)
    
    Rem Xl образуется суммированием Xlong
    For I = 1 To J
    Xl = CLng(Xl + Xlong)
    Next I
    
    Rem в поле элемента управления Label выводятся
    Rem результаты - значение Xl и ошибки вычислений
    lbl2(0).Caption = Xl: DelLong = CLng(2000000000 - Xl)
    lbl22(0).Caption = DelLong
    
    Rem организовать аналогичный блок для работой с данными
    Rem типа Single
    Xsingle = 2000000000: txt10(1).Text = Xsingle
    Xsingle = CSng(Xsingle / J)
    txt11(1).Text = Xsingle & " " & CSng(Xsingle * J)
    
    For I = 1 To J
    Xs = CSng(Xs + Xsingle)
    Next I
    
    lbl4(0).Caption = Xs: DelSing = CSng(2000000000 - Xs)
    lbl44(0).Caption = DelSing
    
    Rem проведение вычислений и вывод в левую нижню метку
    Rem итоговой ошибки вычислений
    Dx = CSng(Xl - Xs): lbl6(0).Caption = Dx
    End Sub
    
    Rem код поцедуры Command2_Click() аналогичен коду проце-
    Rem дуры Command1_Click(); здесь проводится вычисление
    Rem ошибки вычислений при работе с данными типа Long 
    Rem и Currency
    Private Sub Command2_Click()
    Dim Xlong As Long, Xl2 As Long, Dx2 As Currency 
    Dim Xcurrency As Currency, Xc As Currency, J As Long
    Dim I As Long, DelLong2 As Long, DelCurrency As Currency
    Print "Warten Sie mal !" ' нужно подождать !
    
    J = CLng(txt1.Text): Xlong2 = 2000000000
    txt10(2).Text = Xlong2: Xlong2 = CLng(Xlong2 / J)
    txt11(2).Text = Xlong2 &  " " &  CLng(Xlong2 * J)
    
    For I = 1 To J
    Xl2 = CLng(Xl2 + Xlong2)
    Next I
    
    lbl2(1).Caption = Xl2
    DelLong2 = CLng(2000000000 - Xl2)
    lbl22(1).Caption = DelLong2
    
    Xcurrency = 2000000000: txt10(3).Text = Xcurrency
    Xcurrency = CCur(Xcurrency / J)
    txt11(3).Text = Xcurrency &  " " & CCur(Xcurrency * J)
    
    For I = 1 To J
    Xc = CCur(Xc + Xcurrency)
    Next I
    
    lbl4(1).Caption = Xc
    DelCurrency = CCur(2000000000 - Xc)
    lbl44(1).Caption = DelCurrency
    
    Dx2 = CCur(Xl2 - Xc): lbl6(1).Caption = Dx2
    
    Rem удалить предыдущую запись и напечатать "Готово !!!"
    Me.Cls: Print "Fertig !!!" 
    End Sub
    
    Private Sub Сommand3_Click()
    End
    End Sub
  3. cтартовать проект, вводить последовательно значения J, данные вверху формы, рис. 1.8.: 3, 11:9999999, делать щелчки на кнопках Long-Single, Long - Currency после каждого ввода J, наблюдать разницу результатов, рис. 1.8.

В примере последовательно используются данные разного типа и над ними выполняются одинаковые операции сложения и деления. Xlong и Xl - это целые типа Long, первое из них равно 2 млрд., а 2-ое приблизительно такое же, но полученное в результате вычислений. Исходное число 2 млрд. делится на J и затем с использованием цикла For : Next проводится сложение J раз. Из-за ошибок вычислений полученный результат отличается от исходного числа. Аналогичные вычисления проводятся для другой пары типов данных - Long - Currency. Значения J, используемые в примере, даны в таблице, см. рис. 1.8.Для значения J порядка 10 млн. величина ошибки может составить около 10% исходного значения.

Типы данных; ошибка вычислений (Long, Single, Currency); результаты

Рис. 1.8. Типы данных; ошибка вычислений (Long, Single, Currency); результаты

Практическая работа 6. Метод Move

Cинтаксис метода: object.Move left, top, width, hight,

  1. Создать на форме 3 элемента управления Image (при вставке рисунков (используется свойство Picture) использовать файлы Bfly1 и Bfly2, см. табл. 1.5), 2 объекта CommandButton и объект Timer, рис. 1.9,
  2. установить значения свойств элементов управления, табл. 1.5; ввести код, данный ниже.
    Таблица 1.5. Свойства используемых объектов
    Объект, свойство Значение свойства  
    Image1 (на рисунке в центре) img1  
    Stretch True  
    Visible False  
    Picture (Bitmap) - бабочка со сложенными крыльями  
    Image2 (на рисунке вверху)    
    Name Img2  
    Stretch True  
    Visible False  
    Picture (Bitmap) - бабочка с раскрытыми крыльями
    Image3 (на рисунке внизу)    
    Name Img3  
    Stretch True  
    Visible True  
    Picture (Bitmap) - бабочка с раскрытыми крыльями
    Command1    
    Caption End  
    Command2    
    Caption Geschwindigkeit  
    Timer1    
    Interval 200  
    Form1    
    BackColor Палитра \to белый цвет  
    (General) (Declarations)
    Dim pr As Boolean, i As Boolean
    Private Sub Form_Load()
    ' переменным типа Boolean присвоить значение True
    i= True 
    pr = True
    End Sub
    
    Private Sub Timer1_Timer() ' использовать метод Move 
    img3.Move img3.Left + 50, img3.Top - 10 
    ' если i истино, то использовать объект - бабочка с 
    ' раскрытыми крыльями
    If i Then 
    img3.Picture = img2.Picture
    ' иначе использовать объект - бабочка со сложенными 
    ' крыльями
    Else 
    img3.Picture = img1.Picture
    img3.Move img3.Left + 50, img3.Top - 10
    End If
    'логический оператор Not изменяет знак своего операнда
    ' на противоположный
    i = Not i 
    End Sub
    
    ' изменить скорость движения объекта
    
    Private Sub Command2_Click() 
    If pr = True Then
    Timer1.Interval = 100
    pr = False
    Command2.Caption = "Schnell"
    Else: Timer1.Interval = 0
    pr = True
    Command2.Caption = "Langsam"
    End If
    End Sub
    Private Sub Сommand1_Click()
    End
    End Sub
  3. стартовать проект, сделать щелчок на кнопке Сommand2 - скорость движения увеличивается; сделать повторный щелчок на этой кнопке.

Метод Move

Рис. 1.9. Метод Move

Операторы

Рассматриваются операторы - арифметические, сравнения, логические, конкатенации.

Арифметические операторы представлены в табл. 1.6:

Таблица 1.6. Арифметические операторы
Название Символ Приоритет
Сложение + 9
Вычитание - 9
Умножение * 12
Деление / 11
Целочисленное деление \  
Остаток целого деления Mod 10
Отрицание - 13
Возведение в степень ^ 14

Пояснения: приоритет указывает порядок выполнения операторов. Сначала выполняются операторы с более высоким приоритетом. Если два и более оператора имеют одинаковый приоритет, то сначала выполняется стоящий первым в выражении. Используется 3 оператора деления

Оператор отрицания изменяет знак операнда на противоположный

Операторы сравнения, табл. 1.7, позволяют сравнить 2 значения и возвращают значения True или False

Таблица 1.7. Операторы сравнения
Название Символ Использование Приоритет
Меньше чем < a < b 7
Меньше или равно <= a <= b 7
Больше чем > a > b 7
Больше или равно >= a > b 7
Равно = a = b 7
Не равно <> a <> b 7
Похож (соответствует ли) Like a Like b 7

Первые 6 операторов используются для сравнения чисел и данных типа String, Like используется для сравнения данных типа String. При использовании операторов сравнения строк нужно учитывать отличие кодировок строчных и прописных букв; лишь при использовании опции "Option Compare Text" это отличие будет игнорироваться.

Оператор Like проверяет, соответствует ли некоторая строка шаблону. Операнд слева от Like - это строка, операнд справа - это шаблон. Приведeм некоторые правила построения шаблонов

  • Символ "?" указывает, что в этой позиции может быть любой одиночный символ, пример: "bc" Like "???". Результат -True.
  • Символ * указывает, что в этой позиции может быть любое количество символов, пример: "klm" Like "k*". Результат - True.
  • Символ # указывает, что в этой позиции может быть только любая цифра, пример: "kl12" Like "??##". Результат - True.
  • Конкретный символ указывает, что в этой позиции может быть только этот символ, пример: "abc" Like "ab?". Результат - True.
  • Список символов в квадратных скобках означает, что можно использовать один из них, пример: "ab3" Like "ab[123]". Результат - True.
  • Если список в скобках начинается с символа "!", то для сравнения используется символ, не входящий в список, пример: "a2" Like "[abc][!123]". Результат - False.
  • Наличие символа диапазона - внутри скобок означает, что для сравнения берется любой символ из этого диапазона, пример: "bc" Like "[a-d]". Результат - True.
  • Дефис (-) в начале или в конце выражения в скобках обозначает просто символ "-".
  • Шаблон "[]" трактуется как пустой и игнорируется.

Имеется ещe несколько правил формирования шаблонов (речь идeт о специальных символах), однако их рассмотрение выходит за рамки данного учебного пособия.

Логические операторытабл. 1.8, дают возможность создать составное условие; пример: с использованием логического оператора AND можно уменьшить число сравнений: Student = Age > 15 AND < 60 - результат имеет значение True только в том случае, если оба составляющих условия есть True.

Таблица 1.8. Логические операторы
Название Обозначение Использование Приоритет
НЕ NOT NOT a 6
И AND a AND b 5
ИЛИ OR a Or b 4
Исключающее ИЛИ XOR a XOR b 3
Эквивалентность EQV a EQV b 2
Включение IMP IMP b 1

Результат действия оператора Not противоположен значению его операнда; пример: если переменная типа Boolean "kk" имеет значение True, то Not kk возвращает False.

Оператор AND возвращает True только, если оба операнда есть True.

Оператор OR возвращает True, если хотя бы один из операндов еcть True

Оператор EQV проверяет будут ли 2 операнда различны, возвращается значение True, если они оба True или оба False. Оператор XOR (исключающее ИЛИ); возвращает False, если оба операнда True

Оператор IMP (Включение) позволяет проверить, включает ли первое условие второе. Первое всегда включает второе, за исключением случая, когда первое есть True, а второе - False.

Конкатенация (табл. 1.9) - соединение строк, пример: ma & scha даст результат mascha; здесь символ амперсанд - символ оператора конкатенации. Используются 2 символа: & и +, табл. 1.9.

Таблица 1.9. Операторы конкатенации
Название Обозначение Использование Приоритет
Конкатенация & a & b 8
Конкатенация + a + b 8

При работе операторы распознаются и вокруг них расставляются пробелы, однако для оператора конкатенации при использовании символа & это не выполняется и пробелы вокруг & нужно расставлять вручную.

Практическая работа 7. Оператор Like

7a. Ввод строки в текстовое поле, шаблон находится в процедуре
  1. Создать на форме объекты: CommandButton, 2 текстовых поля ( Name=txtLike, Name=txtOper ),
  2. ввести код процедуры Command1_Click ():
    Private Sub Command1_Click()
    txtLike.Text = txtOper.Text Like "a*[1-3]!"
    End Sub
  3. стартовать проект, вввести в текстовое поле txtOper: ark2!, сделать щелчок на командной кнопке, результат выводится в поле txtLike - True ; вводить другие строки для сравнения с шаблоном

7b. Ввод обоих операндов в текстовые поля
  1. Создать на форме объекты: CommandButton, 2 текстовых поля и объект Label, рис. 1.10,
  2. ввести код процедуры Command1_Click():
    Dim j As String, sh As String, res As Boolean
    j = txt1.Text: sh = txt2.Text: res = j Like sh: lbl1.Caption = res
  3. стартовать проект, вввести в текстовые поля:
    • аa - в первое текстовое поле, а* - во второе поле, сделать щелчок на командной кнопке,
    • ав - в первое поле, в* - во второе поле, сделать щелчок на командной кнопке,
  4. вводить другие строки для сравнения с шаблоном

Оператор Like; схема формы

Рис. 1.10. Оператор Like; схема формы

Практическая работа 8. Логические операторы, конкатенация

Первое упражнение - логические операторы сводится к вводу в текстовые поля txtOper1, txtOper2 данных ( Oper1, Oper2 - комбинаций True и False ) и изучению результатов, выводимых в текстовые поля txtNot.Text : txtImp.Text, расположенные ниже горизонтально, рис. 1.11. Последовательность действий:

  1. создать на форме: объект CommandButton, 2 текстовых поля для ввода данных (значений переменных Oper1, Oper2 ), рис. 1.11, вверху формы, 6 объектов TextBox для вывода результатов и 9 объектов Label, для создания надписей,
  2. задать значения свойства Name объектов, см. код процедуры Command1_Click () и рис. 1.11,
  3. ввести код
    Private Sub Command1_Click()
    Dim Oper1 As Boolean, Oper2 As Boolean
    Oper1 = CBool(txtOper1.Text)
    Oper2 = CBool(txtOper2.Text)
    txtNot.Text = Not Oper1
    txtAnd.Text = Oper1 And Oper2
    txtOr.Text = Oper1 Or Oper2
    txtXor.Text = Oper1 Xor Oper2
    txtEqv.Text = Oper1 Eqv Oper2
    txtImp.Text = Oper1 Imp Oper2
    End Sub
  4. вводить комбинации данных в поля txtOper1 и txtOper2, делать щелчки на командной кнопке, анализировать результаты,
  5. создать вторую форму; на первой форме создать вторую командную кнопку и ввести код процедуры Command2_Click ():
    Unload Me
    Form2.Show

После старта проекта для перехода ко второй форме нужно сделать щелчок на этой командной кнопке.

Логические операторы

Рис. 1.11. Логические операторы

Второе упражнение - конкатенация.

  1. Создать на форме 3 текстовых поля (Name=txtConc, Name=txt1, Name=txt2), объект CommandButton, рис. 1.12,

    Конкатенация, схема формы

    Рис. 1.12. Конкатенация, схема формы

  2. ввести код процедуры Command1_Click ():
    txtConc.Text = txt1.Text & txt2.Text
    ' txtConc.Text = Val(txt1.Text) & Val(txt2.Text)
    ' txtConc.Text = Val(txt1.Text) + Val(txt2.Text)
  3. стартовать проект, сделать щелчок на второй командной кнопке первой формы; выводится вторая форма,
  4. ввести в текстовые поля txt1 и txt2 данные типа String, сделать щелчок на командной кнопке, происходит соединение строк,
  5. снять комментарий со второй строки кода, поставить комментарий перед первой строкой. Ввести в текстовые поля txt1 и txt2 числа, сделать щелчок на командной кнопке - происходит соединение чисел,
  6. снять комментарий с третьей строки кода, поставить комментарий перед первой и второй строками, ввести в текстовые поля числа, сделать щелчок на командной кнопке - происходит сложение чисел.

Инструкции

Инструкция может содержать ключевые слова, переменные, константы, операторы и выражения. Рассматриваются инструкции описания, присваивания и выполняемые.

Инструкции описания используются для описания процедур, переменных, массивов, конcтант; пример:

Private Sub Command1_Click()
Dim str As String
Const alter As Integer = 17
.
End Sub

Здесь инструкция Sub с парной инструкцией EndSub описывает процедуру Command1_Click (), инструкция Dim описывает переменную str (тип данных - String ), инструкция Const описывает константу alter, ей присваивается значение 17.

Инструкции присваивания присваивают значение или выражение переменной или константе, пример:

Private Sub Kkkk()
.
Name = InputBox ("Wie heissen Sie?") ' "Как Вас зовут?"
End Sub

Здесь переменной Name присваивается возвращаемое функции InputBox значение. Для присваивания переменной объекта, описанной как объект, применяется инструкция Set.

Выполняемые инструкции инициируют действие. Пример: Инструкция For:Next используется для выполнения наборов действий указанное число раз:

Private Sub Kkkk()
Rem i - переменная-счeтчик, еe значение увеличивается при 
Rem каждом выполнении цикла
For i = 1 To 10 
Beep
Rem инструкция Next изменяет значение переменнной-
Rem счeтчик с шагом 1
Next i 
End Sub

Инструкция With позволяет указывать объект или создаваемый пользователем тип данных один раз для последовательности инструкций, что позволяет избежать повторений; пример - присваивание значений свойствам объекта:

With lblNorm
.FontBold = True ' признак начертания - жирный
.FontItalic = True ' признак начертания - курсив
End With

Выражения

Выражение - это последовательность операторов и операндов (литералы, переменные, другие выражения, вызовы функций), специфицирующих вычисления, примеры:

9 + 7 
799 < 89 ' эквивалентно False

Рассматриваются следующие типы выражений: расчeта числовых значений, сравнения значений, Boolean-выражения.

Числовое выражение ; пример: 5 * (77 + х) ' пусть х = 2, тогда оно оценивается равным 395

Выражения сравнения значений числовых величин возвращают значения типа Boolean, пример 1:

45 > 26 ' True
26 > 45 ' False

Пример 2:

x / 44 * (y +15) >= Sqrt(z) / (p - (x * 15))
' после сравнения возвращается True или False

Bыражения типа Boolean (оцениваются значениями типа Boolean) могут иметь несколько форм; простейшее может иметь вид:

If x = True Then 
х = x + х ' выполнить действие, если х есть True.
Else
y = False
' иначе (x = False) присвоить у значение False 
End If

Операторы сравнения =, <, >, < >, <=, >= (см. ниже) реализуют выражения типа Boolean сравнением выражений, находящихся справа и слева, примеры:

99 < 888 ' True.
x > y And x < 1099

Здесь используется логический оператор And (см. ниже) и результат зависит от результата сравнений справа и слева от оператора And.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer