Вы находитесь на странице: 1из 21

VISUAL BASIC SCRIPT

MANUAL BASICO
Índice de contenidos
1.Introducción a Visual Basic Script....................................................................................................3
2.Creación de archivos.........................................................................................................................4
3.Creación de variables........................................................................................................................4
4.Estructuras de control........................................................................................................................7
5.Funciones Gráficas..........................................................................................................................10
6.Funciones básicas............................................................................................................................16
7.Programas........................................................................................................................................20
1.Introducción a Visual Basic Script.
Hace unos 19 años, el proceso de construir una simple aplicación basada en Microsoft Windows se
habría podido describir como complicado, difícil y largo. Construir estas aplicaciones ricas en
gráficos no era un proceso trivial antes de la introducción de Visual Basic 1.0 en mayo de 1991.
Con Visual Basic, los programadores podían, por primera vez, implementar aplicaciones de
Windows en un ambiente intuitivo y gráfico, simplemente arrastrando controles sobre un
formulario. Haciendo posible a los programadores profesionales y a los ocasionales maximizar su
productividad, Visual Basic conllevó un renacimiento del desarrollo de aplicaciones basadas en
Windows.

Visual Basic Script es un lenguaje interpretado por el Windows Scripting Host de Microsoft. Su
sintaxis refleja su origen como variación del lenguaje de programación Visual Basic. Ha logrado un
apoyo significativo por parte de los administradores de Windows como herramienta de
automatización, ya que, conjunta y paralelamente a las mejoras introducidas en los sistemas
operativos windows donde opera fundamentalmente, permite más margen de actuación y
flexibilidad que el lenguaje batch (o de proceso por lotes) desarrollado a finales de los años 1970
para el MS-DOS.

Visual Basic Script es interpretado por el motor de scripting vbscript.dll, que puede ser invocado
por el motor ASP asp.dll en un entorno web, por wscript.exe en un entorno Windows de interfaz
gráfica, por cscript.exe es un entorno de línea de comandos y por iexplore.exe cuando se trata de
scripts a nivel de cliente (similar al javascript). Cuando el código fuente se guarda en ficheros
independientes, éstos tienen típicamente la extensión .vbs.

Cuando se emplea en Internet Explorer, funciona de forma muy similar a JavaScript, procesando
código contenido en el documento HTML. También puede usarse para crear aplicaciones HTML
independientes (extensión .hta), que necesitan Internet Explorer 5.0 o superior para poder ser
ejecutados. Los desarrolladores de aplicaciones en web suelen preferir JavaScript debido a su mayor
compatibilidad con otros navegadores de Internet, ya que Visual Basic Script sólo está disponible
para el navegador de Microsoft Internet Explorer, y no en otros como Firefox u Opera.

Es el lenguaje usado para escribir algunos famosos gusanos de red, como I Love You. Esto se debe
a varias razones. Primero, el icono parecido a un pergamino azul que representa a los ficheros .vbs
puede llevar a pensar a los usuarios inexpertos que se trata de un fichero de texto. Segundo, es fácil
escribir un gusano informático en Visual Basic Script que se propague por correo electrónico (se
necesitan pocas líneas de código). Microsoft ha solucionado los agujeros de seguridad explotados
por dichos programas maliciosos. Este solucionado no significa erradicado, solo ha complicado el
proceso; pues si por ejemplo el I Love You se propagaba a través del Outlook, ahora si se utiliza el
mismo método sale un mensaje de advertencia, por lo que se suele emplear métodos como el envío
mediante un servidor smtp (bastante más complejo de programar que por el otro método).

En general es uno de los lenguajes más básicos y es, sin duda alguna, la base del Visual Basic 6, ya
que todo lo que se aprende aquí, luego puede ser usado en él sin ningún cambio. En otras palabras,
es el lenguaje que se suele aprender antes del Visual Basic 6. Es por eso que todo programador de
Visual Basic que se precie debe conocerlo.
2.Creación de archivos.
Los archivos se crean con el bloc de notas, o con cualquier otro editor de texto, siempre que luego
se guarde con la extensión .vbs. Una vez abierto el archivo, se escribe el código de forma ordenada.
El código se ejecuta desde el principio hasta el final, salvo en caso de bucles, condicionales y
funciones personalizadas. Hay programas en vbscript que no tienen efecto visual, ya que operan de
forma interna, y "programas visuales", ya que interactuan con el usuario a través de una ventana.

3.Creación de variables.
Existen dos métodos para usar las variables en VBScript, uno mas "libre" y otro mas similar a los
demás lenguajes. Dejaremos de lado el libre y veremos el más común. Este se activa colocando en
la primera línea la función siguiente:
Option Explicit
Y, luego, en el momento que se quiera crear una variable se utiliza la palabra Dim, seguido del
nombre identificativo que le queramos dar. Por ejemplo:
Option Explicit
Dim variable1
Así habremos creado una variable con el nombre identificativo variable1. Si queremos crear más de
una variable a la vez, solo hay que colocar una coma y poner luego todas las demás:
Option Explicit
Dim variable1, var2, var3, nombre
Así habremos creado cuatro variables con los nombres variable1, var2, var3 y nombre. Recordad
que el Option Explicit solo se coloca una vez al principio del Script, pero el Dim, se puede colocar
tantas veces como se quiera para crear nuevas variables a lo largo del script:
Option Explicit
Dim variable1, var2
'Mas funciones...
Dim var3, nombre
La línea que empieza por ', es un comentario, que es ignorado por el intérpetre. Ahora vamos a ver
como darles valores. Básicamente se trabaja con tres tipos de valores:

-Valores numéricos: Son valores numéricos que van desde números negativos con decimales hasta
números positivos decimales. Es decir, cualquier número real que exista.
-Valores alfanuméricos: Podemos introducir textos, nombres, frases, párrafos, etc. en una variable.
Admite cualquier carácter (letras y números) excepto el salto de línea y la doble comilla, que se
introducen de forma especial.
-Valores booleanos: Son valores que indican si es verdadero o falso. Podemos darle a una variable
el valor True o false.

Una vez tenemos una variable creada, podemos introducirle un valor. Veamos primero como
introducimos valores numéricos, que son, los mas sencillos de usar y entender. Para darle el valor
numérico a una variable, colocaremos el nombre de la variable seguido de un igual y el valor que le
queramos dar (si el numero es decimal se colocará entre comillas, aunque es mejor ponerlo en
forma de fracción). Por ejemplo:
Option Explicit
Dim varPi
varPi = 3
Con variables numéricas se pueden realizar operaciones aritméticas. A las variables se les puede dar
como valor el resultado de una operación:
varPi = (7*2)+1
De esta forma, por ejemplo, varPi obtendrá el valor 15. También se pueden usar otras variables en
las operaciones:
var1 = (7*2)+1
var2 = 7*(2/3)
var3 = var1 + var2
var4 = (1/2)* var3
Para asignar el valor de una variable a otra:
var1 = (7*2)+1
var2 = 7*(2/3)
var2 = var1
Para incrementar el valor de una variable:
var1 = 15
var1 = var1 + 1
'Mas código y funciones
var1 = var1 + 1
Otro tipo de datos que se pueden introducir son cadenas de texto. Hay que tener en cuenta que estos
datos no se pueden mezclar con los numéricos, porque no son del mismo tipo. Al igual que con los
datos numéricos, se asigna mediante el uso del símbolo igual, pero en este caso, el texto debe ir
entre comillas:
var1 = "Hola Mundo"
Existe un operador especial para cadenas, denominado concatenador de cadenas (&). Su función es
unir cadenas de texto. Por ejemplo:
nombre = "mun"
texto = "Hola " & nombre & "do"
Para introducir comillas, salto de línea, etc... en las variables, se dispone de tres funciones:

-vbCrLf. Esta función devuelve el valor de un salto de línea, permitiéndonos almacenarlo en una
variable. Por ejemplo:
var1 = "Nombre: Jose" & vbCrLf & "Apellidos: Sanchez Olmedo"
Esto dará como resultado lo siguiente:
Nombre: Jose
Apellidos: Sanchez Olmedo
-Chr. Esta función recibe un código en ASCII, y devuelve su carácter correspondiente. Sabiendo
que el codigo ASCII de las comillas es el 34:
var1 = "Mi nombre es " & Chr(34) & "Jose" & Chr(34) & "."
Esto dará como resultado lo siguiente:
Mi nombre es "Jose".
-El Asc. Esta función recibe un carácter entre comillas y devuelve el codigo ASCII correspondiente:
var1 = Asc("a")
Se asigna a var1 el valor 97. Se utiliza, sobre todo, para la encriptación de datos.

Otro tipo de valor a utilizar en variables es el booleano. Con esto se asigna true (verdadero) o false
(falso) a una variable:
var1 = false
var2 = true
Mediante los operadores lógicos también se pueden realizar operaciones con las variables. Son los
que siguen:

-And. El operador And (adición) trabaja con dos operadores (true y false), y devuelve un valor que
puede ser true o false según los operadores participantes:
TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
FALSE AND TRUE = FALSE
FALSE AND FALSE = FALSE
En la siguiente operación, el resultado de var2 sería False:
var1 = false
var2 = (true And false) And var1
-Or. El operador Or (disyunción) trabaja con dos operadores (true y false), y devuelve un valor que
puede ser true o false según los operadores participantes:
TRUE OR TRUE = TRUE
TRUE OR FALSE = TRUE
FALSE OR TRUE = TRUE
FALSE OR FALSE = FALSE
Para el ejemplo anterior, con el Or, el resultado de var2 sería True:
var1 = false
var2 = (true Or false) Or var1
-Xor. El operador Xor (disyunción exclusiva) trabaja con dos operadores (true y false), y devuelve
un valor que puede ser true o false según los operadores participantes:
TRUE XOR TRUE = FALSE
TRUE XOR FALSE = TRUE
FALSE XOR TRUE = TRUE
FALSE XOR FALSE = FALSE
-Not. El operador Not (negación) trabaja con un solo operando (true o false), devolviendo el valor
contrario del operando que le sigue. En el ejemplo siguiente, devolverá False:
var1 = Not true
-Eqv. El operador Eqv realiza la equivalencia lógica de dos valores booleanos. Devuelve un valor
que puede ser true o false según los operadores participantes:
TRUE EQV TRUE = TRUE
TRUE EQV FALSE = FALSE
FALSE EQV TRUE = FALSE
FALSE EQV FALSE = TRUE
-Imp. El operador Imp realiza la implicación lógica de dos valores booleanos. Se utiliza igual que el
Eqv, pero los valores que devuelve vienen dador por la siguiente tabla:
TRUE IMP TRUE = TRUE
TRUE IMP FALSE = FALSE
FALSE IMP TRUE = TRUE
FALSE IMP FALSE = TRUE
4.Estructuras de control.
Son varias las funciones que nos permiten controlar el flujo de un programa:

