Visual Basic: основы создания приложений

Visual Basic: основы создания приложений Полезное

Visual Basic (VB) — это семейство языков программирования и сред разработки от Microsoft для быстрого создания приложений под Windows с упором на визуальную сборку интерфейса. Важно сразу развести две разные ветки: VB6 и VBA — это классический (legacy) Visual Basic на технологии COM, а VB.NET — отдельный язык на платформе .NET. Синтаксис у них похож, но это не один и тот же продукт, и путать их не стоит.

Ниже — чем отличаются ветки, как выглядит синтаксис, как устроена модель форм и событий, минимальное рабочее приложение и статус языка в 2026 году. Материал для тех, кто решает, стоит ли изучать VB и что именно.

Две ветки Visual Basic: не путать

Под одним названием «Visual Basic» скрываются продукты с разной судьбой. Классический VB (VB6) и встроенный в Office VBA работают через COM и живут в экосистеме Windows. VB.NET — это переработанный язык под виртуальную машину .NET (CLR), совместимую с C#. Различия принципиальные, вплоть до размера базовых типов.

Признак VB6 / VBA (legacy) VB.NET (.NET)
Появление VB6 — 1998; VBA встроен в Microsoft Office 2002, вместе с .NET Framework 1.0
Платформа COM, только Windows .NET (CLR); с .NET 5+ рантайм кроссплатформенный
Тип Integer 16 бит (-32768..32767) 32 бита (примерно -2.1 до 2.1 млрд)
Универсальный тип Variant Object
Среда VB6 IDE / редактор VBA в Office Visual Studio
Роль сейчас сопровождение старого кода, автоматизация Office поддерживаемый, но не развиваемый язык .NET

Ключевая ловушка новичка — тип Integer. В VB6 это 16-битное число до 32767, а в VB.NET то же слово Integer означает уже 32 бита. Код, перенесенный без правки, может молча переполниться. Дальше в статье примеры синтаксиса даны на VB.NET (актуальная ветка), а модель форм показана в обоих стилях, потому что они заметно отличаются.

Синтаксис: переменные, типы, операторы

Переменная объявляется через Dim с указанием типа после As. Если тип не задать, в VB.NET переменная получит тип Object (в VB6/VBA — Variant), что медленнее и менее безопасно, поэтому тип лучше указывать явно.

Dim count As Integer      ' целое 32 бита (VB.NET)
Dim price As Decimal      ' точные десятичные, подходит для денег
Dim title As String       ' строка
Dim isReady As Boolean    ' True или False
Dim created As Date        ' дата и время

Тип Decimal хранит значение точно в пределах своей разрядности и не дает двоичной погрешности Double — но это не «вообще без округления»: результат ограничен масштабом (scale). Для денег Decimal предпочтительнее Double.

Операторы делятся на арифметические, сравнения и логические. Обратите внимание на два «нестандартных»: \ — целочисленное деление (дробная часть отбрасывается), Mod — остаток от деления.

Dim a As Integer = 17
Dim b As Integer = 5

Console.WriteLine(a / b)    ' 3.4  - обычное деление
Console.WriteLine(a \ b)    ' 3    - целочисленное деление
Console.WriteLine(a Mod b)  ' 2    - остаток
Console.WriteLine(2 ^ 10)   ' 1024 - возведение в степень

Логика: And, Or, Not, Xor. Для склейки строк используйте &, а не +: & всегда приводит операнды к строке, тогда как + c числом и строкой ведет себя неоднозначно и может дать ошибку.

Dim first As String = "Visual"
Dim second As String = "Basic"
Console.WriteLine(first & " " & second)  ' Visual Basic

Формы и события: как работает интерфейс

Главная идея Visual Basic — событийная модель (event-driven). Вы не пишете весь ход программы сверху вниз, а раскладываете на форме элементы управления (кнопки, поля) через drag-and-drop, а затем описываете, что происходит в ответ на событие: нажатие кнопки, ввод текста, загрузку формы.

В классическом VB6/VBA двойной клик по кнопке создает процедуру-обработчик по имени элемента:

' VB6 / VBA: обработчик нажатия кнопки Command1
Private Sub Command1_Click()
    Dim userName As String
    userName = InputBox("Как вас зовут?")
    MsgBox "Привет, " & userName & "!"
End Sub

В VB.NET (WinForms) обработчик связывается с событием через ключевое слово Handles, а вместо MsgBox используют MessageBox.Show:

' VB.NET WinForms: обработчик события Click
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    MessageBox.Show("Привет, " & TextBox1.Text & "!")
End Sub

Разница видна сразу: в VB.NET у обработчика есть параметры sender и e (источник события и его данные), а привязка задается явно через Handles. Это уже стиль .NET, общий с C#.

