try this below code
Private Sub Form_Load()
Dim List
Dim Msg
Dim Object
On Local Error Resume Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BaseBoard")
For Each Object In List
Msg = Msg & "Motherboard Serial Number: " & Object.SerialNumber & vbCrLf
Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
For Each Object In List
Msg = Msg & "Processor Unique ID: " & Object.UniqueID & vbCrLf
Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BIOS")
For Each Object In List
Msg = Msg & "BIOS Serial Number: " & Object.SerialNumber & vbCrLf
Next
Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_LogicalDisk")
For Each Object In List
Msg = Msg & "Disk Serial Number: " & Object.VolumeSerialNumber & vbCrLf
Next
MsgBox Msg
Unload Me
End Sub
Thanks