-If. Es una sentencia condicional, ya que se encarga de evaluar una expresión. Según se cumpla o
no, ejecutará la acción correspondiente. Por ejemplo:
If var1 = 0 Then
'Acción a realizar si la condición se cumple
Else
'Acción a realizar si la condición no se cumple
End If
Si var1 es igual a 0, se llevan a cabo una serie de acciones. Si ésto no se cumple, se ejecutarán otras.
If indica el inicio de la condicional, con una expresión que indica la condición, seguida de Then,
que indica la ejecución de unas funciones si la expresión es verdadera. Else, se traduce como 'si no',
con lo que si no se cumple la primera condición, se llevará a cabo la que sigue al else. End If indica
el final de la sentencia.

Además del signo igual, existen otros operadores relacionales que pueden utilizarse al establecer
una condición. Operadores como mayor que ( > ), menor que ( < ), menor o igual que ( <= ), mayor
o igual que ( >= ) y distinto de ( <> ).

También es posible introducir condicionales dentro de condicionales:


If variable = 0 Then
'Acción a realizar si la condición 1 se cumple
Else
If variable > 0 Then
'Acción a realizar si la condición 2 se cumple
Else
' Acción a realizar si la condición 2 no se cumple
End If
End If
El código anterior se puede explicar así: si variable es igual a 0, se lleva a cabo la acción que sigue a
la misma línea de la condición. En caso contrario, se ejecuta el cuerpo del else, que a su vez incluye
otra condición, en la cual, si variable es mayor que 0, se ejecuta la acción que sigue a la línea de la
condición, mientras que, si no se cumple, se lleva a cabo la acción que sigue al else de esta última
condición.

En cuanto a formas más simples de utilizar if, existen un par de ellas. La primera es cuando sólo se
pretende realizar alguna acción siempre que la condición se cumpla:
If var1 = 0 Then
' Acción a realizar si la condición se cumple
End if
Con esto prescindimos de realizar alguna acción si la condición no se cumple. La segunda forma es
similar a la anterior, pero incluyendo todo el código en una sola línea:
If var1 = 0 Then var2 = true
-Do…Loop Until. La sentencia Do...Loop Until define un bucle infinito, que se ejecutará hasta que
la condición especificada se cumpla:
Do
‘Cuerpo a ejecutar hasta que variable sea igual a 1.
Loop Until Variable="1"
Do indica el comienzo del bucle. Seguidamente se colocan las instrucciones a realizar hasta que la
condición se cumpla. Loop se traduce como "salto", esto es, indica que se vuelva al punto donde
esta Do. A la derecha de Loop se coloca Until y el nombre de una variable seguido de un operador
de comparación (Igualdad (=), Desigualdad (<>), Menor que (<), Mayor que (>), Menor o igual que
(<=) o Mayor o igual que (>=)) y una expresión que hará que si se cumple, se salga del bucle y se
continúe la ejecución del script.
Un ejemplo de uso de la sentencia Do con las variables seria el siguiente:
Option Explicit
Dim Var1
Variable = 1
Do
var1=var1+1
Loop Until variable = "6"
A var1 se le asigna el valor 1. Tras iniciar el bucle, en cada vuelta se le va a sumar uno a var1. Tras
cinco vueltas, el valor de var1 es igual a 6, por lo que el bucle termina.
También es posible ubicar un bucle dentro de otro, o un bucle dentro de una sentencia If, o la
sentencia If en el bucle, etc…

-For…Next. La sentencia For...Next, crea un bucle a partir de una variable númerica, tomando
como valor de inicio el de la misma variable, teniendo un incremento determinado (Step) en cada
vuelta, y terminando el bucle tras llegar a un determinado valor (To):
For var1 = 0 To 10 Step 2
‘Acción a realizar
Next
El bucle se repite hasta que variable tome el valor 10, sumando automáticamente 2 cada vez que el
bucle se va a repetir.
For va seguido del nombre de una variable, a la cual se le asigna un valor inicial A continuación
colocamos la partícula To seguida de un valor final, que hará que el bucle se detenga al alcanzarlo.
Luego va la partícula Step, que indica el incremento de var1 en cada iteración. Next hace retornar el
bucle a la partícula For y añade a var1 el valor de Step. Si al llegar aquí el valor de la variable es
mayor que el final el bucle se romperá. Un ejemplo de uso de esta sentencia seria el siguiente:
For var=1 To 10
var2=var1 * var2
Next
En este caso, se ha omitido el Step, lo cual le indica que el paso es de 1. El bucle se repetiría 10
veces. En el siguiente ejemplo, se ha colocado un bucle for dentro de otro:
For variable=1 to 10
‘Accion a repetir 10 veces.
For variable2=1 to 2
‘Acción a repetir 20 veces.
Next
Next
Teniendo en cuenta que el bucle principal se repite diez veces y el secundario se repite dos veces, el
secundario, en realidad, se repetirá un total de veinte veces.
-Function. La sentencia Function sirve para crear una función personalizada a partir de otras
funciones simples, que puede ser llamada desde cualquier parte del código. Se expresa de la
siguiente forma y se coloca generalmente al principio o al final del script, por convención:
Function nombre_funcion(variables)
‘Funciones simples
End Function
Donde nombre_funcion es el nombre que le queremos dar a la función, y variables son las variables
que operaran en ella, a las que les daremos un valor al llamar a la función. Con esto lo que se quiere
decir es que una función jamás se va a ejecutar a no ser que se la llame.La forma de llamar a una
función es la que sigue:
Variable = nombre_función(variable)
Vamos a ver un ejemplo para mayor claridad:
Variable = 2
Function Incrementar(numero)
Incrementar = numero + 1
End Function
Variable 2 = Variable
Variable = Incrementar(Variable2)
Como veis, hemos puesto la sentencia en medio del código, pero esto es indiferente pues no se
ejecutará. Aun así lo más correcto habría sido ponerla al principio o al final, como se muestra a
continuación:
Variable = 2
Variable2 = Variable -1
Variable = Incrementar(Variable2+Variable)

