Когда вы говорите "управление переходит к обработчику ошибок", вы забыли добавить Exit Sub
? В ваших комментариях вы говорите, что добавили новую декларацию, но у вас все еще есть проблема? Я только что запустил этот код, и у него не было проблем с открытием порта.
Private Sub Form_Load()
Dim MSComm1 As New MSComm
On Error GoTo cant_open_com1
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.DTREnable = True
MSComm1.Handshaking = comRTS
MSComm1.InBufferSize = 12 + 1
MSComm1.RThreshold = MSComm1.InBufferSize
MSComm1.RTSEnable = True
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeText
MSComm1.NullDiscard = True
MSComm1.OutBufferSize = 0
MSComm1.SThreshold = MSComm1.OutBufferSize
MSComm1.PortOpen = True
Exit Sub
cant_open_com1:
Debug.Print Err.Description
End Sub