Перейти к основному содержимому

VBScript — сценарии Windows и учебный маршрут

Разработчику

VBScript (Microsoft Visual Basic Scripting Edition) — диалект Basic для текстовых сценариев в Windows. В школьных и вузовских курсах его часто проходят рядом с VBA как «лёгкий» язык для автоматизации ОС и (исторически) скриптов в HTML.

Синтаксис близок к VBA в Excel и классическому Basic; отличия — нет компиляции в EXE, нельзя объявлять новые классы, зато удобно вызывать COM-объекты (CreateObject).


Зачем VBScript в курсе информатики

Зачем изучаютСмысл сегодня
Встроен в Windows (с Windows 98)Сценарии .vbs, .wsf, админ-задачи
Исполняется WScript.exe / CScript.exeАвтоматизация без Visual Studio
Общий синтаксис с VBA в OfficeОдин раз выучили If, For — перенос в Excel/Word
Скрипты в HTML (IE)Устарело — только для истории; в браузерах сейчас JavaScript

Для новых проектов Microsoft продвигает PowerShell; VBScript в Windows 11 помечен как legacy, но в учебниках и на старых ПК встречается часто.


Первая программа — файл .vbs

  1. Откройте Блокнот (или VS Code).
  2. Напишите одну строку:
MsgBox "Привет!"
  1. Сохраните как Prg1.vbs.
  2. Дважды щёлкните по файлу — должен запуститься Windows Script Host (wscript.exe) и показать окно.
ХостКак запускатьГде вывод
WScriptдвойной щелчок, wscript.exe script.vbsокна, GUI
CScriptcscript.exe script.vbs в cmdконсоль

Расширенный вызов MsgBox:

btn = MsgBox("Привет!", vbYesNoCancel + vbInformation + vbDefaultButton3, "Моё первое окно")

Правило скобок VBScript. Если результат присваивают переменной (btn = …), аргументы функции пишут в круглых скобках. Если вызов «ради эффекта» — можно MsgBox "текст" без скобок (стиль Basic).

Ввод строки — InputBox:

s = InputBox("Напишите строку:", "Ввод", "значение по умолчанию")

Строки, операторы и Option Explicit

ЭлементПравило
Несколько операторов в строкеразделитель :
Перенос на следующую строку_ в конце строки
Комментарий' или Rem
Строгие объявленияв начале файла: Option Explicit

Строковая конкатенация — & (предпочтительнее + для текста).

Логика — And, Or, Not; сравнение — =, <>, <, >. В VBScript есть Eqv и Imp (как в классическом VB); в VB.NET их нет — там AndAlso / OrElse.


Типы, переменные, массивы

VBScript знает один универсальный тип данных в памятиVariant. Явно указывают подтипы через Dim:

Dim i, s, flag
i = 42
s = "текст"
flag = True

Частые подтипы Variant — Integer, Long, Single, Double, String, Boolean, Date.

Массивы:

Dim X(99)
Dim Y(10, 10)

Dim Z()
ReDim Z(5, 5)
ReDim Preserve Z(5, 5, 3) ' сохранить данные при изменении размерности

Подробнее про типизацию в .NET — Типы данных; про массивы в VBA — VBA в Excel.


Управляющие конструкции

Синтаксис совпадает с главой про циклы и условия (VB.NET), но без End While — используют Loop.

Условие:

If a > 10 Then
b = b + 1
ElseIf a > 0 Then
b = a
Else
b = 0
End If

Цикл с счётчиком:

For i = 1 To 10 Step 1
total = total + i
Next

Обход коллекции или массива:

For Each item In someCollection
' ...
Next

Цикл с условием:

Do While n > 0
n = n - 1
Loop

Do
' ...
Loop Until condition

Выход — Exit For, Exit Do.


Процедуры и функции

Sub ShowSum(a, b)
MsgBox a + b
End Sub

Function Discount(price, percent)
Discount = price * (1 - percent / 100)
End Function

Call ShowSum(10, 20)
x = Discount(1000, 10)

Имя функции можно использовать для возврата значения (Discount = …) — тот же приём, что в VBA.


Объекты — CreateObject и FileSystemObject

VBScript не создаёт новые классы, но вызывает COM/ActiveX:

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Temp")
MsgBox folder.Files.Count & " файлов"

Типичные объекты в админ-скриптах — WScript.Shell (запуск программ), Scripting.FileSystemObject (файлы), ADODB.Connection (к базам через OLE DB).

В базовой информатике — глава про ОС сценарии относят к служебным программам; антивирусы часто проверяют .vbs из вложений почты.


VBScript в HTML (историческая заметка)

В старых страницах для Internet Explorer использовали:

<script language="VBScript">
Sub Button1_OnClick
MsgBox "Клик"
End Sub
</script>

Современные браузеры VBScript не выполняют — для веба нужен JavaScript. Тему сохраняют в учебниках как мост к событийной модели (OnClickHandles в WinForms, см. процедуры и события).


Рекомендуемый порядок

После основ и управляющих конструкцийVBScript (эта статья)VBA ExcelWord и AccessVB.NET.


Что изучить дальше


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").