Function Incrementar(numero)
Incrementar = numero + 1
End Function
A Variable se el asigna el valor 2, y a Variable2 el valor 1. Variable recibe la función Incrementar, a
la que se le envía el resultado de una suma. Tras ésto, la función incrementar devuelve a Variable el
valor 4, que es el resultado final. Aquí tenemos otro ejemplo con for:
Variable = 0
Variable2 = 100
For x = 1 To 50
Variable = Incrementar(Variable)
Variable2 = Decrecer (Variable2)
Next

Function Incrementar(numero)
Incrementar = numero + 1
End Function

Function Decrecer(numero)
Decrecer = numero - 1
End Function
En este caso tenemos dos funciones, y el código en general lo que haría sería dar a Variable el valor
0 y a Variable2 el valor 100, y luego repetir 50 veces un bucle donde la priemera se incrementa y la
segunda decrece.
Pero una función, además de recibir una variable, puede recibir varias, lo que incrementa las
posibilidades algorítmicas. Veamos un ejemplo:
Variable = 0
For x = 1 To 100
If Variable <= 50 then
Variable = matematicas(Variable, True, 2)
Else
Variable = matematicas(Variable, False, 1)
End if
Next

Function matematicas(numero,modo,valor)
If modo = True Then
matematicas = numero + valor
Else
matematicas = numero - valor
End If
End Function
Inicialmente Variable tiene el valor 0. Se tiene un bucle for que se ejecuta 100 veces. Si Variable es
menor o igual que 50, se llama a la función matemáticas, pasándole una serie de argumentos con
una serie de valores, e igualmente en caso contrario, también se llamará a la función matemáticas,
pasándole una serie de argumentos con otros valores distintos. La función matemáticas cumple el
siguiente cometido: si el modo recibido es True, suma al número recibido el valor recibido, y si el
modo recibido es False, resta al número recibido el valor recibido. Los argumentos que recibe la
función matemáticas son, por tanto, tres, y van separados por comas. El primero de ellos es
numérico, el segundo es de tipo booleano, y el tercero es también de tipo numérico.

5.Funciones Gráficas.
Las funciones gráficas son principalmente dos, el cuadro de mensaje y el cuadro de diálogo, y
sirven para mostrar la información en pantalla, y/o interactuar con el usuario dejando que sea él que
introduzca la información.

-Función MsgBox. Como su nombre indica (MessageBox), crea un cuadro de mensaje como los
que se pueden ver a continuación:

En el cuadro de mensaje se puede modificar el texto que va en la barra de título, la imagen de la


izquierda y los botones que aparecen. El cuadro de mensaje se asocia a una variable, en la cual se
determinará, por ejemplo, cual de los botones se ha pulsado.
Un cuadro de mensaje básico se crea con el siguiente código, siendo el más simple de todos:
Var1 = MsgBox("Mensaje",varios_parámetros,"Título")
Var1 es la variable a la que se asigna el MsgBox, la cual recibe la información sobre el botón
pulsado, Mensaje es el mensaje que se muestra en el cuadro, siendo Título el texto a colocar en la
barra de título. En varios parámetros, se indica la imagen, el numero de botones, el botón
predeterminado y el tipo de mensaje. Estos valores se pueden indicar mediante un número,varios, o
mediante el nombre que se le atribuye a éste o a éstos.
Si en el Mensaje se quiere colocar comillas, saltos de línea o una referencia a otra variable, hay que
realizarlo uniendo las expresiones con el símbolo de concatenación (&) de la siguiente manera:
Variable = MsgBox("Mensaje"&chr(13)&"Mensaje2",0,"Titulo")

En esta ventana, se tiene primero Mensaje, concatenado mediante & con un salto
de de línea, y a su vez concatenado mediante & con Mensaje2. El 0 indica un tipo de
botón normal, mientras que Titulo es el texto a indicar en la barra de título.

Variable = MsgBox("Mensaje"&chr(34)&"Mensaje2"&chr(34),0,"Titulo")

Aquí tenemos Mensaje, concatenado mediante & con el carácter comillas dobles, a
su vez concatenado con & a Mensaje2, que vuelve a concatenarse con el carácter
comillas dobles, lo que hace que Mensaje2 se muestre entre comillas en el cuadro
de texto.
Variable2 = 2
Variable = MsgBox("Mensaje "&Variable2,0,"Titulo")

En este caso, se asigna a Variable2 el valor 2. Mensaje se concatena mediante &


con el valor de Variable2. En el cuadro se muestra Mensaje seguido del valor de
Variable2.

El segundo parámetro que recibe el MsgBox es un número, el cual determina la imagen, el número
de botones, el botón predeterminado y el tipo de mensaje. A su vez, cada opción correspondiente a
las características mencionadas se corresponde con un número. De forma que la suma de todos los
números de todas las opciones a utilizar, es el número que hay que indicar como parámetro. A su
vez, a cada número le corresponde un nombre de constante, de forma que también será posible
indicar todas estas características concatenándolas mediante el carácter +. Se muestran las tablas
con las correspondientes equivalencias para botones, iconos, etc.

