Apuntes de los cursos Computación Para Empresas y Sistemas de Información Gerencial. Lean todo porque aquí están las preguntas de las dos pruebas. No olviden de inscribirse en el curso Visual Basic Para Oficinas en la barra lateral, es OBLIGATORIO y va con nota.
lunes, 17 de marzo de 2014
8.- UN EJEMPLO EN EL ANTIGUO BASIC
Palabras reservadas (instrucciones del lenguaje)
Así como los lenguajes naturales usan un vocabulario de palabras para construir frases, el VBA tiene un vocabulario de palabras reservadas que son las instrucciones y no las podemos usar como nombres de variable. Un lenguaje natural tiene muchísimas palabras (el castellano tiene entre 300.000 y 400.000), un lenguaje como el VBA tiene apensas unas decenas, y las que usamos normalmente son muy pocas. Una lista completa se puede ver aquí, y esta es una lista de las más comunes:
Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Como ven, para programar basta con manejar un vocabulario de menos de 40 palabras, que se combinan para hacer las diferentes expresiones. ¡Cualquiera puede aprenderlas!
Para efectos pedagógicos solamente, vamos a agregar dos instrucciones que son del antiguo Basic: Input, que permite recibir datos entrados desde el teclado y Print, que muestra datos en pantalla. Estas dos instrucciones ya no se usan en VBA pero son intuitivas y fáciles de comprender así es que haremos algunos ejemplos usando código Basic antiguo, lo que además les sirve si después quieren aprender Python u otros lenguajes que usan estas instrucciones.
Usando antiguo código Basic, explicaremos como funciona el condicional If y los loop con For, veamos
Ejemplo con If - Then -End if
Ingresar los datos de cantidad de un artículo comprado y precio unitario, almacenarlos en dos variables que llamaremos (arbitrariamente) CantCompra y PrecUnit, determinar si la compra excede o no el cupo de 500000, si no lo excede, poner en pantalla "Compra Autorizada", si lo excede poner "No Autorizada-Excede Cupo", luego, en cualquiera de los casos, debe poner el mensaje "FIN", el código en Basic es el siguiente:
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Comentario del código:
Este código contiene 10 líneas o "expresiones", equivalentes a 10 frases en lenguaje natural, se ejecutan secuencialmente, una después de otra de arriba a abajo, es una lista de instrucciones. Las primeras dos líneas piden que entremos datos a las variables CantCompra y PrecUnit usando el teclado, para ello muestran dos mensajes constantes que son "Ingrese Cantidad" e "Ingrese Precio Unitario", los mensajes y valores de texto (String) constantes se escriben entre comillas para distinguirlos de las variables. Su valor es siempre el mismo. Las variables en cambio pueden almacenar cualquier valor que les ingresemos, o sea sus valores son distintos cada vez.
Las variables generalmente pueden recibir su valor de dos maneras: ingresadas por el usuario (por ejemplo desde el teclado) o generadas por el programa mediante un cálculo o una instrucción. En la línea 3 se define una nueva variable que le pusimos nombre TotVta y se genera por el programa mediante un cálculo: multiplicando la cantidad por el precio.
Las líneas 4, 5 y 6 comparan el valor de TotVta con el valor constante de 500000 (como es un número, no va entre comillas, si lo ponemos entre comillas sería tratado como String y no podríamos hacer la comparación). Entonces la condición es ¿TotVta es mayor que 500000?, si es mayor coloca un mensaje que niega la venta y si no es mayor salta a la instrucción siguiente.
Las líneas 7, 8, y 9 comparan nuevamente el valor de TotVta con el valor constante de 500000, pero esta vez la condición es ¿TotVta es menor o igual a 500000? (noten que la condición en este caso es menor o igual, o sea dos en una), si se cumple entonces autoriza la venta.
En cualquiera de los casos salta a la instrucción 10 que coloca en pantalla el mensaje constante "FIN"
Este ejemplo es trivial y no está optimizado, el código se puede mejorar un poquito -lo dejo como ejercicio- pero lo escribí así para una máxima claridad pedagógica. Ese código lo podemos representar en un Diagrama de Flujo que se muestra al comienzo de esta entrada (doble clic para verlo más grande).
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3"... etc. hasta "Pasada número 100". Después de eso mostrará un solo mensaje que dirá "Fin de las pasadas".
NOTA IMPORTANTE: ¿Se han fijado que todas las instrucciones que van "dentro de un If o un ciclo For aparecen "corridas" hacia la derecha? esto se llama "indentación" y aunque en VBA no es obligatorio es muy importante escribir siempre así es código, para su claridad de lectura, todo lo que sigue a un If o un For se escribe corrido un tab a la derecha, siempre (en otros lenguajes como Python esto es obligatorio).
Suscribirse a:
Enviar comentarios (Atom)
En VBA las variables no pueden poseer los nombres que existen en las instrucciones, como por ejemplo: Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
ResponderEliminarAdemás se puede programar manejando un vocabulario menor de 40 palabras que combinadas producen diferentes expresiones.
Para los ejemplos se utilizaron dos instrucciones del antiguo Basic (no se usan en VBA, pero sirven para Python): Input (recibe datos entrados del teclado) y Print (muestra datos en pantalla).
If - Then -End if
Ingresar los datos de cantidad de un artículo comprado y precio unitario, almacenarlos en dos variables llamadas CantCompra y PrecUnit, determinar si la compra excede o no el cupo de 500000, si no lo excede, poner en pantalla "Compra Autorizada", si lo excede poner "No Autorizada-Excede Cupo", luego se debe poner el mensaje "FIN”:
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Este código tiene 10 expresiones y son una lista de instrucciones secuenciales . Las primeras dos líneas piden ingreso de datos a las variables CantCompra y PrecUnit usando el teclado, para ello muestran dos mensajes que son "Ingrese Cantidad" e "Ingrese Precio Unitario". Su valor es siempre el mismo, a diferencia de las variables (sus datos son distintos cada vez).
Las variables pueden recibir su valor de dos maneras:
1.- ingresadas por el usuario (desde el teclado)
2.- generadas por el programa (mediante cálculos o una instrucciones)
En la línea 3 se define una variable con el nombre TotVta que se genera por el programa mediante un cálculo: multiplica cantidad por precio.
Las líneas 4, 5 y 6 comparan el valor de TotVta con el valor constante de 500000. Si la condición es mayor que 500000 coloca un mensaje que niega la venta y si no es mayor salta a la instrucción siguiente.
Las líneas 7, 8, y 9 comparan el valor de TotVta con el valor constante de 500000. Si condición es menor o igual a 500000 entonces autoriza la venta.
En cualquiera de los casos salta a la instrucción 10 que coloca en pantalla el mensaje constante "FIN"
For - To – Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3"... etc. hasta "Pasada número 100". Al finalizar un mensaje dirá "Fin de las pasadas".
Pregunta:
¿Cómo podemos llevar este ejemplo a VBA (ya que no tendria imput ni print)?
Juan Pablo Domínguez (INGESIC)
Hola Juan Pablo, con la aparición de los sistemas operativos basados en ventanas en lugar de pantallas negras con solo texto, que tienen elementos activos que responden a un clik, doble click, a la tecla Enter, etc. Input y print pasaron de moda en los lenguajes visuales (aún se usan en muchos otros lenguajes que funcionan en modo de texto como Python por ejemplo).
ResponderEliminar¿Como se reemplazan? con un solo objeto que es -por ejemplo- TextBox1.Text donde TextBox1 es el nombre del objeto que VBA coloca por defecto (podemos cambiarlo por cualquier otro si queremos) y funciona como input si se escribe a la derecha de una instrucción y como print si se escribe a la izquierda, Te pongo el ejemplo en Basic antiguo y VBA para que se entienda claro
Basic antiguo
Input, "Nombre", Nomb
VBA
Nomb=Textbox1.Text
(suponiendo que en Textbox1.Text ingresas el nombre, en este caso al lado lo pones un Label1 cuya propiedad Caption sea "Nombre")
Print "Nombre",Nomb
TxtBox1.Text=Nomb
SUponiendo que el programa en alguna parte calcula o define la variable Nomb como el nombre, también en este caso le puedes poner un Label "Nombre" al lado del TextBox
Entendemos que al igual que los lenguajes naturales pueden formar palabras, el VBA también puede crear palabras que son las instrucciones. Estas no se puede usar como variables porque son palabras reservadas.
ResponderEliminarSólo se necesitan aprender unas 40 palabras para combinarlas y lograr expresiones.
Es interesante ver como se puede hacer un código muy útil con muy pocas palabras!.
sabemos que las variables las pueden ingresar los usuarios pero ¿como puedo hacer para que se ejecuten desde un programa sólo? por ejemplo yo quiero hacer un macro y esa "instrucción" debe ejecutarse sólo después de que el usuario coloque las variables. ¿para eso debo tener un programa ya hecho?.¿esto se puede hacer con python no?
Otra pregunta "ejemplo for- to- next-" ¿esto es para que se repita una acción?
saludos profesor
Hola Nicolás
ResponderEliminarLas variables pueden obtener sus valores (el valor de sus propiedades) porque las ingresan desde el teclado pero también porque son calculadas dentro del programa, por ejemplo en alguna parte del código yo podría escribir
tot=cantid*precio
donde cantid y precio son ingresados por el usuario y tot es calculado por el programa cuando se ejecuta. También podemos cambiar el valor de las variables ajustando las propiedades cuando diseñamos la interfaz de usuario (la userform), al cambiar la propiedad label.caption o userform.caption por ejemplo le estamos dando valores a esa propiedad durante el diseño. Incluso se podrían obtener valores para las variables desde Internet o con aparatos de medición, etc. los valores se pueden obtener desde varias fuentes.
Parece que tu pregunta es si un programa puede arrancar solo, sin que el usuario no igrese nada, claro que si y eso se hace con instrucciones de autoejecución o auto-open como las que vimos en el código del virus de macro que estudiamos.
Los ciclos for-to-next son para repetir una acción, generando una variable que va incrementando o decreciendo su valor. por ejemplo
for i=1 to 10
print i, "hola"
next 1
Mostrará
1 hola
2 hola
3 hola
...etc.. hasta
10 hola
Y esta otra
for i=10 to 1 step -1
print i, "hola "
next i
mostrará
10 hola
9 hola
8 hola
...etc.. hasta
1 hola
Este comentario ha sido eliminado por el autor.
ResponderEliminarPalabras reservadas del VBA:
ResponderEliminarDim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Instrucciones Input y Print. (Basic antiguo.)
Input: permite recibir datos entrados desde el teclado.
Print: Muestra datos en pantalla.
En una instrucción las comillas se usan para disinguir las palabras de las variables.
Las variables generalmente pueden recibir su valor de dos maneras: ingresadas por el usuario (por ejemplo desde el teclado) o generadas por el programa mediante un cálculo o una instrucción.
Ejemplo con If - Then - End
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
ES MUY IMPORTANTE ESCRIBIR SIEMPRE CON INDENTACIÓN, ES DECIR, TODO LO QUE SIGUE A UN IF O UN FOR SE ESCRIBE CORRIDO UN TAB A LA DERECHA, ESTO PARA SU CLARIDAD DE LECTURA.
Preguntas:
.- ¿El ejemplo con For - To - Next, también es del Basic Antiguo?
.-¿ En que casos se programaría con For - To - Next? y en cuales con If?
Celeste Ayelén Soriano INGESIC
Hola Celeste,
ResponderEliminarEl ejemplo es también en Basic antiguo porque tiene una instrucción "print" recuerda que las instrucciones "print" e "input" en VAB son reemplazadas por Textbox.Text y otras similares
Los ciclos For- to next se usan siempre que necesites hacer varias operaciones repetidas, por ejemplo leer todos los datos de una tabla, uno por uno.
La instrucción if-then se usa cuando debes tomar una decisión basada en si una condición se cumple o no. Siguiendo el ejemplo anterios, si estás leyendo todos los datos de una lista y quieres que se muestren solo los que cumplen una condición, podría ser un inventario donde quieres listar solo los productos de un determinado proveedor y no los otros productos
Palabras reservadas (instrucciones del lenguaje)
ResponderEliminarEl VBA tiene un vocabulario de palabras reservadas que son las instrucciones y no las podemos usar como nombres de variable. Este lenguaje tiene apenas unas decenas, y las que usamos normalmente son muy pocas. Algunas palabras como - Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, > - Son ejemplos del lenguaje VBA.
Existen dos instrucciones del antiguo basic y son Input, que permite recibir datos entrados desde el teclado y Print, que muestra datos en pantalla. No se utilizan en el VBA, pero son fáciles de comprender
Ejemplo con If - Then -End if
Se ingresa los datos del articulo comprado y se almacenan en dos variables que se llamaran CantCompra y PrecUnit, luego, se determinara si la compra excede o no el cupo de 500000, si no lo excede, se pondrá en la pantalla "Compra Autorizada", si lo excede se pondrá "No Autorizada-Excede Cupo", luego, en cualquiera de los casos, debe poner el mensaje "Fin".
El código seria el siguiente:
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Las variables reciben su valor de dos maneras:
1) ingresadas por el usuario (por ejemplo desde el teclado)
2) generadas por el programa mediante un cálculo o una instrucción.
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3"... etc. hasta "Pasada número 100". Después de eso mostrará un solo mensaje que dirá "Fin de las pasadas".
Profesor:
1) El VBA y VB Pueden programar el ejemplo For – To – Next?
2) Viendo el listado que puso sobre las palabras del VB Cual es la diferencia entre las palabras claves reservadas y las NO reservadas?. ¿Acaso si en una programación pongo una palabra NO reservada me perjudicaría la acción que estoy haciendo?
1.- Por supuesto, las instruccionaes if y for-to-next (en distintos formatos pero son lo mismo) existen prácticamente en todos los lenguajes de programación que yo conozco, desde los más antiguos a los más modernos. El VBA y el VB tienen código prácticamente idéntico y ambos tienen esas dos instrcciones, igualitas.
ResponderEliminar2.-Se habla de "palabras reservadas" porque no se pueden usar como nombres de variables, siempre que aparece "for" por ejemplo el compilador (VB) o el intérprete (VBA) la interpretan como una instrucción. Si tu usas por ejemplo
for=cant*valor
Te aprecerá un mensaje de error del tipo "nombre de variable ilegal" o similar, eso quiere decir "reservada", que no puedes usarla como nombre de variable.
el VBA tiene un vocabulario de palabras reservadas que son las instrucciones y no la podemos utilizar como nombres de variables tiene un vocabularios sencillo (de muy pocas palabras) y las mas comunes son :
ResponderEliminarDim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
al tener un vocabularios de instrucciones para cualquier persona es fácil manejar el VBA
en el antiguo BASIC se encuentran dos instrucciones :Input, que permite recibir datos entrados desde el teclado y Print, que muestra datos en pantalla. Estas dos instrucciones ya no se usan en VBA pero son intuitivas y fáciles de comprender
Ejemplo con If - Then -End if
almacenan en dos variables que llamaremos CantCompra y PrecUnit, determinar si la compra excede o no el cupo de 500000, si no lo excede, poner en pantalla "Compra Autorizada", si lo excede poner "No Autorizada-Excede Cupo", luego, en cualquiera de los casos, debe poner el mensaje "FIN
el código que se debe ejecutar es el siguiente:
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Las variables pueden recibir su valor de dos maneras:
1.- ingresadas por el usuario (desde el teclado)
2.- generadas por el programa (mediante cálculos o una instrucciones)
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3"... etc. hasta "Pasada número 100". Después de eso mostrará un solo mensaje que dirá "Fin de las pasadas".
Felipe castro ingesic
Palabras reservadas (instrucciones del lenguaje)
ResponderEliminarel VBA tiene un vocabulario de palabras reservadas que son las instrucciones y no las podemos usar como nombres de variable. usamos normalmente son muy pocas. esta es una lista de las más comunes:
Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Para los ejemplos se utilizaron dos instrucciones del antiguo Basic (no se usan en VBA, pero sirven para Python): Input (recibe datos entrados del teclado) y Print (muestra datos en pantalla).
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Este código tiene 10 expresiones y son una lista de instrucciones secuenciales . Las primeras dos líneas piden ingreso de datos a las variables CantCompra y PrecUnit usando el teclado, para ello muestran dos mensajes que son "Ingrese Cantidad" e "Ingrese Precio Unitario". Su valor es siempre el mismo, a diferencia de las variables (sus datos son distintos cada vez).
Las variables pueden recibir su valor de dos maneras:
1.- ingresadas por el usuario (desde el teclado)
2.- generadas por el programa (mediante cálculos o una instrucciones)
En la línea 3 se define una variable con el nombre TotVta que se genera por el programa mediante un cálculo: multiplica cantidad por precio.
Las líneas 4, 5 y 6 comparan el valor de TotVta con el valor constante de 500000. Si la condición es mayor que 500000 coloca un mensaje que niega la venta y si no es mayor salta a la instrucción siguiente.
Las líneas 7, 8, y 9 comparan el valor de TotVta con el valor constante de 500000. Si condición es menor o igual a 500000 entonces autoriza la venta.
En cualquiera de los casos salta a la instrucción 10 que coloca en pantalla el mensaje constante "FIN"
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3", hasta "Pasada número 100". Después de eso mostrará un solo mensaje que dirá "Fin de las pasadas".
claudia choque INGESIC
Para que podamos utilizar el VBA debes darle instrucciones de acuerdo al lenguaje que este entiende; y para ello tiene un lenguaje reservado de las cuales no podemos utilizarlo como nombres de variables estas son las más comunes : Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =,
ResponderEliminarEstas instrucciones son del antiguo basic, son fáciles de comprender , está el Input : que permite recibir datos entrados desde el teclado y Print:, que muestra datos en pantalla.
Ejemplo con If - Then -End if
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Estas instrucciones se van ejecutando secuencialmente una tras otra, de arriba abajo. Las dos 1° líneas requiere que ingresemos datos directamente del teclado para las variables (esos datos que ingresemos serán constantes). Los mensajes y valores de texto constantes se escriben entre comillas para distinguirlos de las variables; sin embargo las variables podrán cambiar y exiten dos maneras de para que esta reciba su valor.. la primera es ingresada directamente por el usuario y la segunda se generaría por el programa mediante un calculo o instrucción .
¿Las palabras reservadas (más comunes ) son las mismas en VB y VBA ?
¿Porque en el ejemplo pone a veces el”PRINT “ con un tab y en otras no? Eso no afecta a la lectura del código?
KAREN CALLE LOPEZ (ISIC)
Hola Karen, las palabras reservadas son exactamente las mismas
ResponderEliminarEn Visual Basic y VBA los tab son solo para presentar bien el código, si se colocan con tab o no depende si la instrucción está "anidada" dentro de otra rutina, un if o un ciclo for. Los tab se usan para entender mejor el gódigo
, en los comentarios habrás notado que no aparecen, pero eso es porque eel editor de comentarios de Blogger los borra.
En VB y VBA no son obligatorios, en otros lenguajes modernos si no se usan tab te aparece error, son parte de la sintaxis, para obligar a los programadores a escribir claro e indentar adecuadamente.
Palabras reservadas (instrucciones del lenguaje)
ResponderEliminarVBA tiene un vocabulario de palabras reservadas que son las instrucciones y no las podemos usar como nombres de variable.
Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Para programar basta con manejar un vocabulario de menos de 40 palabras, que se combinan para hacer las diferentes expresiones.
Se van a agregar dos instrucciones que son del antiguo Basic: Input (permite recibir datos entrados desde el teclado) y Print (muestra datos en pantalla) Ambas ya no se usan en VBA pero son intuitivas y fáciles de comprender así es que haremos algunos ejemplos usando código Basic antiguo.
Ejemplo con If - Then -End if
Ingresar los datos de cantidad de un artículo comprado y precio unitario, almacenarlos en dos variables llamadas CantCompra y PrecUnit, determinar si la compra excede o no el cupo de 500000, si no lo excede, poner en pantalla "Compra Autorizada", si lo excede poner "No Autorizada-Excede Cupo", luego poner el mensaje "FIN", el código en Basic es el siguiente:
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Comentario del código:
Este código contiene 10 líneas o "expresiones", se ejecutan secuencialmente Las primeras dos líneas piden que entremos datos a las variables CantCompra y PrecUnit usando el teclado, para ello muestran dos mensajes :"Ingrese Cantidad" e "Ingrese Precio Unitario", los mensajes y valores de texto (String) constantes se escriben entre comillas para distinguirlos de las variables. Su valor es siempre el mismo. Las variables en cambio pueden almacenar cualquier valor que ingresemos
Las variables generalmente pueden recibir su valor de dos maneras: -ingresadas por el usuario (por ejemplo desde el teclado)
-generadas por el programa mediante un cálculo o una instrucción.
En la línea 3 se define una nueva variable que le pusimos nombre TotVta y se genera por el programa mediante un cálculo: multiplicando la cantidad por el precio.
Las líneas 4, 5 y 6 comparan el valor de TotVta con el valor constante de 500000 Entonces la condición es ¿TotVta es mayor que 500000?, si es mayor coloca un mensaje que niega la venta y si no es mayor salta a la instrucción siguiente.
Las líneas 7, 8, y 9 comparan el valor de TotVta con el valor constante de 500000, la condición es ¿TotVta es menor o igual a 500000? si se cumple entonces autoriza la venta.
En cualquiera de los casos salta a la instrucción 10 que coloca en pantalla el mensaje constante "FIN"
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3"... etc. hasta "Pasada número 100". Después de eso mostrará un solo mensaje que dirá "Fin de las pasadas".
Allyson Antezana INGESIC
En VBA existe un vocabulario de palabras que son reservadas para las instrucciones, las cuales no puedes ser nombres de variable. Contiene apenas unas decenas de palabras y pocas de ellas se utilizan. Las mas comunes son : Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
ResponderEliminarInstrucciones básicas para comprender mejor son Input, que permite recibir datos entrados desde el teclado y Print, que muestra datos en pantalla.
Ejemplo con If - Then - End if
Ingresando los datos de cantidad de un artículo comprado y precio unitario, almacenarlos en dos variables que llamaremos CantCompra y PrecUnit. Si No excede se debe poner "Compra Autorizada", Si excede se debe poner "No Autorizada- Excede Cupo". En cualquier caso se debe poner "FIN".
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Las líneas 1 y 2 piden que entremos datos a las variables CantCompra y PrecUnit usando el teclado. Los mensajes y valores de texto (String) constantes se escriben entre comillas para distinguirlos de las variables y este puede almacenar cualquier valor que les ingresemos.
En la línea 3 se define una nueva variable que le pusimos nombre TotVta y se genera por el programa mediante un cálculo: multiplicando la cantidad por el precio.
Las líneas 4, 5 y 6 comparan el valor de TotVta con el valor constante de 500000
la condición es ¿TotVta es mayor que 500000?, si es mayor coloca un mensaje que niega la venta y si no es mayor salta a la instrucción siguiente.
Las líneas 7, 8, y 9 comparan nuevamente el valor de TotVta con el valor constante de 500000, pero esta vez la condición es ¿TotVta es menor o igual a 500000?, si se cumple entonces autoriza la venta.
En cualquiera de los casos salta a la instrucción 10 que coloca en pantalla el mensaje constante "FIN"
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Al ejecutarse este programa mostrara 100 mensajes del tipo: "Pasada número 1", "Pasada número 2", "Pasada número 3"... etc. hasta "Pasada número 100".Después de eso mostrará un solo mensaje que dirá "Fin de las pasadas".
Profesor mi pregunta es; Que si estamos utilizando el código Basic antiguo. ¿En el más actualizado cuales vendrían siendo las diferencias más relevantes. Se podría decir que es lo mismo pero dicho de otra forma o simplemente aporta mucho más que el Basic antiguo?
Buena pregunta, hice el ejemplo en Basic antiguo porque es más fácil de entender a primera vista, se parece mucho al "seudocódigo" que se usa para enseñar a programar. La diferencia entre Basic Antiguo y VBA es que el antiguo no era visual así es que había que escribir cientos o miles de líneas para dibujar una interfaz de usuario simple (una ventana por ejemplo) el VBA trae eso incorporado en los objetos como los textbox, commandbutton, label, combobox, etc.
ResponderEliminarPalabras reservadas (instrucciones del lenguaje)
ResponderEliminarel VBA tiene un vocabulario de palabras reservadas que son las instrucciones.Un lenguaje natural tiene muchas palabras mientras que un lenguaje como el VBA tiene unas decenas , y las que usamos normalmente son :
Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Usando antiguo código Basic, explicaremos como funciona el condicional If y los loop con For, veamos
Ejemplo con If - Then -End if
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
-¿VBA tiene menos palabras que VB o tienen la misma cantidad?
-En los ejemplos que dio algunos estan entre comillas ,¿es muy importante poner o no las comillas?
Alejandra Díaz (ISIC)
VBA y VB tienen prácicamente el mismo set de instrucciones, solo mínias diferencias y muy específicas.
ResponderEliminarLas comillas son imprtntísimas porque definen que la palabra que está entre comillas es un string y no un nombre de variable (como lo tomaía el programa si estuviera sin comillas). Si no coloca comillas al asignar valor a un string el intérprete lo tomará como un nombre de variable o bien arrojara un error del tipo "nombre de variable no válido"
Con este ejemplo me queda mucho más claro como funcionan las instrucciones. La única duda que me queda es que las instrucciones están escritas en ingles, para poder yo usarlo quizás sin tener demasiado vocabulario en inglés, lo puedo traducir directamente al español? o será que las palabras no siempre llevan el significado directo?.
ResponderEliminarBuena pregunta, las instrucciones no están en ingles sino que en un lenguaje llamado "Visual Basic" o "Visual Basic Para Aplicaciones", solo para efectos de nemotectia se usan palabras en inglés relacionadas con su significado, por ejemplo "IF" que en inglés significa "Si" también podría haber sido definida como "XXKRT" por ejemplo, pero sería mucho más difícil para el programador acordarse para que sirve. No puedes traducir las instrucciones al español de ninguna manera, o no puedes usarlas traducidas, como los que desarrollaron el lenguaje hablaban inglés las instrucciones son esas y no otras
ResponderEliminarEntiendo que al igual que una simple formula de Excel, toda vez que quiero mantener una constante, debo dejarlo entre "comillas" y en el caso de Excel es con el signo $. Importante es tener en cuenta que podemos determinar condiciones combinadas y eso acotaría en varias líneas nuestra nuestro código.
ResponderEliminarEl tipo de las variables se puede definir usando una sentencia Dim o Global en un módulo o bien colocando ciertos símbolos al comienzo de su nombre, cuando una variable comienza por el símbolo $, por ejemplo $Pesos, eso indica que su contenido debe ser tratado como string, por ejemplo si $precio="200" y $cantidad="150" al poner $precio*$cantidad da un error (tipos de variable incorrectos) y al poner $precio+$cantidad da "200150"
ResponderEliminarLas constantes son valores fijos, por ejemplo tipocambio=500 donde tipocambio tiene un valor fijo que es 500, no cambia nunca
Hola profe
ResponderEliminarEjemplo en el antiguo Basic
El VBA tiene un vocabulario de palabras reservadas que son las instrucciones y no las podemos usar como nombres de variable. Un lenguaje natural tiene muchísimas palabras , un lenguaje como el VBA tiene apenas unas decenas, y las que usamos son muy pocas. Algunas de estas son:
Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Para programar basta con manejar un vocabulario de menos de 40 palabras, que se combinan para hacer las diferentes expresiones.
Solo se agregaran dos instrucciones que son del antiguo Basic:
*Input: Que permite recibir datos entrados desde el teclado.
Print: Que muestra datos en pantalla.
Estas dos instrucciones ya no se usan en VBA pero son intuitivas y fáciles de comprender, además sirve si después quieren aprender Python u otros lenguajes que usan estas instrucciones.
saludos
Carolina Vega (PAE)
Palabras reservadas (instrucciones del lenguaje)
ResponderEliminarAsí como los lenguajes naturales usan un vocabulario de palabras para construir frases, el VBA tiene un vocabulario de palabras reservadas que son las instrucciones y no las podemos usar como nombres de variable. Un lenguaje natural tiene muchísimas palabras (el castellano tiene entre 300.000 y 400.000), un lenguaje como el VBA tiene apenas unas decenas, y las que usamos normalmente son muy pocas. Una lista completa se puede ver aquí, y esta es una lista de las más comunes:
Dim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Para programar basta con manejar un vocabulario de menos de 40 palabras, que se combinan para hacer las diferentes expresiones. ¡Cualquiera puede aprenderlas!
Para efectos pedagógicos solamente, vamos a agregar dos instrucciones que son del antiguo Basic: Input, que permite recibir datos entrados desde el teclado y Print, que muestra datos en pantalla. Estas dos instrucciones ya no se usan en VBA pero son intuitivas y fáciles de comprender así es que haremos algunos ejemplos usando código Basic antiguo, lo que además les sirve si después quieren aprender Python u otros lenguajes que usan estas instrucciones.
Usando antiguo código Basic, explicaremos cómo funciona el condicional If y los loop con For, veamos
Ejemplo con If - Then -End if
Ingresar los datos de cantidad de un artículo comprado y precio unitario, almacenarlos en dos variables que llamaremos (arbitrariamente) CantCompra y PrecUnit, determinar si la compra excede o no el cupo de 500000, si no lo excede, poner en pantalla "Compra Autorizada", si lo excede poner "No Autorizada-Excede Cupo", luego, en cualquiera de los casos, debe poner el mensaje "FIN", el código en Basic es el siguiente:
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Comentario del código:
ResponderEliminarEste código contiene 10 líneas o "expresiones", equivalentes a 10 frases en lenguaje natural, se ejecutan secuencialmente, una después de otra de arriba a abajo, es una lista de instrucciones. Las primeras dos líneas piden que entremos datos a las variables CantCompra y PrecUnit usando el teclado, para ello muestran dos mensajes constantes que son "Ingrese Cantidad" e "Ingrese Precio Unitario", los mensajes y valores de texto (String) constantes se escriben entre comillas para distinguirlos de las variables. Su valor es siempre el mismo. Las variables en cambio pueden almacenar cualquier valor que les ingresemos, o sea sus valores son distintos cada vez.
Las variables generalmente pueden recibir su valor de dos maneras: ingresadas por el usuario (por ejemplo desde el teclado) o generadas por el programa mediante un cálculo o una instrucción. En la línea 3 se define una nueva variable que le pusimos nombre TotVta y se genera por el programa mediante un cálculo: multiplicando la cantidad por el precio.
Las líneas 4, 5 y 6 comparan el valor de TotVta con el valor constante de 500000 (como es un número, no va entre comillas, si lo ponemos entre comillas sería tratado como String y no podríamos hacer la comparación). Entonces la condición es ¿TotVta es mayor que 500000?, si es mayor coloca un mensaje que niega la venta y si no es mayor salta a la instrucción siguiente.
Las líneas 7, 8, y 9 comparan nuevamente el valor de TotVta con el valor constante de 500000, pero esta vez la condición es ¿TotVta es menor o igual a 500000? (noten que la condición en este caso es menor o igual, o sea dos en una), si se cumple entonces autoriza la venta.
En cualquiera de los casos salta a la instrucción 10 que coloca en pantalla el mensaje constante "FIN"
NOTA IMPORTANTE: ¿Se han fijado que todas las instrucciones que van "dentro de un If o un ciclo For aparecen "corridas" hacia la derecha? esto se llama "indentación" y aunque en VBA no es obligatorio es muy importante escribir siempre así es código, para su claridad de lectura, todo lo que sigue a un If o un For se escribe corrido un tab a la derecha, siempre (en otros lenguajes como Python esto es obligatorio).
Profesor:
¿Estas palabras reservadas se pueden utilizar en VB y/o VBA o existen algunas que son de “uso exclusivo” para el programa?
¿Cómo podemos identificar, dentro de las extensas líneas de códigos, para qué es cada línea?
HERNALDO RODRIGUEZ ESTAY (PAE)
Las palabras reservadas son instrucciones y no se pueden usar como nombre de variables, por eso se dice que están "reservadas" para el sistema.
ResponderEliminarCada línea de código es una frase que tiene un significado dentro de un procedimiento. Esa frase puede contener instrucciones, nombres de variable, operaciones aritméticas, llamadas a subrutinas, etc.
Profesor: Quizás formulé mal mi segunda pregunta, a lo que me refería, es que si existe alguna opción que permita otorgar mayor claridad al momento de "leer" la programación, colocando alguna breve reseña para que se programó esa línea, quizás para que la persona que NO programó sepa como se estructuraron las líneas de códigos. Por ejemplo, poner en la línea 3, una frase que indiqué que se obtiene como resultado de esa programación.
ResponderEliminarInput "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit (INDICA EL VALOR TOTAL DE LA COMPRA)
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Ah claro, para eso se usan los comentarios, cada vez que ua línea empieza con Rem (de remark) o con una comilla simple, eso se considera un comentario y lo que está escrito a continuación no se ejecuta
Eliminar..En el ejemplo antiguo de Basic..
ResponderEliminarexisten diferentes códigos que contienen varias lineas, que se ejecutan secuencialmente, una después de otra de arriba a abajo. En algunos se pide que entremos datos a las variables usando el teclado, el cual muestran mensajes constantes. Los mensajes y valores de texto string se escriben entre comillas... ¿ que función cumple string ?
Atte.
Joanna Rocha H.( PAE)
Las variables pueden ser de dsitintos tipos y según el tipo es como las trata el intérprete, "String" es un tipo de variable que dice que su contenido debe ser tratado como caracteres, es decir no se pueden hacer operaciones aritméticas con ella aunque contengan números, "string" indica que son letras, no valores numéricos
EliminarPalabras del lenguaje Visual Basic
ResponderEliminarpalabra reservada son aquellas palabras que pertenecen al propio lenguaje de programación y que no pueden ser usadas por el programador, salvo para lo que ya han sido creadas.
Imaginemos la palabra FOR, esta palabra esta usada por Visual Basic para permitir al programador crear bucles, pero el programador no puede usar esa misma palabra para otra cosa, como por ejemplo una variable, osea, el programador no podra hacer esto:
Puesto que visual basic indicara que le faltan parametros, osea , visual basic no reconoce a la palabra for como una variable sino como para lo que ha sido creada, y por lo tanto provocara un error en ejecución.
De modo que ninguna de las palabras reservadas se pueden usar para cualquier otro propósito que para el que han sido creada, a continuación mostramos la lista de palabras reservadas de visual basic.
Abs Add And App
Activate Array Ascatn Base
Beep Cbool Cbyte Ccur
Cdate Cdbl Cdec Cint
Clng Csng Cstr Cvar
Cverr Call Case Cdh
Choose Chdir Chdrive Clear
Close Collection Command Compare
Const Cos CreateObject Curdir
Dateserial Datevalue Day Ddb
Defftype Dim Deletesetting Dir
Do Doevents Each End
Environ Eof Eqv Erase
Err Error Exit Exp
Explicit Fileattr Filecopy Filedatetime
Filelen Fix For Format
Freefile Function Fv Get
Getattr GetObject Getsetting Getallsetting
Gosub Goto Hex Hour
Imp Input Instr Int
Integer Ipmt Irr Is
Isarray Isdate Isempty Iserror
Ismissing Isnull Isnumeric Isobject
Item Kill Lbound Lcase
Left Let Like Loc
Lock Lof Log Loop
Lset Ltrim Me Mid
Minute Mirr Mkdir Mod
Month Name New Next
Not Nper Npv Oct
On Onerror Open Or
Option Print Ppmt Print#
Private Property Public Put
Pv Qbcolor Raise Randomize
Rate Redim Remove Reset
Resume Return Rgb Right
Rmdir Rnd Rset Rtrim
Savesettings Second Selectcase Seek
Shell SendKeys Setattr Sgn
Sin Single Sln Space
Spc Sqr Static Stop
Str Strcomp Strconv String
Sub Syd Switch Tab
Tan Timer TimeSerial TimeValue
Trim Typename Ubound Ucase
Unlock Val Vartype Weekday
Wend While Width Write#
Xor Yeqr #if #else
Estas son las palabras del propio lenguaje de visual basic y que solo permite ser usadas para su determinada función, cada una de las funciones que realizan estas palabras, las encontrará detallamente descritas en Funciones, en el menu principal del curso.
CRISTIAN CARRASCO PAE
Lissette Ahumada Araya
ResponderEliminarPAE
Buen aporte, la mayoría de esas instrucciones no las he usado nunca y hay varias que ni sabía que existían. En la práctica no son más que 0-15 las que se usan
ResponderEliminarEn el antiguo Basic para comunicarnos solo podemos ocupar una decena de códigos, no como en nuestro lenguaje castellano que tenemos miles de palabras para comunicarnos.
ResponderEliminarDim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Al Ingresar datos veremos dos variablesque si cumplen con la function arrojara una información y si no cumple arrojara otra información.
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Las variables pueden recibir su valor en dos maneras distintas, constante 500000 (sin comillas sino aparece como string) entonces la condicionante es ¿TOTVTA es mayor que 500000? Si es mayor niega la venta sino pasa a la intruccion siguente.
José Huanca Choque PAE
TRINIDAD AGUIRRE LOPEZ (PAE)
ResponderEliminarEl VBA tiene un vocabulario de palabras reservadas que son las instrucciones.Un lenguaje natural tiene muchas palabras mientras que un lenguaje como el VBA tiene unas decenas , y las que usamos normalmente son :
ResponderEliminarDim, Do, Double, Else, Elseif, End, Exit, For, Function, Get, Global, Gosub, Goto, if, Integer, Long, Module, Private, Public, REM, Resume, Return, Single, Step, Stop, String, Then, To, True, Variant, Wend, While, Xor, =, <, >
Usando antiguo código Basic, explicaremos como funciona el condicional If y los loop con For, veamos
Ejemplo con If - Then -End if
Input "Ingrese Cantidad", CantCompra
Input "Ingrese Precio Unitario", PrecUnit
TotVta=CantCompra*PrecUnit
If TotVta > 500000 Then
Print "No Autorizada-Excede Cupo"
End If
If TotVta <= 500000 Then
Print "Compra Autorizada"
End If
Print "FIN"
Ejemplo con For - To - Next
For i = 1 to 100
print "Pasada número ", i
Next i
Print "Fin de las pasadas"
Alfredo Santibañez (ISIC)
Brian Choque V. (PAE)
ResponderEliminarwow, el antiguo basic.
ResponderEliminarinteresante articulo profesor.
saludos
Atte Cristian Gómez
Alumno Pae Ing en Administración de Empresas