Cambiando dinámicamente, por programación, el tipo de celda DataGridViewCell de un DataGridView

Problema: Tengo un grid que contiene una columna de tipo combo DataGridViewComboBoxCell y deseo que, por medio de programación, cambiarlo a un tipo texto DataGridViewTextBoxCell, pero solo una celda en particular.
Solución: Crear un nuevo tipo y asignarlo al grid.

Para mejor comprensión, pongo un ejemplo.

Tengo un formulario llamado Form1, el cual contiene un grid llamado DataGridView1 y un botón llamado Button1.

En el load del formulario tengo el llenado del grid.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Se llenan datos de prueba en el grid
        Dim dt As New DataTable("b")
        dt.Columns.Add("col")
        dt.Rows.Add("bb1")
        dt.Rows.Add("bb2")
        dt.Rows.Add("bb3")
        Me.DataGridView1.DataSource = dt

        'Se crea una columna combo, se llenan de datos de prueba y se añade al grid
        Dim cmb As New DataGridViewComboBoxColumn()
        cmb.Items.Add("111")
        cmb.Items.Add("222")
        cmb.Items.Add("333")
        Me.DataGridView1.Columns.Add(cmb)
End Sub

Luego, el cambio de tipo lo tengo en el evento Click del botón.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cell As New DataGridViewTextBoxCell() 'Creamos un nuevo tipo de celda
        cell.Value = "bb1" 'Se pone un valor cualquiera
        Me.DataGridView1(1, 1) = cell 'Se lo cambia en la posicion deseada
End Sub

Nota: Ejemplos e información proporcionada desde está página web: Windows Forms Data Controls and Databinding FAQ