BOTONES
Nombre Constante Valor Botones a mostrar
vbOKOnly 0 Sólo el botón Aceptar
vbOKCancel 1 Aceptar y Cancelar
vbAbortRetryIgnore 2 Anular, Reintentar e Ignorar
vbYesNoCancel 3 Sí, No y Cancelar
vbYesNo 4 Sí y No
vbRetryCancel 5 Reintentar y Cancelar
ICONOS
Nombre Constante Valor Icono a mostrar
vbCritical 16 Mensaje crítico
vbQuestion 32 Consulta de advertencia
vbExclamation 48 Mensaje de advertencia
vbInformation 64 Mensaje de información
BOTÓN POR DEFECTO
Nombre Constante Valor Botón predeterminado
vbDefaultButton1 0 El primer botón
vbDefaultButton2 256 El segundo botón
vbDefaultButton3 512 El tercer botón
vbDefaultButton4 768 El cuarto botón
CUADROS DE DIÁLOGO
Nombre Constante Valor Tipo de cuadro
vbApplicationModal 0 Cuadro de diálogo modal de la
aplicación. El usuario debe
responder al cuadro de diálogo
antes de continuar trabajando
en la aplicación actual.
vbSystemModal 4096 Cuadro de diálogo modal del
sistema. Se suspenden todas
las aplicaciones hasta que el
usuario responda al cuadro de
mensaje.

Para crear un cuadro de mensaje con los botones Sí y No, añadiendo, además, el icono de informa-
ción y dejando el botón No como predeterminado, se tendría que indicar:
vbYesNo 4
vbInformation 64
vbDefaultButton2 256
Lo cual a la hora de crear el mensaje, se puede hacer de dos formas:
-Primera. Sustituyendo los numeros anteriores por su suma:
Variable = MsgBox("Mensaje",324,"Titulo")
-Segunda. Colocando los nombres de constantes concatenados mediante el carácter +.
Variable = MsgBox("Mensaje",vbYesNo+vbInformation+vbDefaultButton2,"Titulo")
Con lo que tendremos el siguiente cuadro de Mensaje:

Como ya se ha comentado anteriormente, la función MsgBox va siempre asignada a una variable,


en la cual se recoge el resultado de la operación efectuada con dicha función, esto es, se asigna el
valor correspondiente al botón pulsado. Por lo tanto, es necesario saber que valores estan asociados
a los distintos tipos de botón que se pueden utilizar, lo cual se indica en la siguiente tabla.
VALORES ASOCIADOS A LOS
BOTONES
Valor que recibe
Botón pulsado
la variable
Aceptar 1
Cancelar 2
Anular 3
Reintentar 4
Ignorar 5
Sí 6
No 7

Sabiendo ésto, se amplian las posibilidades a la hora de realizar scripts, como se puede ver en el
siguiente ejemplo:
Variable = MsgBox("¿Es muy tarde?",324,"VBScript")
If Variable = 6 Then
Variable2 = MsgBox("¡Parece que sí!",0,"VBScript")
Else
Variable3 = MsgBox("¡Menos mal!",0,"VBScript")
End If
Tras ejecutarlo, nos muestra el siguiente cuadro de mensaje:

Si pulsamos Sí, el if comprobará que efectivamente, el valor devuelto por la función MsgBox es el
6, lo que hara que se muestre la siguiente cuadro de mensaje:

Tras lo cual, al pulsar aceptar, el programa habrá terminado. Si en vez de pulsar Sí, se hubiese
pulsado No, la condición impuesta por el if no se cumpliría, ya que el valor que devuelve el botón
No es el 7. De esta forma, el cuadro de mensaje a mostrar sería el incluido en el cuerpo del else:

Tras lo cual, al pulsar aceptar, el programa termina.


-Función InputBox. También denominado cuadro de diálogo, crea una ventana en la que se tiene
un cuadro de texto y los botones aceptar y cancelar:

El cuadro de diálogo o InputBox, al igual que el cuadro de mensaje dispone de un mensaje a


mostrar, que por lo general es una pregunta, el texto que se coloca en la barra de título, y el texto
que se puede colocar por defecto, en el cuadro de texto, además de la posición en la pantalla donde
puede aparecer la ventana, mediante los parámetros x e y. Por otro lado, el cuadro de diálogo va
también unido a una variable, que recibirá la respuesta.
El siguiente código crea un cuadro de diálogo básico, en el que no se determina su posición en
pantalla:
Variable = InputBox("Pregunta","Título","Introduzca aquí su respuesta")
A Variable se le asigna el valor que devuelve el InputBox. La Pregunta del InputBox es el mensaje
que se muestra en el cuadro de diálogo, Título del InputBox es el texto a colocar en la barra de
título e Introduzca aquí su respuesta, es el valor que se ha indicado por defecto para el cuadro de
texto. Por tanto, esta función básica recibe tres parámetros.
Para colocar un salto de línea, comillas, o una referencia a otra variable, se realiza uniendo las
expresiones mediante el símbolo de concatenación (&):
Var1 = InputBox("Pregunta"&chr(13)&"Mensaje2","Titulo","Introduzca respuesta")

Var1 = InputBox("Pregunta"&chr(34)&"Mensaje2"&chr(34),"Titulo","Introduzca respuesta")


Var2 = 2

Var1 = InputBox("Pregunta "&Var2,"Titulo","Introduzca respuesta")


Para establecer una posición en la pantalla para el cuadro, se utiliza este esquema:
Variable = InputBox("Pregunta","Titulo","Introduzca respuesta",x,y)
El parámetro x se indica con un número, que especifica, en twips, la distancia horizontal del borde
izquierdo del cuadro de diálogo respecto al borde izquierdo de la pantalla. Si no se indica, el cuadro
de diálogo se centra horizontalmente. El parámetro y se indica con un número, que especifica, en
twips, la distancia vertical del borde superior del cuadro de diálogo hasta la parte superior de la
pantalla. Si no se indica, el cuadro de diálogo se sitúa verticalmente a una distancia aproximada de
un tercio de la parte inferior de la pantalla.
En el ejemplo anterior, Variable guardaría la respuesta enviada, incluso si no se ha escrito nada o se
pulsa cancelar, almacenando, con ésto, una cadena de longitud cero ("").
Aquí tenemos un ejemplo combinado con un MsgBox, el cual devuelve lo que se ha introducido en
el InputBox como respuesta:
Variable = InputBox("¿Que bebida te gusta?","Bebida","Introduce bebida")
Variable2 = MsgBox("Te gusta: "&Variable,0,"Bebida")
Tras ejecutar el script se tiene:

Tras introducir la bebida y pulsar aceptar...

...muestra la bebida que se ha introducido en el cuadro de texto del InputBox.

Vamos a ver otro ejemplo, alternando entre tres posibles respuestas, en el que, mientras no se
responde a una de las tres opciones solicitadas, el programa seguirá funcionando. Todo ello gracias
al uso de las sentencias if y Do:
Do
Variable = InputBox("Elige: whisky, cerveza o vino","Bebida","Respuesta")
If Variable="whisky" Then
Variable2="ok"
End If
If Variable="cerveza" Then
Variable2="ok"
End If
If Variable="vino" Then
Variable2="ok"
End If
Loop Until Variable2 = "ok"
Se ha creado un bluce Do...Loop Until, de forma que si no se introduce alguna de las opciones
indicadas, el programa continuará ejecutandose ininterrumpidamente. Tras introducir alguna de las
opciones posibles (tal cual se muestran, en minúsculas), el programa termina.

6.Funciones básicas.
Destacar las que operan con números, con cadenas, y con tiempo.

Funciones de valores numéricos. Los valores numéricos que almacenan las variables disponen de
varias funciones que los pueden modificar.

-Fix. Esta función elimina la parte decimal de un número. Ejemplo:


Var1 = "9,354"
Var2 = Fix(Var1)
Tras pasar Var1 por la función Fix, Var2 almacena el valor de 9.

-Abs. Esta función devuelve el valor absoluto de un número. Si el número es positivo lo deja como
está. Ejemplo:
Var1 = "-9,354"
Var2 = Abs(Var1)
Tras pasar Var1 por la función Abs, Var2 almacena el valor de 9,354.

-Rnd. Esta función devuelve un numero aleatorio decimal (0,33), por lo que es necesario, a veces,
multiplicarlo por 100 y luego aplicarle la función Fix, para obteenr un número entero. De esta
forma, es posible usar una función dentro de otra. Ejemplo:
Var1 = Fix(Rnd*100)
En este caso, a Var1 se le asigna un número que será el que se obtenga de multiplicar por cien el
número aleatorio obtenido de la función Rnd, que a su vez perderá su parte decimal al pasar por la
función Fix.

-Sgn. Esta función devuelve 1 si el signo del valor de Variable es positivo, -1 si es negativo y 0 si su
valor es 0. Un ejemplo de uso de esta función es el siguiente:
Var1 = "-9,354"
Var2 = Sgn(Var1)
Tras pasar Var1 por la función Sgn, Var2 almacena el valor de -1.

-Sqr. Esta función devuelve la raíz cuadrada de un número. Si el número es negativo genera un
error, por lo que, para este caso, es mejor usar previamente la función Abs. Ejemplo:
Var1= "9"
Var2 = Sqr(Var1)
Tras pasar Var1 por la función Sqr, Var2 almacena el valor de 3.
-Log. Esta función devuelve el logaritmo natural de un numero, es decir el logaritmo en base
e(2,718282) de un numero. Por eso es recomendable usar una división de logaritmos para hallar
logaritmos de la base que se desee siguiendo el siguiente ejemplo, donde Var1 es el numero al que
se le aplica el logaritmo y 8 es la base de este (se sustituye 8 por la base deseada):
Var1 = "64"
Var2 = Log(Var1) / Log(8)
Tras pasar Var1 a la función Log con base 8, Var2 tiene el valor 2.

-Sin, Cos y Tan. Estas funciones devuelven el seno, coseno y la tangente, respectivamente, de un
número, el cual indica su valor, expresándolo como ángulo en Radianes. Para convertir grados en
radianes, hay que multiplicar los grados por pi /180. Para convertir los radianes en grados, hay que
multiplicar los radianes por 180/pi. Ejemplo:
Var1 = "3,1415926535897932"
Var2 = Cos(Var1)
A Var1 se el asigna el valor pi. Tras pasar Var1 a la función Cos, Var2 recibe el valor -1.

Funciones de cadena. Se aplican a todas aquellas variables que sean de cadena, las cuales
modifican sus valores tras pasar por las mismas.

-LCase. Es una función que convierte toda una cadena a minúsculas. Ejemplo:
Var1 = "Hola"
Var2 = LCase(Var1)
Tras pasar Var1 a la función LCase, Var2 recibe el valor de cadena "hola".

-UCase. Función que convierte toda una cadena a mayúsculas. Ejemplo:


Var1 = "Hola"
Var2 = Ucase(Var1)
Tras pasar Var1 a la función UCase, Var2 recibe el valor de cadena "HOLA".

-Left. Función que devuelve la extracción de un número de caracteres determinados desde la


izquierda de una cadena. Por tanto, recibe dos parámetros: el primero sería la variable de cadena, y
el segundo el número de caracteres a extraer. Ejemplo:
Var1 = "Matemáticas es una asignatura un poco complicada"
Var2 = Left(Var1,6)
Tras pasar Var1 a la función Left, Var2 recibe el valor de cadena "Matema".

-Right. Función que devuelve la extracción de un número de caracteres determinados desde la


derecha de una cadena. Por tanto, recibe dos parámetros: el primero sería la variable de cadena, y el
segundo el número de caracteres a extraer. Ejemplo:
Var1 = "Matemáticas es una asignatura un poco complicada"
Var2 = Right(Var1,7)
Tras pasar Var1 a la función Right, Var2 recibe el valor de cadena "plicada".

-Mid. Función que devuelve la extracción de un número de caracteres determinados desde un punto
concreto de una cadena.Por tanto, recibe tres parámetros: el primero sería la variable de cadena, el
segundo, el punto de la cadena a partir del cual se va a realizar la extracción, el cual puede
comprender desde 1 y llegar hasta la longitud total de la cadena, y el tercero el número de caracteres
a extraer. Ejemplo:
Var1 = "Matemáticas es una asignatura un poco complicada"
Var2 = Mid(Var1,6,3)
Tras pasar Var1 a la función Mid, Var2 recibe el valor de cadena "áti".
-Len. Función que devuelve el número de caracteres que contiene una cadena. Ejemplo:
Var1 = "Hoy es martes"
Var2 = Len(Var1)
Tras pasar Var1 a la función Len, Var2 recibe el valor de 13.

-StrReverse. Función que invierte la posición de los caracteres de una cadena, de forma que el
primero pasa a ocupar el último lugar, el último el primero, y por tanto, todos los demás establecen
su posición con respecto a esta configuración. Ejemplo:
Var1 = "Hoy es martes"
Var2 = StrReverse(Var1)
Tras pasar Var1 a la función StrReverse, Var2 recibe el valor de cadena "setram se yoH".

-Trim. Función que elimina los espacios en blanco que pueda haber al inicio y final de una cadena
de caracteres. Ejemplo:
Var1 = " Hoy es martes "
Var2 = Trim(Var1)
Tras pasar Var1 a la función Trim, Var2 recibe el valor de cadena "Hoy es martes".

-InStr. Función que busca una palabra, dentro de una cadena de texto, y devuelve el número de
veces que la ha encontrado. Tiene dos modos de búsqueda: vbTextCompare, que no considera las
mayúsculas, y vbBinaryCompare, que respeta las mayúsculas. Recibe 4 parametros: el primero de
ellos indica el número de carácter a partir del cual se va a relizar la búsqueda, el segundo es la
variable en la cual se almacena el texto en el que se va realizar la busqueda, el tercero es la palabra
a buscar, y el cuarto definirá el tipo de búsqueda, con o sin mayúsculas.Ejemplo:
Var1 = "Hoy es martes"
Var2 = InStr(1,Var1, "Hoy", vbBinaryCompare)
Tras pasar Var1 a la función InStr, Var2 recibe el valor de 1.

-Replace. Función que busca una palabra, dentro de una cadena de texto, y la reemplaza por otra.
Como modos de búsqueda: vbTextCompare, que no considera las mayúsculas, y vbBinaryCompare,
que respeta las mayúsculas. Recibe 4 parametros: el primero es la variable en la cual se almacena el
texto en el que se va realizar la sustitución, el segundo es la palabra a buscar, el tercero es la palabra
que va a sustituir a la palabra buscada y el cuarto definirá el tipo de búsqueda, con/sin mayúsculas.
Usada también para eliminar partes o palabras de un texto, usando, como reemplazo, una cadena
vacia. Ejemplo:
Var1 = "Hoy es martes"
Var2 = Replace(Var1, "martes", "lunes", vbTextCompare)
Tras pasar Var1 a la función Replace, Var2 recibe el valor de cadena "Hoy es lunes".

Funciones de tiempo. Son aquellas funciones que nos permiten trabajar con la hora y fecha del
sistema.

-Now. Función que devuelve la fecha y hora actuales, en cadena de texto. Ejemplo:
Var1 = Now
Combinando esta función con un MsgBox, se puede ver la fecha y hora del sistema:
Var1 = MsgBox(Now,0,"Fecha y hora")
Tras ejecutarlo, se obtiene la siguiente ventana:
Teniendo en cuenta que Now guarda la fecha y hora en formato cadena, se podrían utilizar las
funciones de cadena para trabajar con ambas. Además, la función Now tiene sus propios operadores
de tiempo, que la pueden modificar para que guarde sólo la hora, el minuto, el año, u otros datos
concretos. En estos casos la función Now guardaría el valor como numérico y de cadena a la vez,
por lo que se podría modificar con ambos operadores de numero y de cadena. La funciones que
modifican a la función Now son las que siguen:

-Day. Función que recibe como parámetro a la función Now y devuelve, como valor númerico, el
día del mes vigente. Ejemplo:
Var1 = Day(Now)
Tras ejecutarlo, se asigna a Var1 el día de hoy, que es 2.

-WeekDay. Función que recibe como parámetro a la función Now y devuelve un valor númerico,
que se corresponde con el día de la semana. Este valor númerico va del 1 al 7, de forma que si hoy
fuera lunes, el valor a devolver sería 1, y si fuera domingo, el valor a devolver sería 7. Esta función,
además, recibe un segundo parámetro, para indicar que el primer día de la semana, es el 2, que en el
calendario americano, se corresponde con el lunes. Ejemplo:
Var1 = WeekDay(Now,2)
Tras ejecutarlo, se asigna a Var1 el día de la semana, que al ser martes, es el 2.

-Month. Función que recibe como parámetro a la función Now y devuelve un valor númerico, que
esta comprendido entre el 1 y el 12, y que se corresponde con el mes del año. Ejemplo:
Var1 = Month(Now)
Tras ejecutarlo, se asigna a Var1 el mes actual en formato númerico, que al ser marzo, es el 3.

