Начнём с теории. Переменные в тексте программы описываются чаще следующим образом: [область действия переменной] [имя переменной] As [тип данных]
или [область действия переменной] [имя переменной][идентификатор]
Например: Dim i As Integer или Dim i% Результат будет одинаков.
Переменные бывают следующих типов:
Логические: Boolean - переменная может принимать только 2 значения: True или False. Переменная занимает в памяти компьютера 2 байта.
Числовые:
Тип
Значения
Байт
Идентификатор
Символов после запятой
Byte
0 до 255
1
0
Integer
от -32 768 до +32 767
2
%
0
Long
от -2 147 483 648 до +2 147 483 647
4
&
0
Currency
от - 922 337 203 685 477 до 922 337 203 685 477
8
@
14
Double
8
#
14
Single
4
!
6
Значения для типов данных Double и Single не указаны, потому что эти
переменные содержат значения с плавающей точкой. Иными словами, чем
длиннее число, тем меньше его точность, и крайние справа значения могут
оказаться опущены. Значения принимаемые ими могут быть указаны не
обычным числом, а значением с плавающей точкой, например:
3.43597383424655E+24, где 24 показывает на сколько знаков следует
сдвинуть запятую вправо.
Строковый: String - содержит строку длинной до 2 миллиардов символов(если
верить источнику откуда я это прочёл). Идентификатор $. Описывается переменная данного
типа например так: Dim S As String
Называется строкой неограниченной длинны. Бывают так же строки ограниченной длинны, описываются таким образом: Dim S As String(5)
Где 5 это длинна строки. Тоесть в такую строчку больше 5-и символов
записывать нельзя, если же пытаться, то символы с 6-го и далее не будут
учтены.
Другие стандартные типы данных: Object - переменная содержит ссылку на какой либо объект, будь то модуль класса, форма или элемент управления. Занимает 4 байта.
Date - этот тип данных позволяет хранить значения времени и даты
в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999
года. Такие значения в тексте программ обозначаются символами "#",
например:
NewYear = #January 1, 2000# Если вводится только значение даты, Visual
Basic полагает, что время равняется 00:00, но так же можно указать и
время: в таком случае вводить стоит например #1/20/2003 8:30:00 PM#.
Занимает 8 байт.
Variant - этот тип данных может хранить данные любого из перечисленных выше типов, разве что за исключением Object-a.
Ну а теперь немного практики, создадим калькулятор, из того что мы знаем.
Форма будет выглядить следующим образом:
Текст программы будет такой: Private Sub Command1_Click() On Error Resume Next Text3.Text = CDbl(Text1.Text) + CDbl(Text2.Text)
End Sub
Private Sub Command2_Click() On Error Resume Next Text3.Text = CDbl(Text1.Text) - CDbl(Text2.Text)
End Sub
Private Sub Command3_Click() On Error Resume Next Text3.Text = CStr(CDbl(Text1.Text) * CDbl(Text2.Text))
End Sub
Private Sub Command4_Click() On Error Resume Next Text3.Text = CDbl(Text1.Text) / CDbl(Text2.Text)
End Sub
Поясняю его: Каждая кнопка у нас отвечает за определённое
математическое действие(сложение, вычитание, умнажение или деление), мы
переводим данные из текстового поля в тип Double с помощью подпрограммы CDbl, потому как нам желателен всётаки числовой тип данных для математических операций, иначе(в некоторых случаях) могут произойти неверные вычисления(точнее программа может вычислить не совсем так как нам нужно). Затем с помощью функции CStr данные переводятся обратно в строковый тип. Впрочем, бейсик в этом плане достаточно удобен, эти переводы из одной системы в другую чаще всего не обязательны.
Строкой "On Error Resume Next" проше всего избавиться от возможных ошибок, тоесть если вы введёте неверные
данные, программа просто их пропустит и не произведёт никаких
вычислений. Если к примеру убрать эти строки, то при введении не верных
данных программа выдаст ошибку и завершится(вылетит).
И вот ещё кстати говоря, сначала нужно ввести числа в два верхних текстовых поля, а только затем нажимать клавишу действия.