Минимальное рабочее приложение

Начать проще всего с консольного приложения VB.NET — его можно скопировать, запустить в Visual Studio и увидеть результат. Пример спрашивает имя и выводит приветствие с текущим временем:

Module Program
    Sub Main()
        Console.Write("Как вас зовут? ")
        Dim name As String = Console.ReadLine()
        Console.WriteLine($"Привет, {name}! Сейчас {DateTime.Now}")
    End Sub
End Module

Запись $"..." — это интерполяция строк (доступна в современных версиях VB.NET): выражения в фигурных скобках подставляются в текст. При вводе имени Аня в консоли появится строка вида Привет, Аня! Сейчас 18.09.2026 14:30:05 (дата и время — текущие в вашей системе, формат зависит от региональных настроек).

Порядок в Visual Studio: создать проект, выбрать шаблон «Консольное приложение» с языком Visual Basic, вставить код в Sub Main, запустить по F5. Для приложения с окном вместо консоли выбирается шаблон Windows Forms, и логика переносится в обработчики событий, как в разделе выше.

Статус языка в 2026 году

VB.NET остается рабочим и поддерживаемым языком .NET, но развитие его как языка Microsoft остановила: новые возможности синтаксиса больше не добавляются, приоритет отдан стабильности и совместимости. Проще говоря, писать и запускать на VB.NET можно, а вот новых языковых фич ждать не стоит — точные формулировки и источник вынесены в «Точки для фактчека».

Где Visual Basic еще реально встречается:

  • VBA — живет в Microsoft Office (Excel, Access, Word) для макросов и автоматизации отчетов; это до сих пор массовый сценарий в бизнесе.
  • VB6 — в сопровождении старых корпоративных приложений; среда разработки давно снята с поддержки, но рантайм на актуальных Windows работает.
  • VB.NET — в поддержке существующих .NET-приложений; новые проекты на .NET чаще начинают на C#.
  • VBScript — устаревшая скриптовая ветка; Microsoft объявила ее нерекомендуемой и планирует убрать из будущих версий Windows (детали — в фактчеке).

Вывод для новичка: VB полезно понимать, если вы наследуете чужой код или автоматизируете Office. Для старта с прицелом на новые проекты .NET практичнее современный язык той же платформы — C#.

Выводы

  • Visual Basic — это два разных мира: legacy-ветка VB6/VBA на COM и VB.NET на платформе .NET; синтаксис похож, назначение и рантайм разные.
  • Базовые типы отличаются между ветками: Integer в VB6 — 16 бит, в VB.NET — 32 бита; это частая причина ошибок при переносе.
  • Основа VB — событийная модель: интерфейс собирается из элементов, логика пишется в обработчиках событий (Click, Load и других).
  • VB.NET поддерживается, но как язык больше не развивается; VBA актуален для автоматизации Office; VBScript признан устаревшим.
  • Для новых задач на .NET разумная современная альтернатива VB — язык C#.

Где применяется / связь с практикой

Visual Basic по-прежнему держит нишу автоматизации Office и сопровождения старых систем, но если цель — разрабатывать новые приложения на платформе .NET, логичнее сразу осваивать C#: это современный, активно развиваемый язык той же экосистемы, с тем же рантаймом и во многом похожим набором понятий (типы, классы, события). Переход с VB.NET на C# дается легко именно потому, что платформа общая.

Освойте тему на практике

Системно разобраться с синтаксисом, типами и объектной моделью .NET помогает курс C# Basic — он дает ту базу, которую в VB вы осваиваете на практике, но уже на актуальном языке. Посмотреть формат занятий и темы можно на открытых уроках — это бесплатно и помогает понять, подходит ли направление.

Смежные темы: Visual Studio: что это такое, Особенности разработки бизнес-приложений.

FAQ

Можно ли сейчас установить среду разработки VB6?
Отдельная IDE VB6 официально снята с поддержки и не поставляется. Legacy-код на VB6 обычно сопровождают в старых установках, а новые проекты ведут на VB.NET в Visual Studio.

VB.NET и VBA — это один язык?
Нет. VBA встроен в Microsoft Office и работает через COM для макросов, а VB.NET — самостоятельный язык на платформе .NET. Синтаксис близок, но среда, рантайм и назначение разные.

Стоит ли новичку в 2026 начинать именно с Visual Basic?
Если задача — автоматизировать Office, VBA оправдан. Для разработки новых приложений на .NET практичнее начать с C#: та же платформа, но активно развиваемый язык.

OTUS Журнал
Скидка 5% 14-20 сентября на курсы (popup)