volendo sarebbe possibile risolvere il tuo problema mediante un ciclo sui vai item del Combo, utilizzando List(n)...
ma c'è una soluzione abbastanza semplice che prevede l'utilizzo di una API, la SendMessage:
codice:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_FINDSTRINGEXACT = &H158
essa ti permette di sapere immediatamente quale indice corrisponde ad una determinata stringa, se presente.
puoi utilizzarla così, in una funzione:
codice:
Sub MakeDefault(Porta As String)
Dim L As Long
L = SendMessage(Combo1.hwnd, CB_FINDSTRINGEXACT, -1, ByVal Porta)
Combo1.ListIndex = L
End Sub
e richiamarla semplicemente con:
codice:
MakeDefault "COM9"
Boolean