Hola, tus dudas son fáciles de solucionar.. verás..
El MsgBox con VbQuestion+vbyesNo lo que hace es devolver True si pulsas en sí y False si pulsas en No, es como una variable Booleana por lo tanto si quieres que haga una cosa u otra dependiendo que botón pulse sólo tienes que meter el msgbox en un if que compare la respuesta con vbyes o vbno.
Ejemplo:
Para que te pregunte al cerrar el programa tienes que colocar tu código en Form_Unload. La función Form_Unload lleva un parámetro Cancel con el que podrás decidir si cerrar o no el formulario, lo pones a 1 si quieres impedir que se cierre tu programa y a 0 en caso contrario, es más claro con un ejemplo.
Ejemplo:
Espero que te sea de ayuda,
Saludos!!
El MsgBox con VbQuestion+vbyesNo lo que hace es devolver True si pulsas en sí y False si pulsas en No, es como una variable Booleana por lo tanto si quieres que haga una cosa u otra dependiendo que botón pulse sólo tienes que meter el msgbox en un if que compare la respuesta con vbyes o vbno.
Ejemplo:
Código (vb) [Seleccionar]
Private Sub Command1_Click()
If MsgBox("Texto", vbQuestion + vbYesNo, "Título") = vbYes Then
MsgBox "has pulsado SI"
Else
MsgBox "Has pulsado NO"
End If
End Sub
Para que te pregunte al cerrar el programa tienes que colocar tu código en Form_Unload. La función Form_Unload lleva un parámetro Cancel con el que podrás decidir si cerrar o no el formulario, lo pones a 1 si quieres impedir que se cierre tu programa y a 0 en caso contrario, es más claro con un ejemplo.
Ejemplo:
Código (vb) [Seleccionar]
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Desea Salir", vbQuestion + vbYesNo, "Título") = vbYes Then
Cancel = 0
Else
Cancel = 1
End If
End Sub
Espero que te sea de ayuda,
Saludos!!