lunes, 16 de julio de 2018

sábado, 7 de julio de 2018

Visual Basic for Applications en ejemplos (IV)

En Visual Basic for Applications todo es un objeto (Object), repito, en Visual Basic for Applications  todo es un objeto y todo objeto tiene propiedades y métodos. Es importante aclarar que existe una jerarquía. En primer lugar está la Application, le siguen los Workbooks, Sheets y Ranges/Cells.


Application
Workbooks
Sheets
Ranges


Object ("Nombre") Object(Indice)
Workbooks("Datos") Workbooks(3)
Sheets("Hoja 2") Sheets(2)
Range("C3") Cells(5,3)

Es importante conocer está jerarquía para poder acceder a los elementos y atributos con los que deseamos trabajar.

Ejemplo. Acceder al valor de la casilla B6. Supongamos que el archivo se llama "Datos"y la hoja se llama "Hoja 1".

Nota: Ojo con Objet("Nombre")  y/o Object(Indice)

En Excel haría esto:
=B6

En VBA haría esto:
'Usando Object("Nombre")
Workbooks("Datos").Sheets("Hoja 1").Range("B6").Value

'Usando Object(Indice)
Workbooks(1).Sheets(1).Cells(6,2).Value


Diferencias entre Excel , VBA y Macros
Excel: es la aplicación donde creamos y usamos hojas
VBA: es la plataforma donde se escriben, guardan y ejecutan macros.
Macro: conjunto de código o comandos guardados que se ejecutan cuando se solicitan.

Es importante conocer los pilares de VBA.
  1. Object
  2. Function
  3. Property
  4. Methods
Object: una instancia de una clase
Function: acciones definidas que pueden o no devolver algún valor
Property: propiedades de un Object
Methods: acciones que actuan/interacuan con objetos

Por ejemplo un método puede ser Cortar, Copiar, Seleccionar, Borrar, e Insertar.

Funciones específicas de Excel (WorksheetFuntion) y funciones VBA

WorksheetFunction VBA function
CHOOSE Valor = Choose(1,"Code","on","the","Internet")
ASC Resultado = Asc("W")
CHR Result = Chr(56)
LCASE Mayuscula = LCase("ABCDE")
UCASE Minuscula = UCase("abcde")
LEN Longitud = Len("12 - AW - 555")
NOW Fecha = Now

Es importante diferenciar entre functiones porpias de Excel y VBA. Por el momento es todo.


Programación Windows Batch (CMD) parte 5


Continuando con la serie de ejemplos de programación batch en Windows.


1. Comentarios  unilínea y multilíneas. 

::Esto es un comentario
REM Este también es un comentario


GOTO ComentarioMultilinea

echo Esto no se ve, es un comentario multilinea 
echo Esto no se ve, es un comentario multilinea
echo Esto no se ve, es un comentario multilinea 
 
:ComentarioMultilinea


2. Ejemplo de uso de sentencias IF. Aquí usamos comandos de red como PING, NETSTAT, etc.

Menu.bat

@echo off
COLOR 4e
TITLE IFs
:Menu
echo ==================================
echo =                                                                                        =
echo =                                   Menu                                            =
echo =                                                                                        =
echo ==================================
echo.
echo.
echo 1. Comprobar conexion a Internet
echo 2. Mostrar parametros de conexion a red
echo 3. Mostrar lista de ip activas
echo 4. Estadistica de protocolos y conexiones de red
echo 5. Estadistica de protocolos, conexiones TCP/IP
echo 6. Configuracion de red %USERNAME%
echo 7. Probar conexion y seguir ruta
echo 8. Seguimiento de ruta
echo 9. Mostrar lista de interfaces y enrutamiento
echo 10. Informacion del DNS
echo 11. Obtener direccion fisica de red
echo 12. Exit
echo Tu opcion es:
set /p opc=
echo ***********************************

:: Opciones
if %opc%==1 goto :ConexionPing
if %opc%==2 goto :ConexionParam
if %opc%==3 goto :ConexionLista
if %opc%==4 goto :ConexionEstadistica
if %opc%==5 goto :ConexionesTCP
if %opc%==6 goto :ConexionesUser
if %opc%==7 goto :ConexionesPath
if %opc%==8 goto :ConexionesTracert
if %opc%==9 goto :ConexionesRoute
if %opc%==10 goto :ConexionesDns
if %opc%==11 goto :ConexionesFisica
if %opc%==12 goto :Salida

::1
:ConexionPing
CLS
echo Comprobando conexion a red
ping google.com
goto Menu

::2
:ConexionParam
CLS
echo Mostrar parametros de red
ipconfig /all 
goto Menu

::3
:ConexionLista
CLS
echo Lista de ips activas
ARP -a
goto Menu

::4
:ConexionEstadistica
CLS
echo Estadistica de protocolos y conexiones de red 
NETSTAT -oan 6
goto Menu

