When using the ListView control in list mode (Listview.View = lvwList), no property indicates which column the user clicked on within the selected row. The ListView’s HitTest method returns only a reference to the ListItem the user clicked on, not the specific subitem. Use the SendMessage API function in the ListView’s MouseUp or MouseDown event to provide this information:
Private Declare Function SendMessage Lib _ "user32" Alias "SendMessageA" (ByVal hWnd As _ Long, ByVal wMsg As Long, ByVal wParam As _ Long, lParam As Any) As LongPrivate Const LVM_SUBITEMHITTEST As Long = 4153Private Type POINTAPI X As Long Y As LongEnd TypePrivate Type LVHITTESTINFO pt As POINTAPI lngFlags As Long lngItem As Long lngSubItem As LongEnd TypePrivate Sub ListView1_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) Dim hti As LVHITTESTINFO Dim lngRet As Long hti.pt.X = X / Screen.TwipsPerPixelX hti.pt.Y = Y / Screen.TwipsPerPixelY lngRet = SendMessage(ListView1.hWnd, _ LVM_SUBITEMHITTEST, 0&, hti) Debug.Print "Row=" & hti.lngItem, Debug.Print "Col=" & hti.lngSubItemEnd Sub