О разделе
Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.
Раздел про Visual Basic — от классического VB 6.0 и VBA в Microsoft Office до VB.NET на платформе .NET.
Для кого: новички (синтаксис, типы, циклы, события), разработчики legacy (WinForms, Access, Excel-макросы), те, кто сопровождает корпоративные Windows-приложения.
С чего начать
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | История | VB6 → VB.NET, VBA |
| 2 | Основы | Sub, Dim, модули |
| 3 | Типы | Примитивы, String |
| 4 | Value и reference | Structure и Class |
| 5 | Управление | If, циклы |
| 6 | Процедуры и события | Handles |
| 7 | Первая программа | VS Community |
| 8 | Консоль, файлы | List(Of T) |
| 9 | LINQ | Лямбды, запросы |
| 10 | VBA в Excel | Макросы в таблицах |
| 11 | VBScript | .vbs, WScript |
| 12 | VBA Word и Access | Документы и БД |
| 13 | Справочник | WinForms, VBA |
Маршрут VBScript и Office
Сценарии Windows и макросы Office собраны в этом разделе (в базовой информатике — только алгоритмы и обзор языков):
| Тема | Статья |
|---|---|
VBScript, WScript, MsgBox, циклы | VBScript — сценарии Windows и учебный маршрут — VBScript |
| VBA Excel | VBA в Microsoft Excel — VBA в Excel |
| VBA Word, Access | VBA в Word и Access — VBA Word и Access |
| Алгоритмы и классификация языков | базовая информатика, гл. 4 |
| VB.NET / Visual Studio | Первая программа на visual-basic — первая программа |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
| Синтаксис VB6 в .NET | File.ReadAllText вместо Open |
Option Strict Off | Включите On |
| UI из фонового потока | Invoke / Async |
Что попробовать
- Первая программа — консоль, затем кнопка WinForms.
- VBA:
MsgBoxиRange("A1"). - Чек-лист.
Как работать с разделом, чтобы не "утонуть"
Если читать подряд тяжело, используйте один из трёх маршрутов:
| Цель | Маршрут |
|---|---|
| Быстро написать рабочее приложение | Первая программа на visual-basic → Управляющие конструкции и операторы visual-basic → Процедуры и события в visual-basic → Консоль, CLI, коллекции и файлы |
| Понять архитектуру и различия поколений | История языка visual-basic → Основы языка visual-basic → Архитектура приложений на visual-basic → Значимые и ссылочные типы, преобразования |
| Автоматизировать Excel | VBA в Microsoft Excel → Процедуры и события в visual-basic → Справочник по visual-basic |
| VBScript и Office (классический курс) | VBScript — сценарии Windows и учебный маршрут → VBA в Microsoft Excel → VBA в Word и Access → Первая программа на visual-basic |
Полезный принцип: каждый блок закреплять мини-практикой, а не только чтением.
Мини-словарь перед стартом
- CLR — среда выполнения .NET, где исполняется VB.NET-код.
- WinForms — классический GUI-фреймворк под Windows.
- COM — старый компонентный механизм, важен для VB6/VBA и Interop.
- Option Strict — флаг строгости типов в VB.NET.
- Handles — привязка обработчика к событию элемента UI.
Практика: для нового обучения удобнее VB.NET и Visual Studio Community (консоль или Windows Forms). VB 6.0 — только если нужен исторический контекст или сопровождение старых EXE.
Важно: VB6, VBA и VB.NET — разные ветви одного семейства; синтаксис похож, но среда выполнения, типы и инструменты различаются. В учебных главах по умолчанию имеется в виду VB.NET, если не указано иное.
От BASIC к Visual Basic
BASIC (Beginner's All-purpose Symbolic Instruction Code — "универсальный символьный код инструкций для начинающих") создан 1 мая 1964 года в Дартмутском колледже Джоном Кемени и Томасом Курцем для студентов без специальной математической подготовки: интерактивная работа в режиме разделения времени, простой синтаксис, нумерация строк. Язык опирался на идеи Fortran II и ALGOL 60; первую реализацию (Dartmouth BASIC) изначально компилировали, а не только интерпретировали.
На микрокомпьютерах 1970-х BASIC стал "языком по умолчанию"; Microsoft получила первый коммерческий успех с Altair BASIC (1975). Для IBM PC в ПЗУ шёл ROM BASIC; отдельно продавались BASICA, GW-BASIC, затем QuickBASIC и QBasic — прямые предшественники синтаксиса классического VB.
Visual Basic (1991) связал Basic с графическим интерфейсом Windows: идею визуального конструктора форм и событийной модели разработал Алан Купер; прототип назывался Tripod (иногда Ruby). С VB.NET (2002) язык стал полноценным членом .NET на CLR; обратной совместимости с VB6 нет — миграция через мастер конвертации и ручную доработку.
| VB6 / VBA | VB.NET | |
|---|---|---|
| Среда | MSVBVM60.DLL, Office | CLR (.NET Framework / .NET 5+) |
| Типизация | Variant, слабее | Object + Option Strict |
| GUI | Формы VB6, VBA UserForm | WinForms, WPF |
| Ошибки | On Error GoTo | Try…Catch…Finally |
| Диалекты | VBA (Office), VBScript (Windows, IE, Outlook) | тот же синтаксис, другая среда |
| Статус | legacy, VBA в Office | поддержка платформы; новые возможности языка не развиваются (с 2020) |
Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.
11 марта 2020 года компания объявила: Visual Basic останется в .NET 5+ и дальше будет поддерживаться, но новые возможности языка добавляться не будут — развитие идёт через платформу .NET и библиотеки, доступные и из VB.NET. Подробнее — в истории.
История языка visual-basic
История Visual Basic: эволюция от BASIC до современных реализаций в экосистеме Microsoft.
Консоль и файлы
Практика VB.NET: консольные программы, dotnet CLI, выбор коллекций и чтение/запись файлов через BCL.
Лямбды и LINQ
VB.NET: лямбда-выражения, Func/Action, LINQ, перегрузка операторов, индексаторы и IEnumerable для For Each.
VBScript
VBScript — WScript, первый .vbs, типы, циклы, процедуры и объекты ActiveX; связь с VBA и VB.NET.
VBA Word и Access
VBA в Microsoft Word и Access — объектные модели, макросы, формы и отчёты; связь с Excel и базами данных.
Основы языка visual-basic
Расширенные основы Visual Basic: синтаксис, базовые конструкции, модель выполнения и практические ориентиры.
Архитектура приложений на visual-basic
Архитектура приложений на Visual Basic: структура проекта, компоненты и подходы к построению Windows-приложений.
Типы данных в visual-basic
Типизация и набор правил определения типов данных в Visual Basic.
Управляющие конструкции и операторы visual-basic
Управляющие конструкции и операторы Visual Basic: условия, циклы, выражения и практические шаблоны принятия решений.
Процедуры и события в visual-basic
Процедуры и события в Visual Basic: обработчики, жизненный цикл событий и организация прикладной логики.
Первая программа на visual-basic
Подробный гайд по установке и запуску первой программы на VB.NET и историческому варианту VB6.
Справочник по visual-basic
Справочник-шпаргалка по visual-basic: типы, синтаксис, стандартная библиотека и типовые паттерны. Не заменяет пошаговое обучение.
VBA в Excel
Краткий ввод в Visual Basic for Applications: макросы, объектная модель Excel и отличия от VB.NET.
Типы и преобразования
Как в VB.NET устроены value- и reference-типы, приведение CType/TryCast и работа с Nothing.
Visual Basic — итоги
Расширенные итоги раздела Visual Basic: что важно, где применять и куда двигаться дальше.
Visual Basic — чек-лист
Расширенный чек-лист по Visual Basic: теория, практика и признаки готовности к следующему шагу.
Visual Basic — о разделе
Раздел про Visual Basic — от классического VB 6.0 и VBA в Microsoft Office до VB.NET на платформе .NET.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Бэкенд и серверная разработка — Pascal — о разделе, Ассемблер — о разделе, Lisp — о разделе, Си — о разделе, Fortran — о разделе, Haskell — о разделе.