::5
:ConexionesTCP
CLS
echo Estadistica de protocolos y conexiones TCP/IP
NBTSTAT -n
goto Menu

::6
:ConexionesUser
CLS
echo Configuracion de red %USERNAME%
NET user %USERNAME%
goto Menu

::7
:ConexionesPath
CLS
echo Probar conexion y seguir ruta
PATHPING google.com
goto Menu

::8
:ConexionesTracert
CLS
echo Seguimiento de ruta
TRACERT google.com
goto Menu

::9
:ConexionesRoute
CLS
echo Mostrar lista de interfaces y enrutamiento
ROUTE PRINT
goto Menu

::10
:ConexionesDns
CLS 
echo Informacion del DNS
NSLOOKUP google.com
goto Menu

:ConexionesFisica
CLS
echo Obtener direccion fisica de red
GETMAC
goto Menu

::12
:Salida
CLS
echo Saliendo
exit

Analizando el script tenemos algunas cosas, por ejemplo:
Para ingresar datos por teclado y asignarlos a una variable podemos usar SET /p variable=
echo Ingresa tu opcion:
SET /p opcion=
::Si la opcion es 1 irá a la función opcion1
IF %opcion%==1 GOTO :opcion1

::Esto es una función
:opcion1
echo Hola

Espero sirva de algo.


domingo, 1 de julio de 2018

Visual Basic for Applications en ejemplos (III)

Nota: Antes de nada podrías ver  como habilitamos la ventana de Desarrollador(Programador):
http://alquimistadecodigo.blogspot.com/2018/06/visual-basic-for-applications-en_8.html


Ventanitas MsgBox

Síntaxis

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

Ejemplos.

MsgBox "Hola, usuario. ¿Qué te parece el lenguaje VBA?"

MsgBox "¿Necesitas ayuda?",vbYesNoCancel+vbExclamation

MsgBox "¿Seguro quieres eliminar windows de tu sistema?", vbYesNo+vbInformation,"Aviso del sistema"

Dim Resultado As Boolean

Resultado = MsgBox "¿Deseas descargar archivo?",vbYesNo 

If Resultado=vbYes Then
    MsgBox "Descargar archivo"
Else
   MsgBox "Descarga cancelada"
End If

Ejemplo 1. Crearemos una hoja de excel habilitada para macros con el nombre Test.xlsm. En la pestaña Desarrollador vamos a Insertar. Saldrá una paleta de controles. Elegimos un CommandButton, le cambiamos el nombre por Activar. Para asignar macro a un botón puedes ver esto.

Abrimos el editor de código (Alt + F11).

Crearemos un procedimiento llamado Inicio.

Option Explicit ' Obligamos a declarar variables
Dim Anuncio As String 

Sub Inicio()

End Sub

Dentro de este procedimiento pegamos el siguiente código:

Anuncio = "Este es un simple mensaje"

MsgBox  Anuncio, vbInformation, "Aviso del sistema"

Damos clic al botón Activar.


Option Explicit ' Obligamos a declarar variables
Dim Anuncio As String
Sub Inicio()
     Anuncio = "Este es un simple mensaje"    MsgBox  Anuncio, vbInformation, "Aviso del sistema"
End Sub

Bastante sencillo, ¿no creen? En siguientes post veremos ejemplos más complejos.


Links
https://exceltotal.com/la-funcion-msgbox-en-vba/
https://support.office.com/es-es/article/asignar-una-macro-a-un-bot%C3%B3n-formulario-o-control-d58edd7d-cb04-4964-bead-9c72c843a283
https://analysistabs.com/vba/msgbox/

sábado, 9 de junio de 2018

Vue JS

Vue JS es un framework javascript "progresivo" para uso aplicaciones dinámicas sencillas y/o SPA (Single-Page Application).

Ejemplo. Crearemos una simple página HTML y colocaremos esto en el <head> </head>

<script src="https://unpkg.com/vue"></script>

Con esto ya podremos usar Vue JS sin necesidad de instalarlo. El paso que sigue es crear un div, el id será "app" y el mensaje que visualizaremos se verá reflejado entre las llaves {{aqui}} de la siguiente forma:

<div id="app">
  <p>{{ mensaje }}</p>
</div>

Por último agregaremos un script:
<script>
new Vue({
  el: '#app',
  data: {
    mensaje: 'Hola, es un buen día para programar.'
  }
})
 </script>

Donde "el" es el elemento div, "data" es quien trae los datos, y "mensaje" donde escribimos el mensaje a mostrar. Pare ver esto solo abrimos nuestra página HTML en cualquier navegador. No es necesario compilar nada.

Código completo:

<!DOCTYPE html>
 <html lang="es">
 <head>
  <meta charset="utf-8"> 
  <title>HTML5::JS</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="https://unpkg.com/vue"></script>

 </head>
 <body>
