Получение версии Windows с помощью VBA: методы и примеры кода

Чтобы получить версию Windows с помощью VBA (Visual Basic для приложений), вы можете использовать различные методы. Ниже приведены несколько примеров:

  1. Использование класса Win32_OperatingSystem:

    Sub GetWindowsVersion()
    Dim objWMIService As Object
    Dim objOperatingSystem As Object
    Dim strVersion As String
    ' Create an instance of the WMI service
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    ' Query the Win32_OperatingSystem class
    Set objOperatingSystem = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
    ' Retrieve the Windows version
    For Each os In objOperatingSystem
        strVersion = os.Caption
    Next os
    ' Display the Windows version
    MsgBox "Windows Version: " & strVersion
    End Sub
  2. Использование функции API GetVersionEx:

    Private Declare Function GetVersionExA Lib "kernel32.dll" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
    Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    End Type
    Sub GetWindowsVersion()
    Dim osInfo As OSVERSIONINFO
    Dim strVersion As String
    ' Initialize the structure size
    osInfo.dwOSVersionInfoSize = Len(osInfo)
    ' Call the GetVersionEx function
    GetVersionExA osInfo
    ' Retrieve the Windows version
    strVersion = "Windows " & osInfo.dwMajorVersion & "." & osInfo.dwMinorVersion & " (Build " & osInfo.dwBuildNumber & ")"
    ' Display the Windows version
    MsgBox "Windows Version: " & strVersion
    End Sub

Это всего лишь несколько примеров. Существуют и другие способы получения версии Windows с помощью VBA. Не забудьте добавить обработку ошибок и адаптировать код в соответствии с вашими требованиями.