I tried to cut and paste this together as best I could, I think it is what you are looking for:
Option Explicit
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_ERR = (-1)
Private Const CB_FINDSTRING = &H14C
Dim BackSpacedPressed As Boolean
Dim LengthOfText As Integer
Dim StrToFind As String
Dim Pos As Long
Dim SelStart As Integer
Private Sub cboComboBox_KeyPress(KeyAscii As Integer)
'Remember if last key pressed was the backspace
If KeyAscii = vbKeyBack Then
BackSpacedPressed = True
Else
BackSpacedPressed = False
End If
End Sub
Private Sub cboComboBox_Change()
'If backspace was pressed let the normal thing happen
If BackSpacedPressed = True Then Exit Sub
SelStart = Me.cboComboBox.SelStart 'Save the starting point
StrToFind = Left(Me.cboComboBox.Text, SelStart)
Pos = SendMessage(Me.cboComboBox.hwnd, CB_FINDSTRING, -1, ByVal StrToFind)
If Pos <> CB_ERR Then 'If item found
'Place the auto completed text in the text area
Me.cboComboBox.Text = Me.cboComboBox.List(Pos)
Me.cboComboBox.SelStart = SelStart 'Place the caret at the correct position
LengthOfText = Len(Me.cboComboBox.Text)
If LengthOfText > SelStart Then
'Highlight the auto-completed text so it can
'be deleted quickly if wanted
Me.cboComboBox.SelLength = LengthOfText - SelStart
End If
End If
End Sub