Found this, seems to work OK for me.
Code:
Private Sub Command2_Click()
    Dim wmiDiskDrive As Object
    Dim wmiDiskDrives As Object
    Dim wmiDiskPartition As Object
    Dim wmiDiskPartitions As Object
    Dim wmiLogicalDisk As Object
    Dim wmiLogicalDisks As Object
    Dim wmiServices As Object
    Dim wmiQuery As String
    
    ' Get physical disk drive Letter
    Set wmiServices = GetObject( _
        "winmgmts:{impersonationLevel=Impersonate}!//" & ".")
    
    Set wmiDiskDrives = wmiServices.ExecQuery("SELECT Caption, DeviceID FROM Win32_DiskDrive")
    
    For Each wmiDiskDrive In wmiDiskDrives
        Debug.Print "Disk drive Caption: " _
            & wmiDiskDrive.Caption _
            & vbNewLine & "DeviceID: " _
            & " (" & wmiDiskDrive.DeviceID & ")"
        wmiQuery = "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" _
            & wmiDiskDrive.DeviceID & "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition"
        Set wmiDiskPartitions = wmiServices.ExecQuery(wmiQuery)
    
        For Each wmiDiskPartition In wmiDiskPartitions
            'Use partition device id to find logical disk
            Set wmiLogicalDisks = wmiServices.ExecQuery _
                ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" _
                 & wmiDiskPartition.DeviceID & "'} WHERE AssocClass = Win32_LogicalDiskToPartition")
    
            For Each wmiLogicalDisk In wmiLogicalDisks
                Debug.Print "Drive letter associated" _
                    & " with disk drive = " _
                    & wmiDiskDrive.Caption _
                    & wmiDiskDrive.DeviceID _
                    & vbNewLine & " Partition = " _
                    & wmiDiskPartition.DeviceID _
                    & vbNewLine & " is " _
                    & wmiLogicalDisk.DeviceID
            Next
        Next
    Next
End Sub