Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Visual Basic: guía del estudiante




Enviado por latiniando



Partes: 1, 2, 3

    (Adaptados al programa de la
    Asignatura de Desarrollo en
    Entornos Gráficos del Módulo de Desarrollo de
    Aplicaciones Informáticas 2º Curso)

    Este libro,
    Visual Basic –
    Guía del Estudiante se ofrece a todos los estudiantes de
    habla hispana como texto de libre
    difusión para fines educativos. Prohibida la copia total o
    parcial con fines comerciales.

    Madrid, Julio de 1998

    Visual Basic – Guía del
    Estudiante Cap. 1

    INTRODUCCION Antecedentes históricos.

    ___________________________________

    El lenguaje de
    programación BASIC (Beginner's All purpose Symbolic
    Instruction Code ) nació en el año 1964 como una
    herramienta destinado a principiantes, buscando una forma
    sencilla de realizar programas,
    empleando un lenguaje casi
    igual al usado en la vida ordinaria ( en inglés), y con instrucciones muy sencillas
    y escasas. Teniendo en cuenta el año de su nacimiento,
    este lenguaje
    cubría casi todas las necesidades para la ejecución
    de programas.
    Téngase en cuenta que las máquinas existentes en
    aquella época estaban estrenando los transistores como
    elementos de conmutación, los ciclos de trabajo llegaban a
    la impensable cifra de 10.000 por segundo y la memoria no
    pasaba de unos pocos k´s en toroides de ferrita.

    La evolución del BASIC por los años 70
    fue escasa, dado el auge que tomaron en aquella época
    lenguajes de alto nivel como el FORTRAN y el COBOL. En 1978
    se definió una norma para unificar los Basics existentes
    creándose la normativa BASIC STANDARD

    Con la aparición de los primeros ordenadores
    personales, dedicados comercialmente al usuario particular,
    allá por la primera mitad de los ochenta, el BASIC
    resurgió como lenguaje de
    programación pensado para principiantes, y muchos de
    estos pequeños ordenadores domésticos lo usaban
    como único sistema operativo
    (Sinclair, Spectrum, Amstrad)

    Con la popularización del PC, salieron varias
    versiones del BASIC que funcionaban en este tipo de ordenadores
    (Versiones BASICA, GW-BASIC), pero todas estas versiones del
    BASIC no hicieron otra cosa que terminar de rematar este lenguaje. Los
    programadores profesionales no llegaron a utilizarlo, habida
    cuenta de las desventajas de este lenguaje
    respecto a otras herramientas
    (PASCAL, C,
    CLIPPER). El BASIC con estas versiones para PC llegó
    incluso a perder crédito
    entre los profesionales de la informática.

    Las razones para ello eran obvias:

    – No era un lenguaje
    estructurado.

    – No existían herramientas
    de compilación fiables.

    – No disponía de herramientas
    de intercambio de información.

    – No tenía librerías.

    – No se podía acceder al interior de la
    máquina.

    – Un largo etcétera de desventajas respecto a
    otros lenguajes de
    programación.

    Tal fue ese abandono por parte de los usuarios, que la
    aparición del Quick-BASIC de Microsoft, una
    versión ya potente del BASIC, que corregía casi
    todos los defectos de las versiones pasó
    prácticamente inadvertida, a no ser porque las
    últimas versiones del sistema operativo
    MS-DOS
    incluían una versión de Quick-BASIC algo recortada
    (Q-Basic) como un producto mas
    dentro de la amplia gama de ficheros ejecutables que
    acompañan al sistema
    operativo, y aprovecha de él el editor de textos (Cada
    vez que se llama al EDIT estamos corriendo el editor del
    Q-Basic).

    Esta versión del popular BASIC ya es un lenguaje
    estructurado, lo que permite crear programas
    modularmente, mediante subrutinas y módulos, capaz de
    crear programas ya
    competitivos con otros lenguajes de alto nivel. Sin embargo
    llegaba tarde, pues los entornos MS-DOS estaban
    ya superados por el entorno gráfico Windows.

    Sin embargo algo había en el BASIC que tentaba a
    superarse: su gran sencillez de manejo. Si a esto se le
    añade el entorno gráfico Windows, el
    aprovechamiento al máximo de las posibilidades de Windows en
    cuanto a intercambio de información, de sus librerías, de
    sus drivers y controladores, manejo de bases de datos,
    etc. el producto
    resultante puede ser algo que satisfaga todas las necesidades de
    programación en el entorno Windows. La
    suma de todas estas cosas es VISUAL – BASIC. Esta herramienta
    conserva del BASIC de los años 80 únicamente su
    nombre y su sencillez, y tras su lanzamiento al mercado, la
    aceptación a nivel profesional hizo borrar por fin el "mal
    nombre" asociado a la palabra BASIC.

    Actualmente se está comercializando la
    versión 5.0 de este producto.
    Desde su salida al mercado, cada
    versión supera y mejora la anterior. Dados los buenos
    resultados a nivel profesional de este producto, y el
    apoyo prestado por el fabricante para la formación de
    programadores, Visual-Basic se ha convertido en la primera
    herramienta de desarrollo de
    aplicaciones en entorno Windows.

    Es obligado decir sin embargo, que sigue siendo BASIC.
    No se pueden comparar sus prestaciones
    con otros lenguajes cuando deseamos llegar al fondo de la
    máquina y controlar uno a uno sus registros. No es
    ese el fin perseguido con VB y si es necesario llegar a esas
    precisiones será necesario utilizar otro lenguaje que
    permita bajar el nivel de programación. (Visual-C). o realizar
    librerías (DLLs) que lo hagan. En la mayor parte de las
    aplicaciones, las herramientas
    aportadas por VB son mas que suficiente para lograr un programa
    fácil de realizar y de altas prestaciones.


    Características Generales de
    Visual-Basic

    Visual-Basic es una herramienta de diseño
    de aplicaciones para Windows, en la que estas se desarrollan en
    una gran parte a partir del diseño
    de una interface gráfica. En una aplicación Visual
    – Basic, el programa
    está formado por una parte de código puro, y otras
    partes asociadas a los objetos que forman la interface
    gráfica.

    Es por tanto un termino medio entre la programación tradicional, formada por una
    sucesión lineal de código estructurado, y la
    programación
    orientada a objetos. Combina ambas tendencias. Ya que no
    podemos decir que VB pertenezca por completo a uno de esos dos
    tipos de programación, debemos inventar una palabra
    que la defina : PROGRAMACION VISUAL.

    La creación de un programa bajo
    Visual Basic
    lleva los siguientes pasos:

    – Creación de un interface de usuario. Este
    interface será la principal vía de comunicación hombre
    máquina, tanto para salida de datos como para
    entrada. Será necesario partir de una ventana – Formulario
    – a la que le iremos añadiendo los controles
    necesarios.

    – Definición de las propiedades de los
    controles – Objetos – que hayamos colocado en ese formulario.
    Estas propiedades determinarán la forma estática
    de los controles, es decir, como son los controles y para
    qué sirven.

    – Generación del código asociado a los
    eventos que
    ocurran a estos objetos. A la respuesta a estos eventos (click,
    doble click, una tecla pulsada, etc.) le llamamos Procedimiento,
    y deberá generarse de acuerdo a las necesidades del
    programa.

    – Generación del código del programa. Un
    programa puede hacerse solamente con la programación de los distintos procedimientos
    que acompañan a cada objeto. Sin embargo, VB ofrece la
    posibilidad de establecer un código de programa separado
    de estos eventos. Este
    código puede introducirse en unos bloques llamados
    Módulos, en otros bloques llamados Funciones, y
    otros llamados Procedimientos.
    Estos Procedimientos
    no responden a un evento acaecido a un objeto, sino que
    responden a un evento producido durante la ejecución del
    programa.

    No es necesario entender de momento lo anterior.
    Visual Basic
    introduce un concepto nuevo de
    programación, y es necesario cambiar hasta
    el argot del programador. Posiblemente se le habrán
    acumulado demasiados términos de una sola vez. Es normal.
    A poco que siga leyendo verá las cosas mas claras cuando
    se explique una por una.

    VARIABLES. DEFINICION Y ENTORNO

    Basic, desde siempre, al contrario de otros sistemas de
    programación, no exigió la
    definición previa de una variable. Una variable, como Vd.
    seguro que
    conoce, es un nombre que en el programa le asignamos a un dato.
    Ese dato podrá cambiar. Piense por ejemplo, en un programa
    consistente en la toma de datos de los
    alumnos de un centro escolar. Existirán varias variables para
    poder
    introducir los datos de los
    alumnos. Estas variables
    pueden tener nombre tales como:

    Nombre

    Apellido1

    Apellido2

    Dirección

    Teléfono

    DNI

    La variable Nombre tomará valores
    distintos según vayamos introduciendo los datos de los
    distintos alumnos. Es posible, que a lo largo de la
    ejecución del programa, esta variable Nombre
    valga:

    José

    Pedro

    María

    Luis

    Espero que su intuición o conocimiento
    anterior le lleve a conocer el concepto de
    variable. Mas adelante lo verá mas claro.

    Decíamos que Basic no exige la definición
    previa de las variables.
    Otras herramientas
    exigen que se haga así. Por lo tanto es normal encontrar,
    en otros sistemas de
    programación, que un programa comienza de
    la siguiente forma:

    Declare Nombre As String Le dice que Nombre es una
    sucesión de letras

    Declare Apellido1 As String

    Declare Apellido2 As String

    Declare Dirección As String

    Declare Teléfono As String Le dice que
    Teléfono es una sucesión de letras

    Declare DNI As Número Le dice que DNI es un
    número

    Mediante estas declaraciones, el programa sabe de que
    tipo de dato se trata y por tanto cómo debe trabajar con
    él. En otros sistemas de
    programación distintos de Basic, es
    necesario realizar esta declaración antes de introducir
    una variable.

    Basic permite que no se declaren. Cuando a lo largo del
    programa le introducimos una variable nueva, asume que es una
    variable y que el tipo es el adecuado para el valor que le
    estamos introduciendo en ese momento.

    Por ejemplo, si Basic encuentra estas
    instrucciones

    DNI=50000000

    Nombre ="Pedro"

    Teléfono = "1234567"

    entiende que DNI, Nombre y Teléfono son
    variables, que
    DNI es un número (No hemos metido su valor entre
    comillas), y que Nombre y Teléfono son
    sucesiones de
    caracteres alfanuméricos (su valor
    está entre comillas)

    Esta particularidad de no necesitar declarar las
    variables hace
    que sea sencillo introducir una variable nueva. Sin embargo
    entraña un gran peligro. Imagínese que en un paso
    posterior del programa, le mandamos escribir esos tres datos anteriores
    con la instrucción PRINT

    Print DNI

    Print Nombre

    Print Telwfono

    Habrá observado en tercer lugar la palabra
    Telwfono, que por error ha introducido el programador.
    Basic interpreta que Telwfono es una variable e irá a leer
    en memoria el
    valor que
    tiene. No tendrá ningún valor. Por lo
    tanto no escribirá nada y encima no dará
    ningún aviso de que se ha cometido un error. Nada es
    gratis en esta vida, y la facilidad para introducir variables se
    paga con la posibilidad de un error.

    Basic ha pensado en ese problema, y se puede solucionar
    con esta que será la primera instrucción BASIC que
    vamos a estudiar:

    OPTION EXPLICIT

    Obliga a declarar previamente las variables que se
    vayan a usar. De no haberla declarado antes de usarla, el
    programa dará una comunicación de error.

    TIPOS DE VARIABLES

    Las variables pueden ser de los siguientes tipos: (El
    número indicado en segundo lugar indica el número
    de Bytes que ocupa en memoria.)

    Booleana (2) Admite los valores 0
    y 1, o True (verdadero) y False (falso)

    Byte (1) Números enteros, en el rango de 0 a
    255

    Integer (2) Números enteros en el rango de
    -32768 a 32767

    Long (4) Números enteros en el rango de
    -2147483648 a 2147483647

    Single (4) Punto flotante, simple
    precisión

    Doble (8) Punto flotante, doble
    precisión.

    Currency (8) Entero, con punto decimal fijo
    (Típico de monedas)

    String (*) Cadenas alfanuméricas de longitud
    variable o fija

    Date (8) Fechas

    Objet (4) Referencia a objetos

    Variant (**) Otros tipos de datos

    (*) Una variable tipo String ocupa el mismo
    número de bytes que caracteres tenga la cadena.

    (**) Una variable tipo Variant ocupa 16 bytes si se
    trata de un número y 22 bytes + longitud de la cadena si
    se trata de un dato tipo cadena de caracteres.

    Existen también variables definidas por el
    usuario (Ya verá la sentencia Type). En este tipo de
    variables se pueden introducir muchos datos de distinto tipo. Los
    bytes necesarios para almacenar esa variable dependerá de
    los datos que se hayan definido.

    Dentro de las variables Objet (variables que se
    refieren a objetos) existe una gran variedad que a estas alturas
    del curso no debemos complicarnos con ellas. Pero para adelantar
    algo, veremos que una variable puede ser del tipo Form –
    Formulario – , tipo Picture, etc. etc.

    Cada tipo de variable ocupa unos determinados bytes. Si
    no se define una variable, VB toma como tipo por defecto para la
    variable el tipo Variant. Este tipo ocupa mas bytes que, por
    ejemplo, un integer. Si el tipo de dato que vamos a introducir en
    una variable es un integer, y no la hemos declarado como tal, VB
    asumirá para esa variable que es del tipo Variant, lo que
    le llevará a gastar mas bytes de memoria (16) que
    los que necesitaría (2) si la hubiésemos declarado
    previamente. Si esa variable va a estar en el rango de 0 a 255, y
    no declaramos previamente que la variable va a se del tipo Byte,
    o la declaramos como integer, p. e., estamos desperdiciando
    memoria RAM y
    posiblemente, retardando la ejecución del programa. Lo
    mismo podemos decir del resto de las variables, y lo importante
    que es definirlas y definirlas bien.

    NOTA. Observe en la lista anterior que un dato Booleano
    ocupa 2 Bytes, mientras que un dato tipo Byte ocupa un byte. En
    muchas ocasiones declaramos variables tipo Boolean con la
    intención de que ocupen menos espacio. Paradoja del VB. Si
    la declaramos como Byte ocupamos menos espacio en memoria. Declarar
    una variable como Boolean tiene también sus ventajas
    (escribirá menos código por lo general cuando
    necesite leer o escribir una variable tipo Boolean), pero tenga
    presente esta observación respecto a los datos
    Boolean.

    Puede declarar el tipo de la variable mediante un
    carácter después del nombre de la variable. Esta
    técnica, obligatoria en Quick-Basic, está en desuso
    en VB. No es recomendable definir el tipo de esta forma, pues
    existe un serio peligro de error. De cualquier forma, eso es
    potestativo del programador y de sus costumbres.

    Los caracteres que definen cada tipo de variable
    son:

    % Integer & Long ! Single

    # Double @ Currency $ String

    Ejemplos Prácticos de declaración de
    variables

    En Visual Basic,
    cuando declaramos una variable como String (Cadena de
    caracteres), no es necesario declarar su longitud. VB
    aceptará cualquier número de caracteres. Si desea
    evitar que se puedan introducir más de un determinado
    número de caracteres, debe declarar su número. Por
    ejemplo :

    Dim Var1 as String Var1 puede tener cualquier
    número de caracteres

    Dim Var2 as String * 15 Var2 puede tener un
    máximo de 15 caracteres.

    En este segundo caso, si se introduce como Var2 una
    cadena de caracteres con mas de 15 caracteres, Var2 tomará
    solamente los 15 primeros. Visual basic
    no presenta ningún aviso de que esa variable ha
    omitido los caracteres que han sobrepasado la cifra de 15. Si
    desea que el usuario conozca esa circunstancia, debe introducir
    el código oportuno para producir el aviso.

    La declaración de variables tipo String con
    número de caracteres predefinido presenta también
    inconvenientes a la hora de tratar esa cadena de caracteres con
    sentencias tales como Mid, Left y Right, o a la hora de
    añadir una cadena a otra. La experiencia nos indica que
    NO merece la pena declarar variables tipo String con el
    número de caracteres prefijado.

    En una gran parte de los casos una variable que
    se compone de números debe declararse como una variable de
    cadena de caracteres (String), y no como numérica. Cuando
    pensamos por ejemplo en un número de DNI, compuesto por 7
    u 8 cifras, un código postal, el número de una
    calle, el piso de un edificio, parecen invitar a que la variable
    que los contenga sea una variable de tipo numérico (Byte,
    Integer, Long, …). Estas variables, aunque su contenido sean
    números, siempre se deben declarar como String, ya que se
    tratan en realidad de cadenas de caracteres, aunque estos sean
    números. Para aclarar mas estas ideas, piense en el
    número del DNI con la letra del NIF incluido, o que el
    lugar del DNI se deba rellenar con el número del permiso
    de residencia, (lleva letras). Piense en el código postal
    de una provincia que comienza por 0 ( 08XXX = Barcelona ) . Si la
    variable que va a contener ese código postal se declara
    como numérica, el cero de la izquierda lo desprecia, por
    lo que ese código postal quedaría reducido al 8XXX,
    número de 4 cifras que el cartero nunca reconocería
    como un código postal, que necesariamente ha de tener 5
    cifras. Para terminar, piense la forma de introducir en una
    variable numérica el número 32Bis de una calle o el
    piso S2 de un edificio. O piense en una variable que va a
    contener un código de un producto. Ese
    código siempre va a ser un número, por ejemplo de 9
    cifras. ¿Ha pensado como trataría el ordenador una
    variable numérica que contiene el código
    000100123 ?. El resultado sería que
    convertiría ese código en la cifra 100123, y Vd.
    deberá buscarse la vida para añadir los ceros
    iniciales a la hora de sacarlo a una impresora, por
    ejemplo.

    En todos los casos anteriores, el número no
    representa una cantidad numérica, sino un nombre. Lo que
    ocurre es que ese nombre contiene solamente
    números.

    ¿Qué variables debemos declarar entonces
    como numéricas ? La respuesta es bien sencilla :
    Aquellas que van a contener datos con lo que vamos a
    realizar operaciones
    matemáticas.

    Las variables booleanas (True/False) pueden en muchos
    casos sustituirse por una variable del tipo Byte. Si ese datos
    True / False se va a introducir en una base de datos o
    en fichero en el disco, puede ser mas prudente poner 0 en vez de
    False y 1 en vez de True.

    Una variable byte ocupa muy poco, simplemente 1 byte
    como su nombre indica. Pero no puede contener números
    mayores de 255 ni números negativos.

    Cada vez que declare una variable numérica piense
    en los valores
    que puede tener, sobre todo cuando esa variable va a ser el
    resultado de una operación matemática. Recuerde el escaso margen de
    una variable tipo Integer ( de -32768 a 32767)

    Si la aplicación va a tratar moneda, piense en la
    forma de expresar los números decimales y el número
    de ellos permitidos, así como el redondeo. La variable
    correcta para este caso es Currency, pero Currency le
    añade automáticamente el tipo de moneda de cada
    país (Pts. Para España) lo
    que con frecuencia es un engorro. Los datos del tipo de moneda
    los toma del sistema operativo
    del ordenador, por lo que no se extrañe si le expresa el
    número de pesetas en dólares. Cambie el país
    en su S. O.

    Ambito de las variables.

    Denominamos ámbito de una variable a las partes
    del programa donde esa variable está declarada. Para
    entenderlo mejor, veamos someramente la forma de un programa
    desarrollado en VB.

    Un programa VB tiene uno o varios formularios. Cada
    formulario tiene varios controles. Tanto el formulario como cada
    uno de sus controles tienen una parte del programa, justamente la
    parte relacionada con cada uno de los eventos que
    pueden suceder bien al formulario o a los controles. A estas
    partes las habíamos llamado Procedimientos.
    Podemos tener procedimientos
    que no estén relacionados con ningún evento
    ocurrido al formulario o a sus controles. (Los Procedimientos que
    iremos insertando a lo largo de la aplicación)

    Aparte de formularios y
    controles, un programa puede tener Módulos, y en cada uno
    de los módulos podemos insertar cuantos Procedimientos y
    Funciones
    queramos. La estructura de
    un programa VB puede ser de la siguiente forma:

    Formulario1 Formulario2 Formulario3 Módulo1 Modulo2

    Declaraciones Declaraciones Declaraciones Declaraciones Declaraciones

    Proc. A1 Proc.B1 Proc.C1 Proc.D1 Proc.E1

    Proc. A2 Proc.B2 Proc.C2 Proc.D2 Proc.E2

    Proc.
    A3 Proc.B3 Proc.C3 Proc.D3 FunciónE1

    Proc. A4 Proc.B4 Proc.C4 Proc.D4
    FunciónE2

    Proc. A5 Proc.BB1
    Proc.CC1 FunciónE3

    Proc.
    AA1 Proc.BB2 Proc.CC2 FunciónE4

    Proc.
    AA2 Proc.B33 Proc.CC3 FunciónE5

    Proc. AA3 Proc.CC4 FunciónE6

    Si se declara una variable dentro de un procedimiento o
    Función, esa variable "NO SALE" del Procedimiento o
    Función donde se declaró. El procedimiento
    puede estar en un Formulario (Cualquier procedimiento de
    un control o un
    procedimiento creado por nosotros) o en un Módulo (En este
    caso, el procedimiento solo puede ser creado por
    nosotros)

    En un Formulario, una variable puede declararse de dos
    formas : Privada o Pública. Para
    declarar una variable a nivel de formulario debe hacerse en la
    sección de declaraciones, que está la ventana de
    código Objeto = General, Proc. =
    Declaraciones
    . Si se declara Privada, esa variable
    se puede mover por todo el formulario, (es decir, por todos los
    procedimientos de todos los controles del formulario y por los
    Procedimientos que pudiésemos insertar en ese formulario),
    pero no sale de dicho formulario. Si se declara como
    Pública, esa variable puede moverse por todo el
    formulario, de la misma forma que lo haría declarada como
    Privada, y además puede ser usada desde otro Formulario o
    Módulo, citándola con el nombre del Formulario,
    seguido del nombre de la variable
    (Formulario.Variable)

    En un Módulo una variable puede declararse como
    Privada, con lo que no saldrá de ese Módulo,
    o Pública, pudiendo en este caso usarse en todo el
    programa. Cuando se declara una variable como pública en
    un Módulo, basta referirse a ella por su nombre, sin citar
    el nombre del Módulo donde se declaró.

    En VB es posible declarar varias veces las variables, es
    decir, pueden declararse a nivel de formulario, en su apartado de
    declaraciones, y esa variable conservará su valor en todas
    las partes de ese formulario. Sin embargo, si se declara una
    variable con el mismo nombre a un nivel inferior, por ejemplo al
    principio de un procedimiento, esa variable será una
    variable distinta a la anterior, aunque tenga el mismo nombre, a
    al declararla en un Procedimiento, solamente será
    válida en ese Procedimiento. Una vez que hayamos salido de
    ese procedimiento, la variable con ese nombre volverá a
    ser la declarada en el Formulario. En realidad, lo que tenemos
    son dos variables distintas, pero con el mismo nombre, una
    declarada para todo el formulario excepto para el procedimiento
    donde se volvió a declarar, y otra para ese procedimiento
    concreto.

    NOTA.- No es recomendable declarar una variable a dos
    niveles. Es mucho mejor utilizar otro nombre para esa variable
    dentro del procedimiento donde se le declararía por
    segunda vez. A esta nota cabe exceptuar cuando declaramos
    variables para una operación tipo contador

    For I = 1 To N

    Esa variable I es práctico declararla con el
    mismo nombre en cada Procedimiento donde se use.

    Tipos de declaración de
    variables.

    Sentencia DIM Es la forma mas común de
    declarar una variable como

    Privada. Puede emplearse en un Procedimiento,
    Función, Formulario o Módulo. La sintaxis es de
    la siguiente forma:

    Dim nombrevariable As Integer(o el tipo
    que sea)

    Declarando una variable con la sentencia DIM, en un
    formulario, Función,
    procedimiento o módulo, el
    entorno de la variable será el explicado anteriormente
    para una variable declarada como Privada. Es decir, esa variable
    no sale del formulario, procedimiento ó módulo
    donde se declaró. Cada vez que entremos al formulario,
    procedimiento o módulo, esa variable tomará el
    valor cero (si es numérica) o nulo (si es
    string).

    Sentencia PRIVATE Es la forma de declarar una
    variable como Privada. Puede

    emplearse solamente en la sección de
    declaraciones de un Formulario o Módulo. La sintaxis es
    de la siguiente forma:

    Private nombrevariable As Tipovariable

    Declarando una variable mediante la sentencia
    PRIVATE en un Formulario o Módulo, esa variable
    puede usarse en todo ese Formulario o Módulo (En todos sus
    Procedimientos y Funciones), pero
    NO fuera del Formulario o Módulo donde se
    declaró.

    La sentencia Private no puede usarse en un
    procedimiento o función.

    Sentencia PUBLIC Es la forma de declarar una
    variable como Pública. Puede

    emplearse solamente en la sección de
    declaraciones de un Formulario o Módulo. La sintaxis es
    de la siguiente forma:

    Publicnombrevariable As Tipovariable

    Declarando una variable de esta forma en la
    sección de declaraciones de un Módulo, esa
    variable puede usarse en cualquier parte del programa
    citándola simplemente por su nombre.

    Si se declara de esta forma en la sección de
    declaraciones de un Formulario, esa variable puede usarse en toda
    el programa. Para nombrarla, si estamos en el Formulario donde se
    declaró basta con citarla por su nombre. Si no estamos en
    ese Formulario, habrá que citarla por el nombre del
    Formulario, seguido del nombre de la variable, separados por un
    punto :

    NombreFormulario.Nombrevariable

    En un Módulo puede usarse también la
    sentencia Global en vez de Public :

    Sentencia GLOBALDeclara una variable que es
    válida en todo el programa. La sintaxis es:

    Global nombrevariable Astipovariable

    La sentencia Global sólo puede usarse en
    el apartado de declaraciones de un
    Módulo.

    Mediante la sentencia Global la variable puede
    usarse en todo el espacio del programa.

    Sentencia STATIC

    Como se dijo anteriormente, una variable declarada en un
    procedimiento pierde su valor al salir de él. Lo peor es
    que una vez que el programa vuelva a entrar en ese procedimiento,
    la variable estará puesta a cero. Afortunadamente, esto
    último tiene solución. Si declarásemos una
    variable en un procedimiento o función, como estática,
    esa variable, aunque no la podremos utilizar fuera de ese
    procedimiento o función, cuando volvamos a él
    conservará el valor que tenía cuando lo
    abandonamos. Esta declaración como estática
    se realiza mediante la intrucción Static

    Static nombrevariable Astipovariable

    El nombre de una variable puede ser tan largo como
    queramos. hasta un máximo de 40 caracteres. En la
    versión VB para España se
    pueden usar incluso la Ñ y vocales acentuadas. Es
    indiferente usar mayúscula ó minúsculas. No
    se sorprenda, si por ejemplo, la ha declarado con
    mayúsculas y luego la cita con minúsculas al
    escribir el código, que automáticamente se cambie a
    mayúsculas. El nombre de una variable siempre debe
    comenzar por una letra.

    No hay problema por utilizar variables largas. Al
    compilar el programa no se lleva el nombre, es decir, no le va a
    ocupar mas espacio. Utilice siempre nombres que le definan la
    variable con algún sentido. Es muy útil a la hora
    de acordarse como se llaman, y sobre todo, a la hora de rehacer
    un programa que realizó hace seis meses.

    Pese a que Visual Basic no
    obliga a declarar variables, es muy útil hacerlo. De esta
    forma se tiene control sobre el
    programa. La experiencia se lo irá demostrando.

    Resumimos la forma de declarar una
    variable :

    En un Procedimiento (La variable no puede
    usarse fuera de esta Procedimiento)

    Dim Variable As Tipovariable

    En un Procedimiento, como permanente (La
    variable no puede usarse fuera de este procedimiento, y dentro de
    él conserva el valor aunque se salga y se vuelva a
    entrar)

    Static Variable As
    Tipovariable

    En un Formulario (En su sección de
    declaraciones)

    Como Privada (Solamente se puede usar en ese
    Formulario)

    Dim Variable As Tipovariable
    ó

    Private Variable As
    Tipovariable

    Como Pública (Puede usarse en toda la
    aplicación)

    Public Variable As Tipovariable

    En un Módulo

    Como Privada (Solamente puede usarse en ese
    Módulo)

    Dim Variable As Tipovariable
    ó

    Private Variable As
    Tipovariable

    Como Pública (Puede usarse en toda la
    aplicación)

    Public Variable As Tipovariable ó

    Global Variable As
    Tipovariable

    Error típico de un programador novel de Visual
    Basic

    Creo que esta costumbre viene del lenguaje C.
    Pero no vale en VB. Se trata de declarar varias variables juntas
    en una misma línea :

    Dim Variable1, Variable2, Variable3, Variable4
    As String

    Esta declaración está MAL hecha.
    Visual Basic
    interpretará que Variable1, Variable2 y Variable3 son del
    tipo Variant, y solamente Variable4 la supone como tipo
    String

    La forma correcta de hacerlo, si queremos declarar esas
    variables un una sola línea, es la
    siguiente :

    Dim Variable1 As String, Variable2
    As String, Variable3 As String, Variable4 As
    String.

    Lenguaje Basic del Visual
    Basic.

    No ha sido un juego de
    palabras. VB emplea unas instrucciones casi iguales a las que
    emplea Quick Basic. Sin embargo ha añadido otras nuevas
    instrucciones, inherentes con la programación visual. Vamos a estudiar
    aquí las instrucciones y definiciones mas sencillas,
    comunes a QB y VB.

    Sentencias condicionales.

    Llamamos sentencias condicionales a aquellas que se
    realizan si se cumple una determinada condición. Son las
    sentencias por las que empieza cualquier texto de
    Basic, y este no va ser menos.

    La sentencia condicional mas usada es:

    Si se cumple una condición
    Entonces

    Realiza estas instrucciones

    Si no se cumple

    Realiza estas otras instrucciones

    Fin de la sentencia.

    Así de fácil es programar en Basic. Lo que
    ocurre es que esta herramienta habla inglés,
    y lo descrito anteriormente toma la forma:

    If condición Then

    Instrucciones

    Else

    Otras instrucciones

    End If

    En este ejemplo, la condición era que, o se
    cumple una condición y ejecuta unas determinadas
    instrucciones, o no se cumple, y ejecuta otras condiciones
    distintas. Puede ocurrir que, caso de no cumplirse la condicione
    primera, se abra un abanico de dos o tres posibilidades. La
    sentencia condicional tendría entonces la
    forma:

    If condición 1 Then

    Instrucciones

    ElseIf Condición 2

    Otras instrucciones

    ElseIf Condición 3

    Otro juego de
    instrucciones

    Else

    Instrucciones que debe realizar caso de no
    cumplir las condiciones 1, 2 y 3.

    End If

    Como decíamos anteriormente, este es el tipo de
    sentencia condicional mas usada. Existe otra:

    Select Case

    Su nombre casi nos define lo que es: Selecciona,
    dependiendo del caso, un determinado juego de
    instrucciones:

    Select Case variable ' variable es una variable
    que puede tomar los valores
    (p.e.) de 1 a 4

    Case 1

    Instrucciones a ejecutar en caso de que variable =
    1

    Case 2

    Instrucciones a ejecutar en caso de que variable =
    2

    Case 3

    Instrucciones a ejecutar en caso de que variable =
    3

    Case 4

    Instrucciones a ejecutar en caso de que variable =
    4

    End Select

    Este procedimiento resulta mucho mas sencillo y
    rápido que las sentencias If Then Else

    vistas anteriormente, cuando el margen de
    elección es mayor que 2.

    Cuando lo que queremos es elegir un valor, no ejecutar
    instrucciones como hacíamos anteriormente, disponemos de
    otras dos funciones:
    Choose y Switch.

    Switch toma una serie de parámetros, todos
    por parejas. El primer término de cada pareja es la
    expresión a evaluar. El segundo es el valor que tiene que
    devolver. En realidad Switch es una función (las
    funciones las
    veremos muy pronto)

    A = Switch (B=1, 5, B=2, 7, B=3, 11)

    Esta instrucción obtiene un valor para A que
    dependerá del valor que tome B entre los valores
    posibles (1, 2 ó 3)

    La sentencia Choose es casi igual, cambia
    solamente la forma. La misma intrucción anterior puede
    realizarse con Choose de la siguiente forma:

    A = Choose ( B, 5, 7, 11 )

    En estas sentencias, Switch y Choose, si
    el valor de B no coincide con ninguno de los valores
    que se le habían establecido (1, 2 ó 3 en nuestro
    caso), la sentencia devuelve el valor Nulo ( Null ). Esto
    puede producir algún error si no se contempla esa
    posibilidad.

    Con estas sentencias condicionales es posible realizar
    bifurcaciones del programa, cambiar las propiedades de un objeto,
    obtener resultados de operaciones,
    ….

    Sentencias de bucle.

    Es muy común utilizar bucles a lo largo de un
    programa. Un bucle es una sucesión repetitiva de
    instrucciones, que se estarán realizando mientras se
    cumpla una condición o mientras no se cumpla otra
    condición. Es tan sencillo como esto:

    Mientras condición

    Instrucciones

    Fin del bucle

    Existen dos formas de bucle: Una, que realiza un
    número determinado de recorridos por el bucle. Es el
    denominado bucle por contador. Otra, realiza el bucle hasta que
    se cumpla (o deje de cumplirse) una condición. Es el
    llamado bucle por condición.

    Bucle por contador

    Realiza el bucle tantas veces como le indiquemos. Por
    ejemplo, en este bucle nos va a presentar las 26 letras
    mayúsculas del alfabeto inglés

    For N=65 To 90

    Label1.caption = Chr ( N )

    Next N

    Este "programa" nos presentará en una caja
    (Label) los caracteres cuyo número ASCII vaya desde
    el 65 (A) al 90 (Z) Comenzará presentando el
    correspondiente al número 65, e irá presentando
    sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se
    parará.

    Bucles por condición

    Ejecuta las instrucciones del bucle mientras se cumple
    una condición

    X = 0

    Do While X < 1000

    X = X + 1

    Loop

    El programa toma una variable ( X ) que previamente
    tuvimos la curiosidad de ponerla a cero, e incrementa su valor
    una unidad. Analiza si el valor de X es menor que 1000, y si es
    cierto, vuelve a realizar el bucle. Así hasta que X ya no
    sea menor que 1000. Al dejar de cumplirse que X sea menor que
    1000, sale del bucle. Acabamos de realizar un temporizador, y
    también de exponer las sentencias condicionales y los
    bucles, inicio de cualquier curso de Basic. Como final de
    lección, se propone un problema. Con el primer bucle,
    donde visualizábamos los caracteres A a la Z, posiblemente
    no nos diese tiempo de ver
    cada una de las letras que iban apareciendo en la pantalla, en la
    etiqueta Label1, dado que cambiaría con mucha velocidad, y
    solamente veríamos la Z, que es donde se detuvo el
    programa. Podemos poner un temporizador cada vez que presente una
    letra, y así nos dará tiempo a verla.
    Con los dos bucles vistos anteriormente ya podemos
    hacerlo.

    Si lo que queremos es que el programa se ejecute
    mientras no se cumpla una determinada condición, la
    sentencia será:

    X = 0

    Do Until X > 1000

    X = X + 1

    Loop

    Observe que la diferencia entre una y otra es la
    condición, While para indicar Mientras se cumpla
    que …
    y Until para indicar Mientras no se cumpla
    que ….

    Para terminar bien el programa anterior utilizaremos la
    condición de While (Mientras se cumpla la
    condición)

    For N=65 To 90

    Label1.caption = Chr ( N )

    Label1.RefreshN' Refresca la etiqueta

    X = 0

    Do While X < 1000

    X = X + 1

    Loop

    Next N

    Este es nuestro primer programa en BASIC. En VISUAL BASIC es
    idéntico, pero nos falta la interface gráfica. Para
    realizarla basta con abrir el VB y sobre el formulario que
    aparece al abrirlo, introducir una etiqueta, (Label) que
    llevará el nombre por defecto de Label1. Solo nos queda
    pensar donde introducimos el código anterior. Podemos
    introducir un botón de comando (Command Button) que
    saldrá con el nombre por defecto de Command1. Haga doble
    click sobre el botón. Aparecerá el procedimiento
    Click. Este procedimiento es el que se realiza cuando hacemos
    click sobre ese botón. Escriba en ese procedimiento este
    código.

    Private Sub Command1_Click() ' Esta línea sale
    automáticamente

    For N=65 To 90

    Label1.caption = Chr ( N )

    Label1.RefreshN' Refresca la etiqueta

    X = 0

    Do While X < 1000' Bucle de
    temporización

    X = X + 1

    Loop

    Next N' Termina el bucle de
    temporización

    End Sub ' Esta línea sale
    automáticamente

    Hemos puesto nuestra primera piedra en Visual Basic.
    Este ejemplo es muy sencillo. Visual Basic es
    tan sencillo como este ejemplo.

    BASIC DE VISUAL BASIC
    (2)

    ___________________________

    Funciones de cadenas

    Se denomina CADENA a una sucesión de caracteres.
    Una cadena puede tener uno o varios caracteres
    alfanuméricos. Una cadena es también una
    sucesión de números.

    Ejemplo de cadenas:

    Curso de Visual Basic

    abcdefghijklmnopqrstuvwxyz1234567890

    123456789

    Hagamos una distinción entre una cadena que
    contenga números y un número. Un número
    tiene un valor, pero también tiene una presentación
    escrita. El valor es algo que estará en el ordenador como
    una sucesión de bits. Dependiendo de como lo hayamos
    declarado, tendrá mas o menos bits. Pero esa información no es un número legible
    por el usuario. Lo que sí es legible por el usuario es la
    representación en numeración decimal (u octal, o
    hexadecimal, o incluso en binario) de ese número. Esa
    representación del número en un determinado
    sistema de
    numeración es una cadena.

    Así, el número nueve, que en la memoria del
    ordenador será una sucesión de bits, el ordenador
    puede presentárnoslo como:

    9 En numeración decimal

    9 En numeración hexadecimal

    11 En numeración octal

    1001 En numeración binaria

    Esas formas de presentarnos el número son CADENAS
    de caracteres. El valor del número dentro del ordenador es
    un NUMERO.

    Para presentar un número en la pantalla, el
    ordenador debe convertirlo previamente a una cadena.

    Cuando introducimos un valor numérico por
    teclado o
    pantalla, el ordenador para hacer operaciones con
    él, debe transformarlo a un número.

    Estas consideraciones nos llevan a las dos primeras
    funciones con cadenas:

    Str (número) Convierte un
    número a una cadena en numeración
    decimal.

    Val (cadena numérica) Obtiene el
    valor (el número) correspondiente a esa
    cadena.

    Ejemplos

    Variablenumerica = Val (TextBox1.Text)

    Este ejemplo convierte la cadena de caracteres
    (numéricos) que hubiese en la caja de texto TextBox1
    en un número, y asocia este número a la variable
    Variablenumerica.

    Si el contenido de la caja de textos no fuesen
    caracteres numérico (abcd, por ejemplo),
    Variablenumerica tomaría el valor 0.

    Label1.Caption = Str
    (Variablenumerica)

    Este ejemplo pondría en la etiqueta Label1 los
    caracteres correspondientes al valor que tuviese la variable
    Variablenumerica .

    Nota para recordar: Siempre habrá que
    convertir un número a una cadena cuando queramos
    presentarlo en la pantalla. Siempre habrá que convertir a
    número la cadena de caracteres numéricos que
    hayamos introducido por teclado o por
    pantalla, cuando queramos operar con ese número. Un Label,
    cuando tiene que presentar un único número, no le
    pedirá que se lo convierta a cadena, pues VB hace
    automáticamente esa conversión. Sin embargo, cuando
    tiene que presentar un número, y además un texto en el
    mismo Label, VB no realizará automáticamente ese
    cambio, por lo
    que le dará un error. Le recomiendo que convierta los
    números a variables de cadena siempre que los quiera
    presentar en un Label o TextBox.

    Existe una función mas amplia que Str. Se
    trata de Cstr. Esta función no solamente transforma
    un número a una cadena, como hace Str, sino que
    convierte cualquier tipo de variable a una variable tipo String
    (cadena).

    Esta función transforma, por ejemplo, una
    variable tipo Booleana en una variable de cadena, devolviendo la
    cadena "Verdadero" si el valor de la variable booleana es True, y
    "Falso" si es False.

    Puede también transformar a una cadena de
    caracteres el valor de un CheckBox o de un OptionButton. En estos
    casos devuelve 0 y 1 para el CheckBox (Desactivado / Activado) y
    Verdadero ó Falso para el OptionButton (Activado /
    Desactivado)

    label1.Caption = CStr(booleana) Label1.Caption =
    Verdadero si booleana es true

    Label1.Caption = Falso si booleana es
    False

    Label2 = CStr(Check1.Value) Label2.Caption = 1
    si Check1 está activado

    Label2.Caption = 0 si Check1 está
    desactivado

    Label3 = CStr(Option1.Value) Label3.Caption =
    Verdadero si Check1 está activado

    Label3.Caption = Falso si Check1 está
    desactivado

    Si se aplica Cstr a una variable tipo Fecha/Hora
    devuelve la fecha / Hora en formato corto.

    Mas funciones de cadena:

    Left (cadena, n)

    Extrae los n primeros caracteres de una cadena,
    comenzando por la izquierda.

    Si cadena = Curso de Visual
    Basic (Para todos los ejemplos)

    Resultado = Left (cadena, 10) —-> Resultado
    = Curso de V

    Right (cadena, n) Extrae lo n últimos
    caracteres de la cadena

    Resultado = Right (cadena,
    10) —-> Resultado = sual Basic

    Mid (cadena, m, n) Extrae n caracteres de la
    cadena, siendo el primer carácter extraído el
    que ocupa el lugar m.

    (Vea Instrucción Mid mas abajo)

    Resultado = Mid (cadena, 3,
    10) —-> Resultado = rso de Vis

    LCase (cadena) Devuelve otra cadena igual,
    pero con todos los

    caracteres en minúsculas. (LCase = Lower
    Case)

    Resultado = Lcase (cadena) —-> Resultado =
    curso de visual basic

    UCase (cadena) Devuelve otra cadena igual,
    pero con todos los

    caracteres en mayúsculas. (UCase = Upper
    Case)

    Resultado = UCase (cadena) —-> Resultado =
    CURSO DE VISUAL BASIC

    Len (cadena) Devuelve la longitud de la
    cadena

    Resultado = Len (cadena) —-> Resultado =
    21

    LenB (Cadena) Devuelve el número de Bytes
    empleados para almacenar la

    cadena. Sorpréndase, es el doble que Len
    (Cadena)

    String (n, carácter) Devuelve una cadena
    de n caracteres como el indicado

    Resultado = String (8, "a") —-> Resultado
    = aaaaaaaa

    Resultado = String (8,
    Chr(65)) —-> Resultado = AAAAAAAA

    Resultado = String (8, 65) —-> Resultado =
    AAAAAAAA

    Space (n) Devuelve una cadena formada por n
    espacios.

    Resultado = "A" + Space (6)+
    "B" —-> Resultado = A B

    LTrim Elimina los posibles espacios que tenga
    una cadena por su izquierda.

    Rtrim Elimina los posibles espacios que tenga
    una cadena por su derecha.

    Trim Elimina los espacios que tenga una cadena,
    tanto por su izquierda como por su derecha. (No elimina los
    espacios

    centrales de la cadena)

    Estas tres funciones se emplean para quitar los posibles
    espacios que pueden resultar de una entrada de datos. Tienen
    especial importancia cuando se toman los datos de un archivo o
    base de datos,
    donde fueron introducidos por otro programa.

    No se pone ningún ejemplo de estas funciones,
    pues sería difícil verlo impreso.

    InStr (cadena, cadena1) Busca la
    cadena1 dentro de cadena y devuelve el
    número de orden dentro de cadena donde se
    encuentra la primera letra de cadena1

    Resultado = InStr (cadena,
    "sua") —-> Resultado = 12

    StrConvConvierte una cadena de caracteres en
    otra, según las instrucciones

    que le sigan. Puede sustituir a UCase o
    LCase si la instrucción es

    UpperCase o LowerCase respectivamente, o poner la
    primera letra de todas las palabras de la cadena en
    mayúsculas, si la instrucción es
    ProperCase.

    Resultado = StrConv (cadena, UpperCase) —->
    Resultado = CURSO DE VISUAL BASIC

    Resultado = StrConv (cadena, LowerCase) —->
    Resultado = curso de visual basic

    Resultado = StrConv (cadena, ProperCase) —->
    Resultado = Curso De Visual Basic

    Instrucción Mid

    Mid puede usarse también para cambiar el
    contenido de una cadena. Observe la sutileza entre Mid como
    Función de cadena y Mid como
    Instrucción.

    La Instrucción Mid reemplaza un número
    especificado de caracteres en una variable de cadena con
    caracteres de otra cadena.

    Sintaxis Mid(cadena1, inicio[, longitud]) =
    cadena2

    Resultado Mid (cadena, 7,2)="Sobre" —- >
    Resultado = Curso sobre Visual

    Basic

    FUNCIONES CON NUMEROS

    _________________________

    Visual Basic puede operar con números tal como lo
    haría cualquier persona. Conoce
    las 4 reglas, y puede utilizar paréntesis de la misma
    forma que los escribimos sobre el papel.

    Los operadores que utiliza para las operaciones
    básicas son:

    + Suma

    – Resta

    * Multiplicación

    / División

    División sin decimales

    Mod Resto de una división

    ^ Eleva a un exponente

    Ejemplos

    Resultado = 12 + 15 —-> Resultado = 27

    Resultado = 15 – 12 —-> Resultado = 3

    Resultado = 15 * 12 —-> Resultado = 180

    Resultado = 15 / 12 —-> Resultado =
    1.25

    Resultado = 15 12 —-> Resultado = 1

    Resultado = 15 Mod 12 —-> resultado = 3

    Resultado = 12 ^ 2 —-> Resultado = 144

    resultado = ( ( 4 * 3 ) / 2 ) ^ 2 —-> Resultado =
    36

    Estos operadores se denominan Operadores
    aritméticos.

    Existen otras operaciones que
    se pueden realizar con números: comparaciones. Los
    operadores que realizan comparaciones se denominan Operadores
    relacionales.
    El resultado de las operaciones realizadas con
    estos operadores solamente admiten dos resultados: True (Cierto)
    o False (Falso) Estos operadores son:

    = Igual que

    <> No igual que

    < Mayor que

    <= Mayor o igual que

    > Menor que

    => Igual o menor que

    Estos operadores se suelen utilizar en estructuras de
    programa donde se tome una decisión.

    El operador = puede usarse también para comparar
    cadenas o fechas.

    Operadores Lógicos

    Estos operadores sólo tienen sentido cuando
    hablemos de variables Booleanas, es decir, aquellas que solamente
    pueden tomar los valores
    cero y uno.

    Operador Función Devuelve True si Devuelve False
    si

    And Función AND A=True y B=True Cualquier
    otro caso

    OrFunción OR A=True o B=True A=False y
    B=False

    Xor Función XOR A=True y B=False A=True y
    B=True

    A=False y B=True A=False y B=False

    EqvF. Equivalente A=True y B=True A=True y
    B=False

    A=False y B=False A=False y B=True

    ImpImplicación A=True y B=True A=True y
    B=False

    A=False y B=True

    A=False y B=False

    Not Negación A=False A=True

    LikeIgualdad A=True A=False

    Otras Funciones con números

    CInt Parte entera Devuelve la parte entera de un
    número con decimales

    AbsValor Absoluto Devuelve el valor absoluto de
    un número

    SgnSigno Devuelve el signo de un
    número

    Sqr Raíz cuadrada Devuelve la raíz
    cuadrada de un número

    Exp Exponenciación Devuelve el
    número elevado al exponente indicado

    Log Logaritmo Devuelve el logaritmo natural de
    ese número

    Trigonométricas

    Sin Seno Devuelve el valor del seno de un
    ángulo (Expresado

    en radianes)

    Cos Coseno Devuelve el coseno de un
    ángulo (En radianes)

    Tan Tangente Devuelve la tangente de un
    ángulo

    Atn Arco Tang. Devuelve un arco cuya tangente
    sea el número

    (Angulo en radianes)

    Una función curiosa

    TimerTiempo acumulado Devuelve el tiempo (en
    segundos) que ha pasado desde las 12 de la
    noche.

    Generación de números
    aleatorios

    Randomize (Numero) Inicia el generador aleatorio
    tomando como dato de partida el Numero. Devuelve el resultado
    en una variable llamada Rnd.

    NOTA MUY IMPORTANTE.- Los números
    aleatorios generados de esta forma son siempre iguales, eso
    sí, dependiendo del número que se le introduzca
    como parámetro. Esta generación de números
    no produce números aleatorios pues como se dijo, dependen
    del numero que se meta como parámetro, y si este se
    repite, se repite la sucesión de números que nos
    crea el generador aleatorio.

    La forma de obtener números realmente aleatorios
    es introducir como parámetro un número que sea
    variable con el tiempo. Ese
    número no puede ser otro que el número timer visto
    antes. Y siempre con la precaución de que medie mas de un
    segundo entre dos instrucciones Randomize. La función toma
    entonces la forma:

    Randomize Timer

    La función Randomize devuelve una variable
    Rnd con un número comprendido entre 0 y 1 (Nunca
    será 0 ni 1) Leyendo el valor de la variable sucesivas
    veces, se puede obtener una sucesión de números
    aleatorios. No es necesario ejecutar la instrucción
    Randomize Timer cada vez que se quiera obtener un dato de
    la variable Rnd.

    Un ejemplo. Generador de números para la
    Lotería Primitiva

    Supongamos que tenemos un formulario con una etiqueta de
    nombre Label1, un botón de comando de nombre Command1.
    Cuando hagamos click sobre el botón de comando
    deberá generar un número comprendido entre el 1 y
    el 49. En el procedimiento click de Command1 pondremos el
    siguiente código:

    Private Sub Command1.click

    Randomize Timer

    A = Rnd

    A = Rnd * 100

    A = CInt(A)

    Do While A > 49

    A = A – 49

    Loop

    Do While A < 1

    A = A + 49

    Loop

    Label1.caption = A

    End Sub

    Realice este pequeño programa, con la
    instrucción Randomize Timer y sin ella.

    Funciones con fechas.

    Las fechas son cadenas especiales. Visual Basic sabe
    obtener y tratar la información relativa a la fecha y la hora.
    Dispone para ello de una declaración de variable: Date.
    Una variable declarada como date puede contener una fecha, una
    fecha y una hora o una hora solamente.

    Date Devuelve la fecha de hoy. Esta fecha la
    toma del reloj del ordenador.

    Time Devuelve la hora actual.

    Now Devuelve la fecha y hora actual.

    WeekDay Devuelve el día de la semana (En
    número, 1=Domingo, 2=Lunes,…)

    Day Obtiene el día, a partir de una fecha

    Month Obtiene el mes a partir de una
    fecha.

    Year Obtiene el año a partir de una
    fecha.

    Hour Obtiene la hora a partir de una
    hora

    Minute Obtiene el minuto a partir de una
    hora.

    Second Obtiene el segundo a partir de una
    hora.

    DateAddAñade un intervalo de tiempo a una
    fecha

    DateDiff Obtiene el intervalo de tiempo entre dos
    fechas

    DatePart Devuelve una parte de una fecha (semana,
    trimestre, etc.)

    DateSerial Compone una fecha a partir de
    parámetros relativos

    TimeSerial Compone una hora a partir de
    parámetros relativos.

    DateValue Devuelve una fecha a partir de un dato
    que se le parezca y VB pueda

    obtener de él una fecha válida

    Mediante estas instrucciones podemos obtener el dato
    necesario de una fecha u hora. Por ejemplo, para obtener el
    día de hoy solamente:

    Día = Day (Now)Día será un
    número

    El día de la semana lo
    obtendríamos

    Diasemana = WeekDay (Now) Diasemana será
    un número

    DateValue, una instrucción que le sacará
    mucho provecho

    Fecha = DateValue (120796)

    Fecha = DateValue (12 07 96) Fecha
    =12/07/96

    Función FORMAT

    Esta función permite presentar cadenas de
    numéricas o fechas de una determinada forma. Permite
    establecer el Formato de esa cadena.

    Si recurre a la ayuda de VB acerca de esta
    función se va a enterar muy poco de lo que puede dar de
    sí. La sintaxis que presenta es :

    Format(expresión[, formato[,
    primerdíadesemana[,
    primerasemanadelaño]]])

    Lo mejor que puede hacer con esta definición de
    la sintaxis de Format es olvidarla. No le aclara mucho lo que se
    puede hacer con Format. La función Format se usa para
    poner una fecha en un determinado formato. Con la
    expresión :

    FechadeHoy = Format (Now,
    "yyyy-mm-dd")

    la variable FechadeHoy tendrá el valor
    1998-05-21, que se refiere al día 21 de mayo de
    1998, según el formato recomendado por la norma ISO-8601 para
    la presentación de fechas. Si hubiésemos puesto la
    expresión FechadeHoy = Format (Now, "dd/mm/yy") ,
    la variable FechadeHoy contendría el valor 21/05/98
    referido al día citado.

    Las posibilidades de Format llegan también al
    campo de las cadenas numéricas. Por ejemplo la cifra
    123456 se transformará en las siguientes expresiones,
    según como empleemos la función Format

    Variable = Format(123456, "Currency") Variable = 123.456
    Pts

    Variable = Format(123456, "Standard") Variable =
    123.456,00

    Veamos ahora con un poco mas de conocimiento
    la sintaxis de Format

    Variable = Format (expresión[, formato[,
    firstdayofweek[, firstweekofyear]]])

    Donde

    expresión es una cadena o fecha
    válida

    formato es uno de los formatos predefinidos (Standard,
    Currency, etc. Vea mas abajo)

    firstdayofweek. Especifica el primer día de la
    semana. Puede tomar uno de estos valores o
    constantes :

    Constante Valor Descripción

    vbUseSystem 0 El especificado en el sistema
    operativo.

    VbSunday 1 Domingo (valor por defecto)

    vbMonday 2 Lunes

    vbTuesday 3 Martes

    vbWednesday 4 Miércoles

    vbThursday 5 Jueves

    vbFriday 6 Viernes

    vbSaturday 7 Sábado

    firstweekofyear Especifica cual es la primera semana del
    año. Puede tomar uno de los siguientes valores o
    constantes :

    Constante Valor Descripción

    vbUseSystem 0 Usa el valor del sistema
    operativo

    vbFirstJan1 1 La primera semana es la que contiene al
    día 1 de Enero(Valor

    por defecto

    vbFirstFourDays 2 La primera semana es la que contiene
    al menos, 4 días de ese

    año (Rec. ISO –
    8601)

    vbFirstFullWeek 3 La primera semana es la que tiene
    todos sus días en ese año

    No se complique la vida con el tema del primer
    día de la semana ni la primera semana del año. No
    lo usará con frecuencia. Centrémonos mas en el
    parámetro Formato. Puede tomar muchos valores.
    Veamos los principales. Primero para números

    Observe que usamos la expresión Variable
    =Format (1234567,"Formato") para todos los ejemplos de
    números.

    Para poner los números separados por
    millares :

    Variable = Format(1234567, "##,###,###") Variable
    = 1.234.567

    (Cada carácter # indica que ahí va un
    número. El separador debe ser una coma, no un punto,
    aunque esto depende del idioma que esté usando)

    Puede poner una de estas expresiones, eso si, siempre
    entre comillas dobles :

    General Number Muestra el
    número tal como lo tecleó

    Currency En formato de la moneda de su sistema
    operativo

    Fixed Sin separador de millar y dos decimales
    (1234567,00)

    Standard Con separador de millares y dos decimales
    (1.234.567,00)

    Percent Multiplica el número por cien y lo
    presenta cono

    porcentaje(123456700,00%)

    Scientific Usa notación científica
    (1,23E+06)

    .

    Para fechas (Observe que usamos el ejemplo Format(Now,
    "Formato") y Now = 21/07/98

    a las 22:16:00 y pico)

    General Date 21/07/98 22:16:00

    Long Date martes 21 de julio de 1998

    Medium Date 21-jul-98

    Short Date 21/07/98

    yyyy-mm-dd 1998-05-21

    yy-mm-dd 98-07-21

    Long Time 22:19:53

    Medium Time 10:20 PM

    Short Time 22:20

    hh :mm :ss 22 :21 :29

    hh :mm 22 :21

    Format dispone de mas opciones. Sería muy largo
    explicarlas aquí. Para mas información, en la WEB de Microsoft
    puede encontrar mas formatos posibles.

    MATRICES

    __________

    Cuando utilizamos varias variables que tienen un
    significado similar para nosotros, pero que son distintas (Por
    ejemplo, el nombre de los alumnos de una clase) podemos utilizar
    una matriz. Esta
    matriz
    está formada por tantos elementos como alumnos tenga la
    clase. El nombre asociado a cada uno de los elementos de la
    matriz puede
    ser:

    Alumno (n) Donde n es el número por orden de
    lista de ese alumno.

    Las matrices
    normalmente comienzan a numerar por el número 0. Este
    comienzo puede no ser el mas apropiado para la variable que
    estamos planteando, pues ningún alumno tiene el
    número de orden 0. Para hacer que una matriz
    comience a numerar por el 1 se debe definir mediante la
    instrucción:

    Option Base 1

    que debe colocarse al comienzo del módulo o
    formulario donde declaremos la matriz.

    Para declarar la matriz se hace como con todas las
    variables, especificando entre paréntesis el número
    de elementos que componen la matriz:

    Dim Alumno (25) as String

    Hemos declarado que la variable alumno es una cadena, y
    que hay 25 elementos en esa matriz.

    Una matriz también se puede declarar de la
    siguiente forma :

    Dim Alumno(1 To 25) as String

    Donde le decimos que la variable Alumno tiene 25
    elementos, que el primero tiene el índice 1 y el
    último tiene el índice 25.

    Pero imaginemos que queremos meter en la misma matriz el
    nombre, primer apellido y segundo apellido del alumno.
    Necesitaremos declarar una matriz de 25 por 3. Como todos los
    elementos serán cadenas de caracteres, podemos declararla
    de la siguiente forma:

    Dim Alumno (1 To 25, 1 To 3) As String

    De esta forma, el primer apellido del alumno que ocupa
    el puesto número 15 de la clase, será el
    elemento:

    Alumno (15, 2)

    Podemos definir matrices de
    dimensión superior a dos. Podemos llegar a un
    máximo de 60 dimensiones. Una matriz de 5 dimensiones se
    declararía:

    Dim Variable ( 1 To N, 1 To M, 1 To P, 1 To Q, 1 To
    R)

    entendiendo que hay N, M, P, Q y R elementos en cada una
    de las dimensiones respectivamente.

    Una variable ya declarada como una matriz puede
    redimensionarse a lo largo del programa mediante la
    instrucción ReDim

    ReDim Alumno (1To 25)

    Mediante esta instrucción, estamos
    ReDimensionando una matriz ya declarada. No se puede
    redimensionar una matriz inexistente.

    Mediante la declaración 1 To 25 le estamos
    diciendo que el primer elemento de la matriz es el 1,
    independientemente de lo que hayamos puesto en OPTION
    BASE.
    Si se redimensiona simplemente con el número de
    elementos :

    ReDim (25)

    le estamos diciendo que tiene 25 elementos, pero que el
    primero sea el 0 ó el 1 depende de haber puesto OPTION
    BASE 0
    u OPTION BASE 1.

    Una matriz puede redimensionarse cuantas veces se quiera
    a lo largo de la aplicación, pero esa redimensión
    no puede afectar al número de dimensiones de la matriz. Si
    redimensionamos la matriz perderá la información existente. Para evitar
    perder la información presente en la matriz, debe
    utilizar la sentencia ReDim Preserve.

    Si usa la palabra clave Preserve en matrices de
    dimensión superior a 1, va a encontrarse con
    comportamientos no esperados. Como podrá ver en la Ayuda
    de VB, usando ReDim Preserve sólo puede cambiar el
    tamaño de la última dimensión de matriz y no
    puede modificar en ningún momento el número de
    dimensiones. NO es cierto del todo. lo
    podrá hacer una sola vez.

    Respecto a cambiar el número de dimensiones, si
    ha declarado la matriz con unas dimensiones determinadas, ya no
    podrá cambiar las dimensiones ni con ReDim ni con
    ReDim Preserve. Le saldrá un error que dice que las
    dimensiones de la matriz ya han sido declaradas.

    Pero si ha declarado la matriz sin
    dimensiones :

    Dim MiMatriz()

    puede cambiar las dimensiones Dim MiMatriz (1 To 5, 1
    To 9)

    y volver a cambiarlas Dim MiMatriz (1 To 8, 1 To 15,
    1 To 6)

    Observe que no solamente la hemos cambiado dos veces de
    dimensiones (la primera a 2 y la segunda a 3), sino que
    también hemos cambiado el número de elementos en
    cada dimensión.

    Si hubiésemos utilizado ReDim Preserve
    solamente podríamos haber usado la primera de las dos
    líneas anteriores :

    ReDim Preserve MiMatriz (1 To 5, 1 To 9)

    pero ya no podríamos volver a cambiar el
    número de dimensiones con la segunda línea. Nos
    daría un error.

    Con ReDim podemos cambiar el número de
    elementos de cada dimensión cuantas veces queramos. Por
    ejemplo, podemos redimensionar MiMatriz de las siguiente
    forma :

    ReDim MiMatriz (1 To 5, 1 To 9)

    ReDim MiMatriz (1 To 15, 1 To 20)

    ReDim MiMatriz (1 To 25, 1 To 30)

    . . . . . . . . . . . . . . . . . . . . . . . . . .
    .

    Si hubiésemos empleado ReDim Preserve,
    podríamos cambiar los elementos de todas las dimensiones
    de la matriz una vez :

    ReDim Preserve (1 To 5, 1 To 9)

    a partir de ahora, solamente podemos cambiar los
    elementos de la última dimensión :

    ReDim Preserve (1 To 5, 1 To 20)

    ReDim Preserve (1 To 5, 1 To 30)

    es decir, no podremos hacer esto :

    ReDim Preserve (1 To 10, 1 To 30) donde se
    señala en negrita el error.

    Esto no causa ningún error en una matriz de una
    dimensión, ya que si la matriz tiene sólo una
    dimensión, puede cambiar el tamaño de esa
    dimensión porque es la única y la
    última.

    Cuando a lo largo de la aplicación se va
    redimensionando una matriz, podemos llegar la circunstancia de
    que, en un momento determinado, no sepamos las dimensiones de esa
    matriz.

    Para conocer el índice máximo y
    mínimo de una matriz se usan las funciones UBound y
    LBound.

    UBound devuelve el mayor subíndice
    disponible para la dimensión indicada de una
    matriz.

    Sintaxis UBound(nombredelamatriz[,
    dimensión])

    LBound devuelve el mayor subíndice
    disponible para la dimensión indicada de una
    matriz.

    Sintaxis LBound(nombredelamatriz[,
    dimensión])

    Ejemplo Tengamos una matriz llamada Mimatriz, de tres
    dimensiones. En un momento de la aplicación se
    ejecutó la siguiente instrucción
    válida :

    ReDim Mimatriz (1 To 100, 0 To 3, 5 To 20)

    En otro momento queremos tener el control de los
    índices de esa matriz, y queremos averiguar el
    índice menor y mayor de cada una de sus
    dimensiones :

    (IID1= Indice Inferior Dimensión 1, ISD 1 =
    Indice Superior Dimensión 1, etc. )

    IID 1= LBound (Mimatriz, 1) IID1 =
    1

    ISD1 = UBound (Mimatriz, 1) ISD1 =
    100

    IID 2= LBound (Mimatriz, 2) IID1 =
    0

    ISD2 = UBound (Mimatriz, 2) ISD1 = 3

    IID 1= LBound (Mimatriz, 3) IID1 =
    5

    ISD1 = UBound (Mimatriz, 3) ISD1 = 20

    VISUAL BASIC

    Tras esta pequeña introdución al lenguaje
    Basic ya estamos en disposición de encender el ordenador y
    comenzar a trabajar con Visual-Basic. Se supone que su PC tiene
    instalado el programa Visual basic,
    bien en su versión de 16 bits si dispone de Windows 3.xx o
    la de 32 bits si dispone ce Win95 ó Windows
    NT.

    Entre en el programa VB. Le aparecerá en pantalla
    algo similar a esto : (Para VB Vers. 4)

    Este es el comienzo del programa . Observe que en esta
    pantalla existen varias cosas. En la parte superior , la barra
    de título
    del programa Visual Basic, con
    el texto :

    Proyect1 – Microsoft
    Visual Basic
    (Diseño)

    Por debajo de esta barra de Título del VB,
    encontramos la barra de menú de VB, con las
    leyendas :

    Archivo
    Edición Ver Insertar Ejecutar Herramientas Complementos
    Ayuda

    Por debajo de esta barra de menú tenemos la
    barra de herramientas, donde podrá ver varios
    iconos, que cada uno representa un determinada operación
    que Vd. puede realizar. Estas operaciones está todas en la
    línea de menú, y puede acceder a ellas abriendo los
    menús desplegables que existen en cada una de las palabrea
    Archivo
    Edición Ver …… de esta línea de menú. El
    hecho de colocar las operaciones mas usuales en un icono en la
    barra de herramientas se hace para mayor comodidad del
    usuario.

    A la izquierda de la pantalla tiene una caja rectangular
    con tres columnas de iconos. Esa caja es la Caja de
    Herramientas
    (No la confunda con la barra de herramientas de
    la parte superior)

    Esta caja de herramientas es, salvando las distancias,
    lo mismo que una caja de herramientas real que pueda tener un
    mecánico para realizar su trabajo. En ella están
    los iconos que representan a los controles con los que Vd. va a
    desarrollar su aplicación VB. No están todos los
    que pueden estar, al igual que en una caja de herramientas de un
    mecánico no están todas las herramientas que puede
    usar. Están solamente las mas usuales. Si necesita alguna
    mas, puede cogerla de otra parte (barra de Menú,
    Herramientas, Controles personalizados) y agregarlos a esa caja
    de herramientas, al igual que lo haría un mecánico
    con una herramienta especial, que la metería en su caja
    sólo cuando va a realizar un trabajo determinado para el
    que la necesite.

    Posiblemente esta caja de herramientas no le aparezca
    tal y como la ve en estos apuntes. Eso depende si Ud. tiene la
    versión personal o la
    profesional, o si usa la versión de 16 ó 32 bits.
    Esa caja de herramientas puede personalizarla a su gusto. Para
    ello, deberá cargar un proyecto ya
    existente en los discos de distribución de Visual Basic,
    llamado AUTO32LD.VBP (versión 32 bits) ó
    AUTO16LD.VBP (Versión 16 bits) que se encontrará en
    el directorio donde haya cargado el programa Visual Basic.
    Este proyecto no tiene
    otra función que determinar las herramientas con las que
    quiere abrir el VB. Para introducir herramientas nuevas en la
    caja de herramientas, basta con desplegar el menú
    Herramientas de la barra de menú, e ir a
    Controles personalizados. Haciendo click en esta
    línea de controles personalizados, podemos seleccionar
    nuevos controles para añadir a la caja de herramientas,
    marcando la casilla que está a la izquierda del nombre del
    control que
    quiere introducir. Una vez seleccionados todos los nuevos
    controles, haga click en ACEPTAR, y podrá observar que
    esos nuevos controles ya se le han añadido a la caja de
    herramientas. Para que esos nuevos controles le aparezcan de
    entrada cuando inicia una sesión de VB, debe salir de
    Visual basic
    guardando los cambios. Vuelva a entrar y observará que ya
    le aparecen esos nuevos controles en la caja. No es prudente
    meter muchos controles en la caja. Ponga solamente los que
    necesite normalmente en sus aplicaciones. Ocupará menos
    memoria y
    tardará menos tiempo en cargar el programa VB.
    Además, cuando realice una aplicación y la
    distribuya una vez compilada, Visual Basic entregará en
    los disquetes de distribución las DLL’s u OCX’s
    correspondientes a todos los controles personalizados que Vd.
    tenga en la caja de herramientas, los necesite el programa o no
    los necesite. Esto le va a suponer que está cargando
    subprogramas inútiles en el ordenador destino de su
    aplicación. A la hora de compilar el programa (Crear
    archivo .EXE)
    quite todos los controles personalizados que no necesite su
    aplicación. (Sólo los controles personalizados. Los
    controles comunes – CommandButton, Label, TextBox, etc.-, no se
    pueden eliminar de la caja de herramientas)

    Para quitar controles de su caja de herramientas, debe
    proceder de forma análoga, cargando el programa
    AUTOxxLD.VBP, abriendo menú de herramientas, Controles
    personalizados, quitando la marca al cuadro
    situado en la parte izquierda del control a
    eliminar, y guardando el proyecto al
    salir.

    En el centro, y ocupando casi toda la pantalla, tenemos
    el Formulario. Este Formulario es la interface
    gráfica de su aplicación, sobre el que podrá
    añadir los controles que necesite. Lo veremos mas adelante
    con todo detalle.

    Observa dos ventanas, una denominada Ventana de
    Propiedades, donde puede ver las propiedades del formulario,
    Form1, y otra, denominada Ventana de Proyecto. Existe otra
    ventana, que no está en la figura anterior, la Ventana
    de Depuración
    . Por cada formulario y cada control que
    introduzca en el proyecto, le
    aparecerá otra ventana, denominada ventana de
    código.

    No se extrañe de que esta presentación
    gráfica del Visual Basic coincida con otros sistemas de
    desarrollo
    (Delphi, p.e.).
    La lógica
    de desarrollo de
    una aplicación en Windows ha llevado a varios fabricantes
    de software a
    utilizar un entorno gráfico similar (diríamos
    idéntico). A Visual basic le queda el orgullo de ser el
    primero en utilizarlo.

    Con lo descrito anteriormente ya tenemos, al menos,
    fijado el argot con el que expresarnos para comenzar a estudiar
    el VISUAL BASIC. Veamos con un poco mas detalle la Ventana de
    Código
    .

    Esta figura le muestra un
    Formulario con su ventana de código. Cada objeto
    gráfico
    de VB tiene su propia ventana de
    código. Así, si en este formulario
    hubiésemos introducido un Label y dos CommandButton, todos
    ellos tendrían su propia ventana de código. La
    ventana de código la podemos ver haciendo doble click
    sobre cualquier objeto de nuestro proyecto. En este
    caso hemos hecho doble click sobre el único objeto que
    teníamos : el formulario.

    Observe las dos cajas de la parte superior, uno con la
    inscripción Objeto : que en el momento que le sacamos
    la foto tenía Form, y el otro con la inscripción
    Proc : (procedimiento), que en el momento de la foto
    tenía Load. A estas cajas les denominamos Lista de
    Objetos
    y Lista de Procedimientos
    respectivamente.

    Haciendo click sobre la flecha de cada lista, se
    despliega un menú, en la lista de objetos se
    desplegará una lista con los nombres de cada objeto
    existente en ese momento dentro del formulario. Haciendo click
    sobre uno de los nombres, nos presentará la ventana de
    código de ese objeto. Todos los objetos gráficos
    (controles) existentes dentro de un formulario y el propio
    formulario aparecerán en la misma lista de
    objetos.

    Haciendo click sobre la flecha de la lista de
    procedimientos, se despliega la lista con todos los
    procedimientos posibles para ese objeto. Siempre saldrá
    uno. Si tenemos escrito código en uno de los
    procedimientos, saldrá por defecto ese procedimiento para
    el cual hemos escrito el código. Si no hay código
    en ninguno de los procedimientos, saldrá el que tenga por
    defecto cada objeto.

    Solamente nos queda por decir, para cerrar este
    capítulo, que es un procedimiento.

    Para ello vamos a explicar lo que es un evento. Un
    Evento es algo que le puede ocurrir a un objeto. En una
    internase gráfica, lo que le puede ocurrir a un objeto es
    que se le haga click, doble click, que se pase el cursor del
    ratón por encima, etc. Este es el Evento. El
    Procedimiento es la respuesta por parte de ese objeto, al
    evento que le está sucediendo.

    Esa respuesta, esa forma de Proceder del
    objeto al evento que le está sucediendo, debemos
    programarla según nuestras necesidades, es decir, debemos
    escribir el código que necesite nuestra aplicación
    como respuesta al evento que acaba de ocurrir. Posiblemente, no
    queramos ninguna respuesta a muchos de los eventos que
    pueden acaecer a un objeto. Cada objeto tiene muchos eventos y
    solamente queremos aprovechar los que nos interesan. Para que un
    evento no produzca ningún efecto, basta con dejar sin
    código el procedimiento correspondiente a ese evento. En
    los eventos que queramos que realice alguna operación, le
    escribiremos en su procedimiento el código necesario para
    que esa operación se realice. Sin darnos cuenta, hemos
    comenzado a escribir el código de la
    aplicación.

    Observará que el primer elemento del menú
    desplegable de la lista de objetos se denomina General.
    Este no es en realidad ningún objeto, sino un apartado
    existente en cada formulario, que, al desplegar su lista de
    procedimientos tiene la sección de
    declaraciones, donde debemos declarar las variables que
    queremos que afecten a todo el formulario y sus controles, y
    tendrá además, los nombres de todos los
    procedimientos que introduzcamos (véase un poco mas
    adelante). En este menú desplegable de la lista de
    procedimientos del General verá con frecuencia cosas que
    Vd. no puso allí. Cosas tales como Command1_click, y en la
    ventana un determinado código. Esto ocurre cuando se borra
    algún control que tenía escrito código en
    alguno de sus procedimientos. Visual Basic sabe lo mucho que
    cuesta escribir el código asociado a un control. Si
    borramos un control de nuestro formulario accidentalmente,
    después de haber introducido todo el código
    asociado a él, Visual Basic nos sorprende con que ese
    código no lo tira inmediatamente, sino que lo reserva como
    un procedimiento en ese apartado General del formulario. Si en
    realidad queríamos borrar el control y todo su
    código, debemos quitarlo de ese apartado General de
    nuestro formulario, pues en realidad, si no lo queremos, no
    hará otra cosa que estorbar. Para quitarlo basta con
    borrar todo el código que aparece en la ventana de
    código cuando hacemos click sobre el nombre del control
    eliminado. Deberemos borrar todo el código, incluida la
    cabecera donde figura el nombre del control eliminado, y la parte
    final, que siempre termina con EndSub.

    El primer estorbo lo observará si crea otro
    control con el mismo nombre, cosa fácil ya que VB da un
    nombre por defecto a cada control (Command1, Command2….). El
    código asociado al control eliminado pasará
    automáticamente al nuevo control con el mismo
    nombre.

    Una aplicación puede tener todo su código
    escrito en los sucesivos procedimientos del formulario y de los
    controles que tenga ese formulario.

    Puede ocurrir que un determinado evento no esté
    entre los posibles eventos de los controles de nuestra
    aplicación. Piense por ejemplo, el evento de que la
    variable A sea igual a la variable B. No existe en ninguno de los
    controles ese procedimiento. No se preocupe, puede crear un
    procedimiento que se ejecute cuando su programa lo decida.
    Podemos añadir cuantos procedimientos queramos. Estos
    procedimientos se añaden al formulario, y deberán
    definirse por un nombre que Vd. debe elegir. Para que se ejecuten
    las instrucciones (código) incluido en ese procedimiento,
    basta simplemente con nombrarlo por ese nombre.

    Para insertar un procedimiento debe ir a la barra de
    menú, hacer click sobre Insertar, y en el menú que
    le desplegará, volver a hacer click sobre Procedimiento.
    VB le presentará un cuadro donde le pedirá el
    nombre, si quiere que sea un procedimiento, una función o
    una propiedad. A
    lo largo del curso irá viendo que es cada cosa.

    Escribiendo el código en los sucesivos
    procedimientos, bien en los propios de cada objeto, bien en los
    procedimientos que vayamos creando, es posible completar la
    aplicación. Pero en una aplicación larga esta forma
    de escribir el código no sería la mas adecuada. Es
    mas, posiblemente sería demasiado engorroso escribirla de
    esta forma, y muy probablemente deberíamos escribir el
    mismo código para varios procedimientos, lo que
    alargaría inútilmente el programa y el tiempo de
    desarrollo.

    Para disponer de un sitio donde escribir parte (o la
    mayor parte) de su programa, puede introducir uno o varios
    módulos. Expliquemos lo que es un
    módulo.

    Un Módulo es una parte del programa donde
    solamente puede escribir código. Es igual que un
    formulario, sin interface gráfica. Un profesor de Visual
    Basic lo expresaba diciendo que un Módulo es un Formulario
    sin cara. En un módulo pueden existir procedimientos al
    igual que en los formularios, pero
    como un módulo no tiene interface gráfica, esos
    procedimientos debe introducirlos el programador tal y como
    explicamos un poco mas atrás. El módulo tiene su
    propia ventana de código, al igual que un formulario, con
    un objeto único, el apartado General. Aquí
    también tenemos la sección de declaraciones, al
    igual que los formularios. En
    esta sección de declaraciones se comporta de manera
    similar a la de los formularios, pero
    permite algo que no nos permite la sección de
    declaraciones de un formulario : Declarar variables que se
    pueden utilizar en todo el programa. Esto ya lo ha visto mas
    atrás, con las sentencia de declaración
    Global y Public.

    Los módulos se emplean para la declaración
    de variables globales, y para escribir el código de la
    aplicación que sea común a varios formularios. Esto
    nos evita tener que repetir código inútilmente. Ese
    código común se escribirá en un
    procedimiento que previamente habremos insertado en este
    módulo, y lo citaremos por su nombre desde cualquier parte
    del programa.

    ¿Cual es el nombre de un procedimiento existente
    dentro de un módulo ? Depende. Si estamos ejecutando
    código escrito en otro procedimiento dentro del mismo
    módulo, es decir, si estamos dentro de ese mismo
    módulo, basta con citarlo por su nombre : p.e., si en
    el MóduloA tenemos un procedimiento llamado
    Procedimiento1, y queremos llamarle desde una línea de
    código dentro de ese mismo módulo, basta con
    referirse a él con :

    Procedimiento1

    Si la línea de código donde nos vamos a
    referir a él está fuera de MóduloA,
    deberemos referirnos a ese procedimiento con :

    MóduloA.Procedimiento1

    Lo mismo podemos decir para cualquier procedimiento
    insertado en un formulario. Desde dentro del formulario basta con
    referirse a él citándolo por su nombre. Desde fuera
    de ese formulario deberemos citarle como :

    Formulariox.Procedimientoy

    donde damos por hecho que Formulariox es el nombre del
    formulario que lo contiene, y Procedimientoy es el nombre del
    procedimiento.

    Fíjese en el punto usado como separador entre el
    nombre del formulario y el nombre del procedimiento. VB usa como
    separador un punto. Usa el separador para separar el nombre de un
    control y una de sus propiedades (Label1.Caption), para separar
    el nombre del formulario del nombre de uno de sus controles
    (Formulario1.label1.caption) Se irá familiarizando con la
    terminología VB según vayamos avanzando en el
    curso.

    Funciones

    Al igual que introducimos Procedimientos, podemos
    introducir Funciones en nuestra aplicación. Una
    Función es un Procedimiento al que le pasamos uno o varios
    parámetros. (O Ninguno) Verá los Procedimientos y
    funciones mas adelante (Cap. 15). Al igual que los
    Procedimientos, pueden ser públicas (se verán en
    toda la aplicación) o privadas (se verán solamente
    en el formulario donde estén.

    Main

    Merece la pena pararse un poco para estudiar el
    Procedimiento Main. Para verlo con mas detalle,
    comentaremos como comienza a trabajar una aplicación
    realizada en Visual Basic.

    Imaginemos una aplicación que tiene 3
    Formularios. En cada uno de ellos tiene código.
    Logicamente la aplicación tendrá que presentar uno
    de ellos en primer lugar. Deberemos decirle a Visual Basic cual
    es el formulario inicial, y será ese por el que empiece.
    En ese formulario dispondremos el código necesario para
    que la aplicación se ejecute en el orden
    deseado.

    Si hacemos click en la Barra de Menú de Visual
    Basic, en Herramientas | Opciones obtendremos el siguiente
    cuadro de diálogo :

    Verá que tiene 4 pestañas, y actualmente
    tiene abierta la pestaña correspondiente a
    Proyecto, y tiene desplegada una lista donde nos pide el
    Formulario Inicial. En esa lista figura también la
    expresión Sub Main. Si ponemos como formulario
    inicial uno de los formularios, la aplicación
    comenzará por ese formulario. Si en uno de los
    Módulos existentes en el proyecto, ponemos un
    procedimiento llamado Main, podemos comenzar la
    ejecución de la aplicación justamente por ese
    procedimiento. En ese procedimiento pondremos el código
    necesario para que, posteriormente, se muestre uno de los
    formularios. Esto es muy practico cuando queremos hacer una
    función previa a mostrar cualquier formulario (abrir una
    base de datos,
    por ejemplo). Para comenzar la aplicación por Main
    se elige esa opción en la lista Formulario
    Inicial.

    ¡ Recuerde que Main debe estar en un
    Módulo !

    El cuadro de diálogo anterior sirve además
    para otras cosas. Entre ellas poner el nombre del proyecto
    (nombre que no aparecerá por ninguna parte, solo en los
    datos internos de la aplicación) y su
    descripción.

    En otra pestaña podemos configurar varias
    prestaciones
    del entorno de trabajo :

    Guardar la aplicación antes de ejecutar.
    Esta prestación nos va a evitar muchos disgustos. Es muy
    práctico guardar la aplicación antes de ejecutarla,
    pues de esta forma evitamos que, si nuestra aplicación
    tiene un error tal que hagamos colgarse a Windows, siempre
    tendremos la aplicación metida en el disco duro.
    Pero también es una pequeña pesadez tener que
    esperar a que se guarde cada vez que la ejecutamos.

    Si tenemos la activada la casilla Declaración
    de variables requerida
    nos pondrá
    automáticamente Option Explicit en el
    encabezamiento de todas las secciones de declaraciones de la
    aplicación.

    Podemos elegir también las ventanas que queremos
    que estén siempre visibles, y que verifique
    automáticamente la sintaxis de una instrucción en
    el momento de escribirla.

    La pestaña de Editor nos permite fundamentalmente
    2 cosas :

    Ver solamente el código correspondiente al
    procedimiento que estamos escribiendo ó Ver el
    código del Módulo (o Formulario) completo. En este
    último caso es un poco mas difícil de manejar la
    ventana de código, sobre todo si el programador no
    está muy habituado a ello. Le presenta procedimiento tras
    procedimiento, separados por una línea. Para seleccionar
    una u otra opción hay que seleccionar o deseleccionar la
    casilla Ver módulo completo.

    Cambiar el color de la letra
    y del fondo del código, según el tipo que sea
    (código, comentario, error devuelto, etc.). Los alumnos
    mas aventajados y con ganas de marear al profesor y, lo que es
    peor, a sus compañeros, conocen la forma de poner como
    invisible una parte del texto del código. Si
    observa comportamientos raros en el texto donde escribe el
    código, revise el cuadro de Colores de
    Código
    .

    Guía de Visual Basic: – Segunda ParteTercera ParteBajar
    Trabajo

    Partes: 1, 2, 3

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter