Introducction and initial chapter 2

This commit is contained in:
Mauricio Baeza 2021-09-19 18:59:17 -05:00
parent 39fca2b4bd
commit c0dece5489
14 changed files with 111 additions and 5 deletions

View File

@ -1,10 +1,8 @@
{title}LibreOffice Macros con Basic
# Introducción
> "Quien recibe una idea de mí, recibe instrucción sin disminuir la mía; igual que quien enciende su vela con la mía, recibe luz sin que yo quede a oscuras"
{author_cite}Thomas Jefferson
Thomas Jefferson{author_cite}
Este libro es la revisión completa de mi anterior libro ["Aprendiendo OOo Basic"][1] que estaba orientado al (casi) difunto Apache OpenOffice. Ahora, ha sido reescrito orientado completamente a [LibreOffice][2].
@ -25,10 +23,16 @@ Los lugares donde puedes encontrarme para cualquier comentario o duda de este li
* El foro oficial
* En Mastodon
**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 todo 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 tengas, 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.
Desarrollar macros, es una tarea abstracta pero divertida, no hay atajos para llegar a dominar el tema, solo la practica, únicamente la practica.
Cada ejemplo mostrado en este libro ha sido probado al menos dos veces, asegurate de copiarlo correctamente, si, puedes copiar.
> Dedico este trabajo a las personas que me amana, sin su amor, no sería lo que soy.
> Dedico este trabajo a las personas que me aman, sin su amor, no sería lo que soy.

View File

@ -0,0 +1,102 @@
# Conceptos iniciales
Como soy una persona peresoza no me gusta trabajar, por eso, cuando descubrí lo que se podía hacer con los lenguajes de programación, comprendí que esto es lo que necesitaba (y lo que me gustaba). Los lenguajes de programación nos permiten ordenarle a la computadora que haga por nosotros esas tareas complejas, repetitivas y tediosas (también las divertidas). Aquí aprenderemos como hacer en LibreOffice, esas tareas complejas, repetitivas y tediosas con uno de sus varios lenguajes con los que se puede programar en él, Basic.
Las instrucciones que usamos para decirle al programa qué hacer, como, cuando, el orden y la secuencia en que queremos que lo haga, las llamaremos **macros**, estas macros podemos hacerlas de forma "semiautomática" con la Grabadora de macros (por ahora sólo presente en Writer y Calc) o escribirlas nosotros desde cero, a mi criterio, a esta grabadora todavía le falta madurar un poco, por lo cual, crearemos nuestras macros desde cero, veras que no es tan complicado y si, muy divertido.
## ¿Donde se guardan las macros?
Lo primero que tienes que aprender (y recordar) es que las macros se guardan en módulos, estos a su vez se guardan y organizan en bibliotecas, las cuales, están contenidas dentro de documentos, con lo cual tendremos el siguiente diagrama, por cierto, hecho en Draw.
![Donde se guardan las macros](img/001_macros.png)
Todos los documentos tienen una biblioteca especial predeterminada llamada **Standard**, a esta biblioteca le puedes agregar y eliminar módulos pero no puedes eliminarla. Los módulos, además de macros pueden contener **funciones** y los documentos también pueden contener **diálogos**.
En la siguiente imagen puedes ver un documento (codigo_libro.ods) con una biblioteca (mi_biblioteca), un modulo (mi_modulo) y dos macros.
![Organizar macros](img/002_macros.png)
Las macros guardadas en documentos, solo estarán disponibles mientras el documento este abierto y con las macros activadas. Por seguridad, siempre activa macros de **confianza**, es decir, que sepas exactamente que hacen o al menos quien la hizo.
Las macros también pueden guardarse en el perfil del usuario, con lo que estarán disponibles solo para este usuario.
![Mis macros](img/003_macros.png)
Además, se pueden guardar dentro del directorio de LibreOffice con lo que estarán disponibles para todos los usuarios, solo un usuario con permisos de escritura en estos directorios, generalmente un administrador, puede guardarlas ahí. Todas las macros de ayuda y ejemplo que incorpora LibreOffice, están en este espacio.
![Macros de LibreOffice](img/004_macros.png)
## Seguridad en macros
Mencionamos que las macros, para poder ejecutarse, deben de estar activas. Dependiendo del nivel de seguridad establecido en LibreOffice, veras uno u otro mensaje o tal vez ninguno.
Por default, al instalar, el nivel es **alto**, así que al abrir un documento con macros veras el siguiente mensaje y las macros estarán desactivadas.
![Nivel de seguridad alto](img/005_macros.png)
Mi recomendación es establecer el nivel en **medio**, para esto, vamos el menú Herramientras->Opciones... o presionando el método abreviado de teclado Alt+F12, en el cuadro de diálogo abierto, en el control de árbol izquierdo, selecciona la rama LibreOffice->Seguridad y del lado derecho da click en el botón de comando **Seguridad de macros...**
En el cuadro de diálogo que se abre, selecciona el botón de opcion: **Medio** y guarda los valores con el botón de comando **Aceptar** de cada cuadro de diálogo.
Ahora, al abrir un documento con macros, debes de ver el siguiente mensaje donde tendrás la opción de activar o desactivar según confies o no en la fuente.
![Nivel de seguridad medio](img/006_macros.png)
**IMPORTANTE**: Siempre verifica la fuente de tus macros, ante la duda, es mejor que las desactives.
## Mi primer macro
Vamos a crear paso a paso nuestra primer macro. Abre Calc o tu aplicación LibreOffice favorita y guardala en el lugar que quieras con el nombre que quieras. Te recomiendo usar una carpeta de trabajo exclusiva para los temas que veamos en este libro.
Ve al menú Herramientras->Macros->Organizar macros->Basic... y selecciona la librería **Standard** del documento que hayas creado y da click en el botón de comando **Nuevo**.
![Organizar macros](img/007_macros.png)
La acción anterior te permitirá establecer el nuevo nombre para un nuevo módulo, establece el nombre que quieras y da click en el botón de comando **Aceptar**.
![Nuevo módulo](img/008_macros.png)
Inmediatamente deberás ver el entorno de desarrollo integrado (EDI de aquí en adelante) que incorpora LibreOffice para Basic.
![Nuevo módulo](img/009_macros.png)
Este **EDI**, será nuestro centro de trabajo para todo, así que es muy importante te familiarices con él. Nota que al crear un nuevo módulo, el sistema agrega ya cierta información, lo que ves ahí es la estructura más básica de una macro.
```vbnet
Sub Main
End Sub
```
Reemplaza este contenido con el siguiente código:
```vbnet
Sub mi_primero_macro()
MsgBox "Podrido Mundo"
End Sub
```
Vamos a **ejecutar** la macro, es decir, a que haga lo que hemos códificado que haga. Asegurate de tener el cursor de escritura **dentro** de la macro, en este caso, en la línea con la palabra **MsgBox** y presiona la tecla **F5**.
Este debe ser el resultado:
![Mi primer macro](img/010_macros.png)
Si ves el resultado anterior, felicidades, ya eres todo un programador. Ya sabes el **como**, pero espera, no eres todavía un programador completo, te falta saber
el **porqué** para lograr lo que decía mi entrañable profesor de topografía:
> El hombre teórico sabe "por qué",
> el hombre practico sabe el "cómo",
> lo ideal es saber "cómo" y "por qué"...
Para entender el **¿por qué?**, analizaremos cada linea de nuestra primer macro en el siguiente tema.
## Analizando nuestra primer macro
[1]:

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB