... a ver , te explico
Un bucle for...next es un contador, un repetidor o si se prefiere un condicionador... la función que hace es repetir algo x veces por ejmplo:
coloca un botón en el formulario, ariba a la derecha , agranda el formulario verticalmente y no muy estrecho... copia este código y ejecútalo.
Private Sub Command1_Click()
Dim año As Integer, k As Byte
Static veces As Integer
Form1.Cls
Form1.CurrentX = ScaleX(20 + veces, vbPixels, vbTwips)
Form1.CurrentY = ScaleY(10, vbPixels, vbTwips)
Form1.Print "Este año nace un niño..."
año = 2009
For k = 1 To 30
Form1.CurrentX = ScaleX(40 + veces, vbPixels, vbTwips)
Print "El año " & k + año & " el niño tendrá: " & k & " años de edad... ":
Next
veces = veces + 3
End Sub
Verás que el programa escribe un montón de líneas... en el código sólo hemos escrito una línea de texto, como ves el bucle se encarga de repetir varias veces lo contenido dentro del mismo...
Para entender bien el bucle pulsa varias veces seguidas el botón, verás el texto que 'se va desplazando a la derecha'...
En realidad pulsar el botón 20 veces es cansado, es repetitivo, precisamente para eso existen los bucles para ahorrarnos el trabajo de repetir manualmente un bloque de código determinado.
Para el programa, ahora pulsa la tecla de función: F8 (encima del par de teclas '9' y '0' ), púlsala una y otra vez verás que el cursor marca una línea (probablemente la resalte de color amarillo) estás en el modo paso a paso... llega así hasta el bucle y verás como al llegar anext, retorna a la 1ª línea del bucle.
...ahora vamos por if... then...else 'if' típicamente es un conndicional, en lenguaje claro diríamos que sirve para hacer preguntas, así de claro... yo puedo preguntarte ¿Qué edad tienes?, pero este dato cuando se pide , se pide para algo, por ejemplo cuando te para un poli por la calle y te dice que llevas el tubo de escape de la moto suelto y te va a hacer de regalito una multa saca su libreta el lápiz y te pide el nombre te dice son X la multa, luego te pide los documentos de la moto y tú le dices, no los llevo, los olvidé en casa, entonces el te dice, si no tienes papeles, la multa sube X más...
Estamos usando 'if ' de modo desapercibido, si tienes los papeles de la moto te puedes ir, si no los tienes tendré que aumentarte la multa... programado sería
If papeles= true then
---call Vete_Donde_quieras
Else
---multa= multa + X
end ifPara ilustrarte un ejemplo práctico retocaremos el programa inicial... añadiendo un condicional if..
Le diremos al niño que si ha cumplido los 20 años que se vaya de casa que ya es mayorcito...
Observa que el código es el mismo, que el anterior, excepto al final de la línea de texto, hemos sustituído los 2 puntos por una coma y
hemos hecho un un añadido...
Private Sub Command1_Click()
Dim año As Integer, k As Byte
Static veces As Integer
Form1.Cls
Form1.CurrentX = ScaleX(20 + veces, vbPixels, vbTwips)
Form1.CurrentY = ScaleY(10, vbPixels, vbTwips)
Form1.Print "Este año nace un niño..."
año = 2009
For k = 1 To 30
Form1.CurrentX = ScaleX(40 + veces, vbPixels, vbTwips)
Print "El año " & k + año & " el niño tendrá: " & k & " años de edad... ",
If k >= 20 Then
Print " Ya es hora que te vayas de casa eres mayorcito":
Else
Print:
End If
Next
veces = veces + 3
End Sub
Con esto debería bastarte para entender el if y el for....