Checa con este codigo ajusta automaticamente las columnas de acuerdo al tamaño del texto mas amplio.
Código:
Public Sub AjustarColumnas(FlexGrid As MSHFlexGrid)
On Local Error GoTo ErrSub
'Para las filas y columnas del Flexgrid
Dim Columna As Integer, Fila As Long
'Matriz y variable para los anchos de columna
Dim Ancho_Columna() As Single
Dim Col_Width As Single
'Redimensionar el Array a la cantidad de columnas
ReDim Ancho_Columna(0 To FlexGrid.Cols - 1)
'Recorrer las columnas para almacenar el ancho
For Columna = 0 To FlexGrid.Cols - 1
'Guarda el ancho de la columna en la matriz
Ancho_Columna(Columna) = TextWidth(FlexGrid.TextMatrix(0, Columna))
Next Columna
'Recorrer todas las filas del FlexGRid
For Fila = 1 To FlexGrid.Rows - 1
'Recorrer todas las Columnas
For Columna = 0 To FlexGrid.Cols - 1
COL_WITH = j
' Almacenar el ancho de la columna actual
Col_Width = TextWidth(FlexGrid.TextMatrix(Fila, Columna))
'Comparar cual es mayor
If Ancho_Columna(Columna) < Col_Width Then
Ancho_Columna(Columna) = Col_Width
End If
Next
Next
' Establecer los anchos de columna al FlexGRid con la propiedad ColWidth
For Columna = 0 To FlexGrid.Cols - 1
FlexGrid.ColWidth(Columna) = Ancho_Columna(Columna) + 240
Next
Exit Sub
'Error
ErrSub:
MsgBox Err.Description, vbCritical
FlexGrid.Redraw = True
End Sub
Public Function TextWidth(text As String) As Single
TextWidth = Printer.TextWidth(text)
End Function