You can quickly determine how many lines of text are contained in a multiline TextBox control whose Scrollbars property is set to 3-Both – that is, when the TextBox behaves like a programmer’s editor – by counting the number of CR-LF characters in the Text property. You can do that in just one line of code as follows:
' Text1 is a multiline TextBox controllineCount = Len(Text1.Text) - Len(Replace(Text1.Text, vbCrLf, vbCr))
However, this approach fails when Scrollbars = 2-Vertical, that is when the TextBox behave like a word processor and wraps longer lines.
A better approach – that works with any type of multiline TextBox control – is to send it the EM_GETLINECOUNT message:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _ hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As LongConst EM_GETLINECOUNT = &HBAlineCount = SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, ByVal 0&)