The combobox fits already doesn't it?

Check out the example given in MSDN:

VB Code:
  1. Option Explicit
  2.  
  3.       Private Sub Form_Unload(Cancel As Integer)
  4.           If IsHooked Then
  5.              Unhook   ' Stop checking messages.
  6.           End If
  7.       End Sub
  8.  
  9.       Private Sub MSFlexGrid1_MouseUp(Button As Integer, _
  10.          Shift As Integer, x As Single, y As Single)
  11.           Static CurrentWidth As Single
  12.           ' Check to see if the Cell's width has changed.
  13.           If MSFlexGrid1.CellWidth <> CurrentWidth Then
  14.               Combo1.Width = MSFlexGrid1.CellWidth
  15.               CurrentWidth = MSFlexGrid1.CellWidth
  16.           End If
  17.       End Sub
  18.  
  19.       Private Sub Form_Load()
  20.           gHW = MSFlexGrid1.hWnd
  21.           Hook   ' Start checking messages.
  22.           MSFlexGrid1.AllowUserResizing = flexResizeColumns
  23.           MSFlexGrid1.Cols = 4
  24.           MSFlexGrid1.Rows = 6
  25.           MSFlexGrid1.RowHeightMin = Combo1.Height
  26.           Combo1.Visible = False
  27.           Combo1.ZOrder (0)
  28.           Combo1.Width = MSFlexGrid1.CellWidth
  29.           ' Load the ComboBox's list.
  30.           Combo1.AddItem "Some text"
  31.           Combo1.AddItem "Some more text"
  32.           Combo1.AddItem "Still more text"
  33.           Combo1.AddItem "Yet even more text"
  34.           Combo1.AddItem "Way more text than that"
  35.       End Sub
  36.  
  37.  
  38.       Private Sub MSFlexGrid1_Click()
  39.           ' Position and size the ComboBox, then show it.
  40.           Combo1.Width = MSFlexGrid1.CellWidth
  41.           Combo1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left
  42.           Combo1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top
  43.           Combo1.Text = MSFlexGrid1.Text
  44.           Combo1.Visible = True
  45.       End Sub
  46.  
  47.       Private Sub Combo1_Click()
  48.           ' Place the selected item into the Cell and hide the ComboBox.
  49.           MSFlexGrid1.Text = Combo1.Text
  50.           Combo1.Visible = False
  51.       End Sub
  52.  
  53.  
  54.  
  55. On the Project menu, add a new Module and insert the following code:
  56.  
  57.  
  58.       Option Explicit
  59.  
  60.       Declare Function CallWindowProc Lib "user32" Alias _
  61.          "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
  62.          ByVal hWnd As Long, ByVal Msg As Long, _
  63.          ByVal wParam As Long, ByVal lParam As Long) As Long
  64.  
  65.       Declare Function SetWindowLong Lib "user32" Alias _
  66.          "SetWindowLongA" (ByVal hWnd As Long, _
  67.          ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  68.  
  69.       Private Const GWL_WNDPROC = -4
  70.       Private IsHooked As Boolean
  71.       Private Const WM_SIZE = &H5
  72.       Private Const WM_PAINT = &HF
  73.       Private lpPrevWndProc As Long
  74.       Public gHW As Long
  75.  
  76.       Public Sub Hook()
  77.           If IsHooked Then
  78.           ' Do not hook it twice without unhooking,
  79.           ' or you will not be able to unhook it.
  80.           Else
  81.           lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
  82.              AddressOf WindowProc)
  83.           IsHooked = True
  84.           End If
  85.       End Sub
  86.  
  87.       Public Sub Unhook()
  88.           Dim temp As Long
  89.           temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
  90.           IsHooked = False
  91.       End Sub
  92.  
  93.       Function WindowProc(ByVal hw As Long, ByVal uMsg As _
  94.          Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  95.           WindowProc = CallWindowProc(lpPrevWndProc, hw, _
  96.              uMsg, wParam, lParam)
  97.           ' The interior of the control is repainted, but not resized.
  98.           If uMsg = WM_SIZE Or uMsg = WM_PAINT Then
  99.              Form1.Combo1.Width = Form1.MSFlexGrid1.CellWidth
  100.              Form1.Combo1.Left = Form1.MSFlexGrid1.CellLeft + _
  101.                 Form1.MSFlexGrid1.Left
  102.              Form1.Combo1.Top = Form1.MSFlexGrid1.CellTop + _
  103.                 Form1.MSFlexGrid1.Top
  104.           End If
  105.       End Function