Update Chapter 2

This commit is contained in:
Mauricio Baeza 2021-09-20 23:57:54 -05:00
parent c0dece5489
commit 0ef76e9847
3 changed files with 162 additions and 5 deletions

View File

@ -19,13 +19,13 @@ Este libro esta en constante ampliación, el [repositorio del proyecto][4] debe
Los lugares donde puedes encontrarme para cualquier comentario o duda de este libro son:
* El grupo oficial de Telegram
* El foro oficial
* En Mastodon
* El [grupo oficial de Telegram][5]
* El [foro oficial][6]
* En [Mastodon][7]
**Importante, nunca respondo preguntas en privado** a menos que quieras contratar mis servicios, la duda que tengas, es bastante probable que otros la tengas, así que la pregunta y su respectiva respuesta deben ser públicas para que todos se beneficien.
**Importante, nunca respondo preguntas en privado** a menos que quieras contratar mis servicios, la duda que tengas, es bastante probable que otros la tengan, así que la pregunta y su respectiva respuesta deben ser públicas para que todos se beneficien.
La tecnología avanza cada día, mencionarlo puede ser obvio, pero aún no llega, al usuario común, o sea, nosotros, la tenología que nos escriba nuestros programas por si sola, mientras llega, no queda otro camino que estudiar y practicar.
La tecnología avanza cada día, mencionarlo puede ser obvio, pero aún no llega, al usuario común, o sea, nosotros, la tecnología que nos escriba nuestros programas por si sola, mientras llega, no queda otro camino que estudiar y practicar.
Desarrollar macros, es una tarea abstracta pero divertida, no hay atajos para llegar a dominar el tema, solo la practica, únicamente la practica.
@ -40,3 +40,6 @@ Cada ejemplo mostrado en este libro ha sido probado al menos dos veces, asegurat
[2]: https://libreoffice.org
[3]: https://archlinux.org
[4]: https://git.cuates.net/elmau/libreoffice-books
[5]: https://t.me/libreoffice_es
[6]: https://ask.libreoffice.org/c/spanish/10
[7]: https://mstdn.mx/@elmau

View File

