🔷 Visual Basic (VB.NET и VBA)

Читаемый синтаксис: типы, условия, циклы, процедуры, коллекции, VBA в Office.

Шпаргалки · Программирование · #visual-basic #vb #vba #dotnet

IDE и запуск

Visual Studio (VB.NET), редактор VBA в Excel / Word (Alt+F11). dotnet new console -lang "VB". Устаревший VB6 больше не развивается.

Типы данных

Dim n As Integer = 5          ' Integer, Long, Short, Byte
Dim x As Double = 1.5         ' Single, Double, Decimal
Dim s As String = "a"
Dim b As Boolean = True
Dim d As Date = #1/1/2026#
Dim o As Object
Dim arr(2) As Integer         ' 3 элемента: индексы 0..2
Dim list As New List(Of String)

Строгость: Option Explicit On, Option Strict On.

Операторы

+ - * / \ (целое деление) Mod ^, & (склейка строк), = <> < >, And Or Not AndAlso OrElse, Is, Like.

Условия и циклы

If n > 0 Then
    Console.WriteLine("+")
ElseIf n = 0 Then
    Console.WriteLine("0")
Else
    Console.WriteLine("-")
End If

For i = 1 To 10 Step 2 : Next
For Each x In list : Next
Do While n > 0 : n -= 1 : Loop
Select Case n : Case 1 : Case Else : End Select

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

Sub Hello(name As String)
    Console.WriteLine("Привет, " & name)
End Sub

Function Add(a As Integer, b As Integer) As Integer
    Return a + b
End Function

Встроенные

MsgBox / MessageBox.Show, InputBox, Len, Mid, Left, Right, UCase, Trim, InStr, CInt, CStr, IsNumeric, Now, Format, Rnd.

VBA в Excel

Sub FillColumn()
    Dim i As Long
    For i = 1 To 10
        Cells(i, 1).Value = i * 2
    Next i
End Sub
Range("A1:A10").Value = 0

Асинхронность (VB.NET)

Async Function LoadAsync() As Task(Of String)
    Using http As New HttpClient()
        Return Await http.GetStringAsync("https://example.com")
    End Using
End Function

Коллекции

List(Of T), Dictionary(Of K, V), Collection (VBA), Scripting.Dictionary (VBA), LINQ: list.Where(Function(x) x > 1).ToList().

Библиотеки

.NET BCL, Windows Forms, WPF, ADO.NET, Office Interop, EPPlus / ClosedXML (Excel), xUnit (тесты).