List all User Accounts in Windows using VBA

In vba use this code to get windows user account names & their domain names.

Copy paste this code into your Excel vba project module.

Run the code by pressing F5. You will get a complete list of use account names and additional details in worksheet1.

Sub GetAllUsers()
    Dim iSh As Worksheet
    Dim i As Double
    Set iSh = ThisWorkbook.Sheets(1)
    
    On Error Resume Next
    i = 1
    iSh.Cells(i, 1) = "Account Type"
    iSh.Cells(i, 2) = "Caption"
    iSh.Cells(i, 3) = "Description"
    iSh.Cells(i, 4) = "Disabled"
    iSh.Cells(i, 5) = "Domain"
    iSh.Cells(i, 6) = "Full Name"
    iSh.Cells(i, 7) = "Local Account"
    iSh.Cells(i, 8) = "Lockout"
    iSh.Cells(i, 9) = "Name"
    iSh.Cells(i, 10) = "Password Changeable"
    iSh.Cells(i, 11) = "Password Expires"
    iSh.Cells(i, 12) = "Password Required"
    iSh.Cells(i, 13) = "SID"
    iSh.Cells(i, 14) = "SID Type"
    iSh.Cells(i, 15) = "Status"
    
    sComputerName = "."
    Set oWMIsvc = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & sComputerName & "\root\cimv2")
     
    Set oWMICUserAcctDetails = oWMIsvc.ExecQuery _
        ("Select * from Win32_UserAccount Where LocalAccount = True")
     
    For Each oAcct In oWMICUserAcctDetails
        i = i + 1
        iSh.Cells(i, 1) = oAcct.AccountType
        iSh.Cells(i, 2) = oAcct.Caption
        iSh.Cells(i, 3) = oAcct.Description
        iSh.Cells(i, 4) = oAcct.Disabled
        iSh.Cells(i, 5) = oAcct.Domain
        iSh.Cells(i, 6) = oAcct.FullName
        iSh.Cells(i, 7) = oAcct.LocalAccount
        iSh.Cells(i, 8) = oAcct.Lockout
        iSh.Cells(i, 9) = oAcct.Name
        iSh.Cells(i, 10) = oAcct.PasswordChangeable
        iSh.Cells(i, 11) = oAcct.PasswordExpires
        iSh.Cells(i, 12) = oAcct.PasswordRequired
        iSh.Cells(i, 13) = oAcct.SID
        iSh.Cells(i, 14) = oAcct.SIDType
        iSh.Cells(i, 15) = oAcct.Status
    Next
End Sub

The above code uses Windows Management Instrumentation Command (WMIC). You can use this services to query some of the Windows OS related details.

Luckily this can be used within Vba also.

Here is a complete reference to know more about this routines: Technet Microsoft website

This page has a vbscript code. We converted this code into Vba & also tested it.