-Year. Función que recibe como parámetro a la función Now y devuelve un valor númerico de
cuatro cifras, que se corresponden con el año actual. Ejemplo:
Var1 = Year(Now)
Tras ejecutarlo, se asigna a Var1 un valor numérico, correspondiente al año actual.

-Hour. Función que recibe como parámetro a la función Now y devuelve un valor númerico
comprendido entre 0 y 23, que se corresponden con la hora actual. Ejemplo:
Var1 = Hour(Now)
Tras ejecutarlo, se asigna a Var1 un valor numérico, correspondiente a la hora actual.

-Minute. Función que recibe como parámetro a la función Now y devuelve un valor númerico
comprendido entre 0 y 59, que se corresponden con el minuto de la hora actual. Ejemplo:
Var1 = Minute(Now)
Tras ejecutarlo, se asigna a Var1 un valor numérico, correspondiente al minuto actual.

-Second. Función que recibe como parámetro a la función Now y devuelve un valor númerico
comprendido entre 0 y 59, que se corresponden con el segundo de la hora actual. Ejemplo:
Var1 = Second(Now)
Tras ejecutarlo, se asigna a Var1 un valor numérico, correspondiente al segundo actual.

-WeekDayName. Función que recibe como parámetro a la función WeekDay, la cual, a su vez,
recibe como parámetros a la función Now y al valor 2, que indica el lunes como comienzo de la
semana. Además, recibe otros dos parámetros. El primero indica si se devuelve el nombre completo
o sólo las tres primeras letras del mismo, lo cual se hace indicando False o True respectivamente. El
segundo valor es un dos, que tiene la misma función que en la función WeekDay. Devuelve una
cadena de texto, en minúsculas, con el nombre del día de la semana. Ejemplo:
Var1 = WeekDayName(WeekDay(Now,2), False, 2)
Tras ejecutarlo, se asigna a Var1 un valor de cadena, el nombre del día de la semana.

-MonthName. Devuelve una cadena en minúsculas con el nombre del mes. Esta función recibe dos
parámetros. El primero es la función Month, la cual recibe a su vez a la función Now. El segundo
parámetro es un valor booleano, que con False indica que se devuelve el nombre completo del mes,
y con True indica que se devuelve sólo los tres primeros caracteres del mismo. Ejemplo:
Var1 = MonthName(Month(Now), False)
Tras ejecutarlo, se asigna a Var1 un valor de cadena, el nombre del mes.

-Time. Función que devuelve la hora, el minuto y los segundos, en formato digital y como cadena
de texto. Ejemplo:
Var1 = Time
Con esto se almacena en Var1 la hora como cadena de texto.

-Date. Función que devuelve el día, el mes, y el año, en el formato habitual, separados por la barra
inclinada, y como cadena de texto. Ejemplo:
Var1 = date
Con esto se almacena en Var1 la fecha como cadena de texto.

7.Programas.

-Programa que solicita al usuario una serie de operaciones, las cuales realiza el usuario sobre un
número que él sólo conoce, tras lo cual, teminadas dichas operaciones, el usuario introducirá el
número resultante de las mismas por pantalla, averiguando el programa el número que el usuario
había pensado inicialmente.

Option Explicit
Dim resultado

MsgBox "Piensa un número del 0 al 9",0,"Adivinador"


MsgBox "Multiplícalo por 4",0,"Adivinador"
MsgBox "Sumale 10",0,"Adivinador"
MsgBox "Divídelo entre 2",0,"Adivinador"
MsgBox "Sumale 50",0,"Adivinador"

resultado = InputBox("Introduce el número resultante","Adivinador","Coloca


aquí el número")

resultado = resultado - 50
resultado = resultado * 2
resultado = resultado - 10
resultado = resultado / 4

MsgBox "El número que pensaste fue: "&resultado,0,"Adivinador"

El programa a través de varios cuadros de mensaje, solicita una serie de operaciones a realizar sobre
un número. Tras ello, y mediante un cuadro de diálogo, se solicita el número resultante. Con este
número se realizan las operaciones en el orden inverso, desde la última y hasta la primera, de forma
que se invierta la operación realizada (se cambia la suma por la resta, la división por la multiplica-
ción, etc). Esto da como resultado el número que inicialmente se había pensado.
-Programa que solicita al usuario por pantalla la edad que tiene, y en función de dicha edad
mostrará un mensaje de entre tres posibles.

Option Explicit
Dim edad

edad = InputBox("¿cuál es su edad?","Edad","0")

if(edad<18) then
MsgBox "Eres un jovenzuelo",0,"Edad"
else
' edad >= 18
if(edad > 65) THEN
MsgBox "Usted ya está jubilado",0,"Edad"
else
' edad >= 18 y edad <=65
MsgBox "Usted es adulto",0,"Edad"
end if
end if

A través de un cuadro de diálogo, el programa solicita al usuario la introducción de un número


correspondiente a la edad, tras lo cual, el programa comprueba dicha edad, mediante tres
condiciones. Si la primera se cumple, el programa muestra un cuadro de mensaje con el texto "Eres
un jovenzuelo", ya que se refiere a una edad inferior a los 18 años. Si esta condición no se cumple,
se pasa al else, donde tenemos a su vez , otra condición, en la que se comprueba si la edad es mayor
de 65. Si se cumple, el programa muestra en pantalla un cuadro de mensaje con el texto "Usted ya
está jubilado". Por contra, si esta condición no se cumple, se pasaría al else correspondiente, donde
ya de forma directa se muestra el cuadro de mensaje con el texto "Usted es adulto".

Вам также может понравиться