<div id="app">
  <p>{{ mensaje }}</p>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    mensaje: 'Hola, es un buen día para programar.'
  }
})
 </script>
 </body>
 </html>


Links:
https://vuejs.org/
https://carlosazaustre.es/que-es-lo-que-me-gusta-de-vue-js/
https://www.genbetadev.com/desarrollo-web/por-que-elegir-vuejs-5-razones-para-considerarlo-nuestro-proximo-framework-de-referencia

viernes, 8 de junio de 2018

Visual Basic for Applications en ejemplos (II)


Para empezar a programar en VBA necesitamos habilitar la herramienta de Desarrollador (o Programador en algunas versiones).

Abrimos Opciones de Excel > Personalizar cinta de opciones:


Marcamos la etiqueta de Desarrollador. Damos Aceptar.

Debe quedar algo así en la barra de Excel:



Listo. Podemos empezar a programar en VBA.

Guardamos con la extensión *.xlsm y habilitamos la seguridad de macros (Centro de confianza).



Debemos presionar las teclas Alt + F11 para abrir el editor de código.

Variables y constantes.

Una variable es un espacio en memoria que tiene un tipo un nombre de referencia y su valor puede variar. Para definir una variable debes usar Dim. Nos sirve para declarar y asignar espacio de una o más variables. Existen variables tipo Integer, Long, Single, String, Boolean, Variant.

Una constante es un valor que no puede variar.

Ejemplo.
'Variables, su valor puede ser modificado
Dim  Entero As Integer
Dim Cadena As String
Dim Verdadero As Boolean = True
Dim Numero As Long = 100000
Dim Tasa As Variant

'Constantes, su valor no puede ser modificado
Const PI = 3.1415169


Clases, funciones, métodos y procedimientos.

Procedimiento: Es un conjunto de instrucciones que cumplen una tarea
Función: Como un procedimiento pero retorna un valor
Clase: Concepto de programación orientada a objetos, es una forma de  encapsular funcionalidad, contiene campos y métodos.
Método: Puede ser un procedimiento o una función, la diferencia es que le pertenece a una clase.

Ejemplos.
'Ejemplo de función (devuelve resultado)
Function Suma(x,y)
   sumar = x+y
End Function 


'Ejemplo de procedimiento(no devuelve resultado)
Sub Msg()
     LabelComentario.Caption ="Hola, usuario!!"
End Sub

Listo. Tenemos lo necesario para iniciar.

Link:
https://alquimistadecodigo.blogspot.com/2018/06/visual-basic-for-applications-en.html
https://es.stackoverflow.com/questions/7403/diferencias-entre-m%C3%A9todos-procedimiento-funci%C3%B3n-para-que-sirven-cada-uno-y-co
https://ayudaexcel.com/crear-procedimientos-vba-excel/








Visual Basic for Applications en ejemplos (I)


¿Por qué debería aprender a programar en VBA?
Si quieres programar aplicaciones para Microsoft y ampliar las funcionalidades de su suite ofimático (Microsoft Office) te servirá bastante. Si no es el caso, de todos modos no te quitará nada saber sobre VBA.

Microsoft Excel, Word, Outlook y PowerPoint  poseen un editor de código para automatizar tareas. Emplean el lenguaje Visual Basic (for Applications) para programar.  El lenguaje es relativamente sencillo de aprender a mi parecer. Las estructuras de control son similares a cualquier lenguaje de programación, salvando las distancias obviamente.

Estructuras de control en Visual Basic.
1. Top-down (de arriba hacia abajo)
2. Selectivas.
3.  Repetitivas.

Ejemplos.

'Este es un comentario
'Estructura selectiva usando If
Dim clave As String
If clave="12345" Then
   MsgBox "Tu clave es correcta"
Else
   MsgBox "Tu clave es incorrecta"
End If

'Usando Select Case (selectiva)
Dim opcion As Integer
Select Case opcion
Case 1
   MsgBox "A" &opcion
Case 2
   MsgBox "B" &opcion
Case Else
   MsgBox "No definida"
End Select


'Usando For (repetitiva)
Dim Contador As Integer
Const MAX As Integer=50

For Contador=0 To MAX
   LabelContador.Caption = Contador
Next Contador

'Usando While (repetitiva)
Dim X As Integer
Const MAX As Integer = 100
While X = MAX
'Operaciones a realizar
Wend

Éste es el primer post sobre VBA. En el siguiente trataremos sobre funciones y métodos.

Link:
http://codemonkeyjunior.blogspot.com/2012/08/programacion-en-vba-ejemplo-no-1.html


Visual Basic for Application en ejemplos(V)

Serie de ejemplos de código en VBA. Código para abrir Hojas, agregar Hojas, seleccionar celdas, etc.