El problema parece estar en la peculiaridad de Visual Basic en cuanto a la petición de datos en comparación con otros lenguajes (en otros lenguajes al pedir un dato se detiene el programa, y en el caso de estar dentro de un bucle, el bucle se detiene). Con visual Basic si introduces los datos con un textBox no hay detención del programa y si estás dentro de un bucle el bucle no se detiene.
Para forzar la petición del dato con detención de la ejecución evitando que se genere un bucle donde no puedes introducir los datos nuevamente puedes probar a utilizar inputbox (forma de pedir datos que sí da lugar a la detención del programa).
El código sería similar a esto (no lo he probado, pero guíate por la idea y haz pruebas tú mismo):
Option Explicit
Dim Base As Integer
Dim Altura As Integer
Dim Area As Integer
Dim Aceptacion As Integer
Private Sub Command1_click()
Aceptacion = vbYes
Do While Aceptacion = vbYes
Base = InputBox("Introduzca la base del rectángulo en cm", "Dato base")
Altura = InputBox("Introduzca la altura del rectángulo en cm", "Dato altura")
Area = Base * Altura
Aceptacion = MsgBox("El area del rectángulo es de " & Area & " centímetros cuadrados" & vbCrLf & "¿Quieres calcular otro area?", vbYesNo, "Calculo de area")
Loop
If Aceptacion = vbNo Then
MsgBox ("Gracias por utilizar el programa")
End If
End Sub
Como ves he prescindido de textbox, y la petición de datos comenzaría una vez se pulse el botón.
Otra opción que tienes es meter el código dentro de Private Sub Form Load, con lo cual directamente empezará la petición de datos sin tener que pulsar un botón. De ambas maneras (teniendo que pulsar un botón o sin tener que pulsarlo) la idea es que se ejecute un bucle cierto número de veces hasta que el usuario decida terminar.
Creo que con lo expuesto puedes intentar resolverlo.
Saludos