Это последний код, который я придумал
For i = 0 To fgrComments.Rows - 1
'Set MSFlexGrid to appropriate Cell
myFlexGrid.Row = i
'Set textbox to match the selected cell
txtSizer.Width = myFlexGrid.ColWidth(2)
txtSizer.Font = myFlexGrid.Font
txtSizer.Text = myFlexGrid.Text
'Call API to determine how many lines of text are in text box
lLinesOfText = SendMessage(txtSizer.hwnd, EM_GETLINECOUNT, 0&, 0&)
' Update the running values
lTotalNumberOfRows = lTotalNumberOfRows + lLinesOfText
lCurrentHeight = lCurrentHeight + myFlexGrid.CellHeight
Next i
' resize the grid
Dim iSpacers As Integer
iSpacers = Screen.TwipsPerPixelY * lTotalNumberOfRows
myFlexGrid.Height = lCurrentHeight + iSpacers
Вам нужно будет объявить SendMessage ( см. Здесь, чтобы увидеть, как ) и значение EM_GETLINECOUNT, но вы должны сделать это самостоятельно: -)
Он не удаляет магические числа, но рационализирует их, что достаточно близко для меня.