@ -97,6 +97,160 @@ Para entender el **¿por qué?**, analizaremos cada linea de nuestra primer macr
## Analizando nuestra primer macro
Toda macro tiene la estructura:
```vbnet
Sub nombre_de_la_macro()
REM Aquí va el código de la macro
End Sub
```
Las palabras **Sub**, **REM** y **End Sub**, son **palabras claves de Basic**. A las palabras claves también se les conoce como **reservadas** ya que solo el lenguaje, en este caso Basic, puede hacer uso de ellas, por ejemplo, **no puedes** escribir una macro como la siguiente:
```vbnet
Sub sub()
REM Aquí va el código de la macro
End Sub
```
El código anterior, si intentas ejecutarlo, debe producirte un **error de ejecución**, más adelante aprenderemos a controlar algunos tipos de errores.
En la línea:
```vbnet
MsgBox "Podrido Mundo"
```
Tenemos una nueva palabra clave de Basic: **MsgBox** que al mismo tiempo, es una **instrucción**, es decir, una palabra especial, que el lenguaje, en conjunto con el **EDI**, reconoce de modo diferente y "realiza", "hace", "ejecuta", una tarea especifica. ¿Que tarea? **MsgBox** muestra un "mensaje" en un cuadro de dialogo, ¿qué mensaje?, como habrás notado (por que de aquí en adelante tendrás que ser muy observador), el mensaje que muestra es el que "nosotros" le indicamos delante de ella, y como es una "cadena de texto", lo tenemos que hacer entre comillas y separada de la instrucción por un espacio, ¿sucederá lo mismo con números?, ¿y con fechas o algún otro valor?...
```vbnet
MsgBox 1234567890
MsgBox 15/01/1974
MsgBox 1dfgdfh245
```
Realiza todos las pruebas que quieras y me cuentas qué sucede.
Observa la primer linea de la macro que acabas de hacer, y que, si has seguido al pie de la letra, no tendrías que haber modificado:
```vbnet
REM ***** BASIC *****
```
La primer palabra (**REM**), también es una palabra clave Basic y lo que "hace" es decirle al programa (nuestra macro), que todo lo haya frente a ella es un comentario. El lenguaje se lo saltara olímpicamente sin hacerle caso. Comentar las lineas de código es una practica ampliamente recomendada y útil, sobre todo, cuando las macros van creciendo de tamaño y complejidad. Así que, asume esta recomendación "casi" como una regla, **siempre comenta tus lineas de código**.
Por ahí he leído que un código bien escrito no necesitaba comentarios, pero como nosotros somos “novatos” haremos caso omiso de ese comentario, pues como dijo alguna vez Ling Yu Tan -me gusta la gente amateur-. Así que ve al código de nuestra macro y comenta la linea que le agregaste, de modo que te quede, así:
```vbnet
REM Muestra un mensaje en un cuadro de dialogo
MsgBox "Podrido Mundo"
```
Los comentarios, también puedes establecerlos con una comilla simple (')
```vbnet
'Muestra un mensaje en un cuadro de dialogo
MsgBox "Podrido Mundo"
```
Además, podemos agregarlos, al final de la linea de código:
```vbnet
MsgBox "Podrido Mundo" REM Muestra un mensaje de dialogo
MsgBox "Podrido Mundo" 'Muestra un mensaje de dialogo
```
Reitero, procura comentar la mayor parte de tu código, tu memoria te lo agradecerá, así como todos los programadores con los que compartas tu código, si decides que sea software libre, como te recomiendo que sea.
Entonces, reiterando. Toda macro empieza con la palabra clave **Sub** y termina con las palabras claves **End Sub**. Toma macro debe tener un nombre, para nuestro ejemplo hemos usado: **mi_primero_macro**, este nombre debe cumplir algunas sencillas reglas:
1. No puede llevar espacios.
1. No puede iniciar con un número.
1. No debe repetirse el nombre de la macro, dentro del modulo en que se declara, o sea, no puede haber dos que se llamen igual.
Si se viola esta última regla, la intentar ejecutar cualquiera de las dos, obtendrás el mensaje de error:
![Mi primer macro](img/011_macros.png)
Observa la primer linea del mensaje: **rror de sintaxis de BASIC**, aquí, la palabra importante es; **sintaxis**, que, si nos atenemos a lo que dice la Doña Real Academia Española, quiere decir:
sintaxis
(Del lat. syntaxis, y este del gr. σύνταξις, de συντάσσειν, coordinar).
1. f. Gram. Parte de la gramática que enseña a coordinar y unir las palabras para formar las oraciones y expresar conceptos.
2. f. Inform. Conjunto de reglas que definen las secuencias correctas de los elementos de un lenguaje de programación.
De estas definiciones, la que nos interesa es la numero dos, trata de recordarla -Conjunto de reglas que definen las secuencias correctas de los elementos de un lenguaje de programación-.
A lo largo de este libro, aprenderemos e implementar este conjunto de reglas, las cuales, te confesaré, no son tantas ni tan complejas y como seguro habrás notado, el EDI nos informa muchas veces cuando algo anda mal en la sintaxis.
El EDI identificara cada línea de código a ejecutar de dos maneras, cuando encuentre un salto de línea o cuando existan dos puntos, como en:
```vbnet
Sub sentencias_en_una_sola_linea()
MsgBox "Estas es una sentencia" : MsgBox "Esta es otra sentencia"
End Sub
```
En sentencias largas, puedes usar el carácter de continuación de línea, que es el guion bajo (**_**), pero debes de recordar que es una sola sentencia:
```vbnet
Sub sentencia_larga()
MsgBox "Estas es una linea larga de código, se puede dividir " & _
"usando el guión bajo, como en este ejemplo"
End Sub
```
Basic no distingue mayúsculas de minúsculas en ninguna parte de su código, todas las formas siguientes son válidas sintácticamente.
* Combinación
```vbnet
Sub Mi_Primer_Macro()
MsgBox "Podrido Mundo"
End Sub
```
* Solo mayúsculas
```vbnet
SUB MI_PRIMER_MACRO()
MSGBOX "Podrido Mundo"
END SUB
```
* Solo minúsculas
```vbnet
sub mi_primer_macro()
msgbox "Podrido Mundo"
end sub
```
En Basic, es común la primer forma, pero en este libro usaremos una combinación de la primer para las palabras claves de Basic, y de la última para lo demás.
```vbnet
Sub mi_primer_macro()
MsgBox "Podrido Mundo"
End Sub
```
## El EDI
Ahora el EDI cuenta con algunas herramientas muy útiles al escribir código, para activarlas sigue estos pasos.
[1]:

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB