Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad De Ingeniería
Ingeniería Civil
Lenguajes De Programación
Elaborado por:
1
INDICE
Fórmulas Excel .............................................................................................................................. 4
¿Qué es una función en Excel? ....................................................................................................... 4
Partes de una formula en Excel. ...................................................................................................... 4
Constantes o texto. ............................................................................................................... 4
Referencias de celda. ........................................................................................................... 4
Operadores. .......................................................................................................................... 5
Funciones de Excel. ............................................................................................................. 5
Categorías de Excel......................................................................................................................... 5
Funciones por categorías................................................................................................................. 5
Categoría de búsqueda y referencia ..................................................................................... 5
Categoría de cubo ................................................................................................................ 6
Categorías de estadística ...................................................................................................... 6
Categoría de matemáticas y trigonométricas ....................................................................... 7
Categoría de fecha y hora .................................................................................................... 7
Categoría de base de datos. .................................................................................................. 8
Categoría financieras ........................................................................................................... 9
Categoría de texto de Excel. ................................................................................................ 9
Función de lógica ............................................................................................................... 10
Control de errores ......................................................................................................................... 10
Tipos de errores............................................................................................................................. 11
Error #¿NOMBRE? ........................................................................................................... 11
Error #¡REF! ...................................................................................................................... 12
Error #¡DIV/0! ................................................................................................................... 12
Error #¡VALOR! ................................................................................................................ 13
Error #¡NUM! .................................................................................................................... 13
Error #¡NULO! .................................................................................................................. 14
Error #N/A ......................................................................................................................... 14
Lógica de programación ............................................................................................................. 16
Estructuras de control de selección ............................................................................................... 16
Estructura de selección simple: if ...................................................................................... 16
Estructura de selección doble: if-else ................................................................................ 17
Estructura de selección múltiple: case o switch ................................................................. 19
2
Ejemplos de estructuras de selección ................................................................................. 20
Estructuras de control iterativas .................................................................................................... 24
Repetir ................................................................................................................................ 24
Bucles o ciclos ................................................................................................................... 25
Estructura iterativa Para… FinPara (for… next… end for): .............................................. 25
Visual Basic.................................................................................................................................. 27
¿Qué son: objetos, propiedades, métodos y colecciones?.................................................. 27
Objetos y clases en Visual Basic ....................................................................................... 27
Relación jerárquica ............................................................................................................ 28
¿Qué son objetos y colecciones?........................................................................................ 28
¿Qué es una propiedad? ..................................................................................................... 28
¿Qué es un método? ........................................................................................................... 29
Devolución de un objeto .................................................................................................... 30
Tipos de datos VBA ........................................................................................................... 33
¿Que son variables y constantes? ....................................................................................... 35
¿Qué son: arreglos (vectores y matrices)? ......................................................................... 37
Declarar e inicializar un array ............................................................................................ 38
Literales de arrays (o matrices) .......................................................................................... 38
¿Qué son procedimiento y funciones? ............................................................................... 39
Funciones (function) .......................................................................................................... 41
Procedimientos ................................................................................................................... 42
Bibliografía ................................................................................................................................... 45
3
Fórmulas Excel
El tipo de argumento que utiliza una función es específico de esa función. Así, los argumentos
pueden ser números, texto, valores lógicos como verdadero o falso, matrices, valores de error como
#N/A o referencias de celda. Un argumento puede ser una constante, una fórmula o incluso otra
función.
4
Operadores. Los operadores utilizados en Excel son los mismos operadores matemáticos
que conocemos como el símbolo + para la suma o el símbolo * para la multiplicación.
Funciones de Excel. Dentro de las fórmulas de Excel podemos utilizar funciones de Excel.
Un ejemplo de una función de Excel es la función SUMA la cual podemos incluir como
parte de una fórmula
Categorías de Excel
Las categorías en Excel son agrupamientos de funciones que se relacionan entre sí, estas pueden
relacionarse por su semejanza o por su utilidad para el usuario.
Se encuentra dividida en una ventana donde están agrupadas las funciones por categorías.
Las funciones de búsqueda y referencia en Excel nos permiten encontrar valores dentro de
nuestra hoja de acuerdo a los criterios establecidos en la búsqueda. También nos ayudan a
obtener información de referencia de las celdas.
1. Función FILA.
5
2. Función FILAS
3. Función COLUMNA.
4. Función COLUMNAS.
5. Función ÁREAS
6. Función BUSCARH
7. Función COINCIDIR
8. Función HIPERVINCULO
9. Función INDICE
10. Función DIRECCION
Categoría de cubo
Las funciones de cubo en Excel nos ayudan a obtener información de un cubo OLAP de
esta manera podemos combinar el potencial de las funciones de Excel y su motor de cálculo
junto con los beneficios de un repositorio de datos multi-dimensional.
1. Función CONJUNTOCUBO
2. Función MIEMBRO CUBO
3. Función MIEMBROKPICUBO
4. Función MIEMBRORANGOCUBO
5. Función PROPIEDADMIEMBROCUBO
6. Función RECUENTOCOJUNTOCUBO
7. Función VALORCUBO
Categorías de estadística
6
4. Función CONTAR.BLANCO
5. Función CONTAR.SI.CONJUNTO
6. Función CRECIMIENTO
7. Función FI
8. Función ESTIMACION.LINEAL
9. Función ESTIMACION.LOGARITMICA
10. Función MEDIA.GEOM
Las funciones matemáticas de Excel son utilizadas para ejecutar varias operaciones
aritméticas como la suma y el producto de dos números. Las funciones trigonométricas de
Excel permitirán obtener el seno, coseno y tangente de un ángulo especificado.
1. Función ABS
2. Función COS
3. Función COSH
4. Función COMBINA
5. Función COCIENTE
6. Función ENTERO
7. Función LOG10
8. Función POTENCIA
9. Función REDONDEAR
10. Función SUMA
Estas funciones permiten hacer cálculos y manipular los datos que son de tipo fecha y hora.
Puede obtener la fecha actual, la hora actual. Está en condiciones de establecer el número
de días que hay entre dos fechas.
1. Función AHORA
2. Función AÑO
7
3. Función DIA.LAB
4. Función DIAS360
5. Función HORA
6. Función FIN.MES
7. Función HORA.NUMERO
8. Función HOY
9. Función MINUTO
10. Función MES
Las funciones de base de datos en Excel facilitan nuestro trabajo con información que está
organizada como una bases de datos, es decir, que se encuentra en un rango de celdas donde
la primera fila tiene los títulos de cada columna. Estas fuciones nos permiten contar, sumar,
multiplicar los valores de una columna que cumplen con los criterios especificados e
inclusive podremos extraer un registro que cumpla con ciertas condiciones.
1. Función BDMAX
2. Función BDCONTAR
3. Función BDCONTARA
4. Función BDMIN
5. Función BDPRODUCTO
6. Función BDSUMA
7. Función BDVARP
8. Función BDEXTRAER
9. Función BDDESVEST
10. Función BDPROMEDIO
8
Categoría financieras
Excel es una de las herramientas más potentes para trabajar con información y cálculos
financieros, ofrece una amplia gama de funciones prediseñadas para crearte tu propia "caja
de ahorros en casa".
1. Función DB
2. Función DDB
3. Función DVS
4. Función MONEDA.DEC
5. Función NPER
6. Función P.DURACION
7. Función PAGO
8. Función PAGOPRIN
9. Función PRECIO
10. Función TIRM
Las funciones de texto en Excel permiten concatenar cadenas de caracteres, remover los
espacios en blanco, reemplazar ciertos caracteres por otros y muchas cosas más que te
permitirán manipular las cadenas de texto para obtener los resultados deseados.
1. Función CONCATENAR
2. Función CARACTER
3. Función DECIMAL
4. Función ENCONTRAR
5. Función ESPACIOS
6. Función T
7. Función UNICAR
8. Función UNICODE
9. Función VALOR
10. Función VALOR.NUMERO
9
Función de lógica
Control de errores
Los errores en Excel son generalmente consecuencia de haber introducido algún dato de manera
incorrecta o de utilizar inapropiadamente alguna fórmula. Excel detecta los errores y los clasifica
de manera que se nos facilite su resolución
Es conveniente saber que para corregir el error puede que sea necesario modificar la fórmula
misma o alguna fórmula o valor de otras celdas o rangos a las que está haciendo referencia.
En Excel existen siete tipos de errorres y un "pseudoerror" por así llamarlo, además de unos
pequeños triangulos verdes que aparecen a veces en la esquina superior izquierda de la celda
(como ves en la imagen), y que Excel utiliza para advertirnos de algún "posible" problema.
10
Ilustración 3 Errores en Excel
Tipos de errores
Error #¿NOMBRE?
El tipo de error #¿NOMBRE? se genera cuando una celda hace referencia a una función
que no existe. Por ejemplo, si introducimos la fórmula =FORMATOFINAL() obtendremos
este tipo de error porque es una función inexistente.
Cuando veas desplegado el error #¿NOMBRE? debes asegurarte de que has escrito
correctamente el nombre de la función. Y si estás acostumbrado a utilizar el nombre de las
funciones en inglés, pero te encuentras utilizando una versión de Excel en español, debes
utilizar su equivalente en español o de lo contrario obtendrás este tipo de error.
11
Ilustración 4 Error Nombre
Error #¡REF!
Cuando una celda intenta hacer referencia a otra celda que no puede ser localizada porque
tal vez fue borrada o sobrescrita, entonces obtendremos un error del tipo #¡REF!.
Si obtienes este tipo de error debes revisar que la función no esté haciendo referencia a
alguna celda que fue eliminada. Este tipo de error es muy común cuando eliminamos filas
o columnas que contienen datos que estaban relacionados a una fórmula y al desaparecer
se ocasiona que dichas fórmulas muestren el error #¡REF!
Error #¡DIV/0!
Cuando Excel detecta que se ha hecho una división entre cero muestra el error #¡DIV/0!
Para resolver este error copia el denominador de la división a otra celda e investiga lo que
está causando que sea cero.
12
Ilustración 6 Error DIV
Error #¡VALOR!
El error #¡VALOR! sucede cuando proporcionamos un tipo de dato diferente al que espera
una función. Por ejemplo, si introducimos la siguiente función =SUMA(1, “a”)
obtendremos el error #¡VALOR! porque la función SUMA espera argumentos del tipo
número pero hemos proporcionado un carácter.
Para resolver este error debes verificar que has proporcionado los argumentos del tipo
adecuado tal como los espera la función ya sean del tipo texto o número. Tal vez tengas
que consultar la definición de la función para asegurarte de que estás utilizando el tipo de
datos adecuado.
Error #¡NUM!
El error #¡NUM! es el resultado de una operación en Excel que ha sobrepasado sus límites
y por lo tanto no puede ser desplegado. Por ejemplo, la fórmula =POTENCIA(1000, 1000)
resulta en un número tan grande que Excel muestra el error #¡NUM!
13
Ilustración 8 Error #¡NUM!
Error #¡NULO!
Este error se corrige revisando que has especificado correctamente los rangos dentro de la
fórmula.
Error #N/A
Este tipo de error indica que el valor que estamos intentando encontrar no existe. Por esta
razón el error #N/A es muy común cuando utilizamos funciones de búsqueda como
14
BUSCARV o BUSCARH. Cuando la función BUSCARV no encuentra el valor que
estamos buscando, regresa el error de tipo #N/A
15
Lógica de programación
En una estructura de selección/decisión, el algoritmo al ser ejecutado toma una decisión, ejecutar
o no ciertas instrucciones si se cumplen o no ciertas condiciones. Las condiciones devuelven un
valor, verdadero o falso, determinado así la secuencia a seguir.
16
asignado 19 es mayor a 17, en cambio, si el valor asignado a la variable edad fuera menor
a 18, no mostraría ningún resultado.
La sentencia if elige entre varias alternativas en base al valor de una o más expresiones
lógicas. Las formas más sencillas de esta sentencia, que se corresponden con las vistas en
el pseudo-lenguaje de Elementos de Programación SI-ENTONCES-ENOTROCASO, son
la sentencia de selección simple y la sentencia de selección doble.
La estructura de selección doble if...else (si…sino) evalúa una condición lógica y en caso
que resulte verdadera efectúa la acción acciona; de lo contrario, efectúa la acción acciona.
Tanto acción a como acción b pueden ser acciones simples (una sola acción) o acciones
compuestas (un bloque de acciones).
hay una cadena o “cascada” de decisiones. La primera es una instrucción IF y cada una de
las decisiones sucesivas es un ELSEIF. Siguiendo la cadena hacia abajo, la primera
condición que resulte verdadera ocasionará una desviación a su correspondiente bloque de
17
código, seguida por la salida de la estructura. Al final de la cadena de condiciones, si todas
las condiciones resultaron falsas, se puede adicionar un bloque ELSE opcional.
Las estructuras selectivas dobles están compuestas únicamente de una sola condición, si es
verdadera ejecutara la acción o acciones y si la condición es falsa ejecutara las acciones
para la condición falsa. Esta estructura selectiva solo se debe utilizar únicamente cuando
existen dos condiciones, si hubieran mas de dos condiciones se puede utilizar varias
selectivas simples o una selectiva múltiple.
if (condición)
else
acción (si la condición entre paréntesis es falsa se ejecutara la acción o acciones, porque,
puede estar conformado por varias lineas)
end
18
Ejemplo:
else
end
19
elsif (condición)
acción (si la condición entre paréntesis es verdadera se ejecutará la acción o acciones,
porque, puede estar conformado por varias líneas)
end
Ejemplo:
Siguiendo con el ejemplo anterior asignaremos el mismo valor a la variable edad
edad = 19 # asignamos un valor a la variable edad
if (edad > 17)
puts “Es mayor de edad”
elsif (edad < 18)
puts “Es menor de edad”
end
Estructura IF
Una tienda de ropa da un descuento del 10% si compra menos de 10 artículos, elabore un
algoritmo donde me permita conocer si tiene el descuento por su compra.
Ilustración 13 Pseudocódigo
20
Ilustración 14 Diagrama de flujo
Estructura IF-ELSE
Realizar un algoritmo para realizar las 4 operaciones básicas.
21
Ilustración 16 Diagrama de flujo
22
Estructura CASE
Diseñar un algoritmo que me permita evaluar un número y que me diga que día de la semana es
el número
Ilustración 17 Pseudocódigo
23
Estructuras de control iterativas
La palabra iteración significa repetición, reiteración; por tanto, en este apartado vamos a estudiar
las estructuras que implican repetir o iterar un fragmento de código y las sentencias que se definen
en un lenguaje. Aunque aún no hayamos hablado de este tipo de estructuras, su necesidad resulta
casi evidente en múltiples algoritmos.
Repetir
Es una estructura de control que permite repetir varias veces un bloque de instrucciones hasta
que alguna condición lógica sea verdadera. La condición se verifica al final del ciclo por lo
que
el bloque de instrucciones es ejecutado al menos una vez. Usaremos la siguiente notación:
repeat
...
until <expresión lógica>
La representación gráfica a través de un diagrama de flujo es la siguiente:
Ilustración 19 Repetir
24
Bucles o ciclos
Un bucle, lazo, ciclo o loop (en inglés) es un segmento de algoritmo o programa (una secuencia
de instrucciones) que se repiten un determinado número de veces mientras se cumple una
determinada condición, en otras palabras, un bucle o ciclo es un conjunto de instrucciones que
se repiten mientras una condición es verdadera o existe.
Para que un bucle no se repita indefinidamente debe tener una condición de parada o de fin.
Esta condición de parada o de fin se verifica cada vez que se hace una iteración. El ciclo o loop
llega a su fin cuando la condición de parada se hace verdadera.
Al igual que las estructuras de selección simple o compuesta (los bloques si – entonces– sino
– fsi), en un algoritmo pueden utilizarse varios ciclos. Estos ciclos pueden ser independientes
(una a continuación de otro) o anidados (ciclos dentro de ciclos).
Es una estructura de control iterativa que permite ejecutar un bloque de instrucciones 0 o más
veces, mientras que cierta condición lógica sea verdadera. Usaremos la notación: While do ...
EndWhile Nótese que a diferencia del repetir, la condición es evaluada al comienzo del ciclo
y la ejecución del ciclo se detiene cuando la condición deja de ser verdadera.
Es una estructura iterativa que es controlada por una variable (llamada también variable
índice), la cual se incrementa o decremento hasta llegar a un valor límite o valor final que
representa la condición de parada.
La estructura Para comienzan con un valor inicial de la variable índice, las acciones
especificadas para el ciclo se ejecutan un número determinado de veces, a menos, que el valor
inicial de la variable índice sea mayor que el valor límite que se quiere alcanzar.
25
Se recomienda usarlo: la estructura Para es recomendada cuando se conoce el número de veces
que se deben ejecutar las instrucciones del ciclo, es decir, en los casos en que el número de
iteraciones es fijo y conocido.
26
Visual Basic
Visual basic. Constituye un IDE (entorno de desarrollo integrado, o, en inglés, Integrated
Development Enviroment) que ha sido empaquetado como un Programa de aplicación; es decir,
consiste en un editor de código (programa donde se escribe el código fuente), un depurador
(programa que corrige errores en el código fuente para que pueda ser bien compilado), un
compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de
interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código para
la parte gráfica del Programa, sino que se puede hacer de forma visual).
Con Visual Basic se pueden desarrollar aplicaciones para Windows más rápidamente. Los errores
de Programación no se generan tan frecuentemente y, si lo hacen, son más sencillos de depurar.
Además, incluye dos conceptos importantes:
Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un
objeto puede ser una porción de una aplicación, como un control o un formulario. Una
aplicación entera también puede ser un objeto.
27
Cuando se crea una aplicación en Visual Basic, se trabaja constantemente con objetos. Se
pueden usar los objetos proporcionados por Visual Basic, como controles, formularios y
objetos de acceso a datos. También se pueden usar los objetos de otras aplicaciones en la
aplicación de Visual Basic. Incluso pueden crearse objetos propios y agregarles propiedades y
métodos adicionales. Los objetos actúan como bloques de creación prefabricados para
programas: permiten escribir una porción de código y utilizarla una y otra vez.
Relación jerárquica
Cuando las clases se derivan de las clases más fundamentales, se dice que tienen una
relación jerárquica. Las jerarquías de clases son útiles cuando se describen elementos que
constituyen un subtipo de una clase más general. En el ejemplo siguiente, suponga que
desea definir un tipo especial de Button que se comporta como una clase Button normal
pero también expone un método que invierte los colores de primer plano y de fondo.
Los objetos son la base de Microsoft Visual Basic; casi todo lo que se hace en Visual Basic implica
la modificación de objetos. Todos los elementos de Microsoft Word (como documentos, tablas,
párrafos, marcadores y campos) se pueden representar con objetos de Visual Basic.
28
así como si está activado el control de cambios. Para cambiar las características de un objeto, se
cambian los valores de sus propiedades.
Para establecer el valor de una propiedad, detrás de la referencia a un objeto escriba un punto, el
nombre de la propiedad, un signo igual y el nuevo valor de la propiedad. En el siguiente ejemplo,
se activa el control de cambios en el documento "Sales.doc".
Sub TrackChanges()
Documents("Sales.doc").TrackRevisions = True
End Sub
Sub GetDocumentName()
strDocName = ActiveDocument.Name
MsgBox strDocName
End Sub
¿Qué es un método?
Un método es una acción que puede realizar un objeto. Por ejemplo, dado que los documentos
pueden imprimirse, el objeto Document tiene un método PrintOut. Con frecuencia, los métodos
29
tienen argumentos que califican cómo se realiza la acción. En el siguiente ejemplo, se imprimen
las tres primeras páginas del documento activo.
Sub PrintThreePages()
End Sub
En la mayoría de los casos, los métodos son acciones y las propiedades cualidades. Si se utiliza un
método, la acción recae sobre el objeto, mientras que si se usa una propiedad, se devuelve
información acerca del objeto o se cambia una de sus cualidades.
Devolución de un objeto
Después de obtener acceso a la colección, puede devolverse un solo objeto utilizando un valor de
índice entre paréntesis, igual que cuando se trabaja con matrices. El valor de índice es normalmente
un número o un nombre. Para obtener más información, vea Devolver un objeto de una colección.
Sub CloseDocument()
Documents(1).Close
End Sub
30
En el siguiente ejemplo, se utiliza un nombre, especificado como cadena, para identificar un
objeto Document dentro de la colección Documents.
Sub CloseSalesDoc()
Documents("Sales.doc").Close
End Sub
Con frecuencia, los objetos de la colección tienen métodos y propiedades que pueden usarse para
modificar toda la colección de objetos. El objeto Documents tiene un método Save que guarda
todos los documentos de la colección. En el siguiente ejemplo, se guardan los documentos abiertos
aplicando el método Save.
Sub SaveAllOpenDocuments()
Documents.Save
End Sub
El objeto Document también dispone de un método Save para guardar un solo documento. En el
siguiente ejemplo, se guarda el documento Sales.doc.
Sub SaveSalesDoc()
Documents("Sales.doc").Save
End Sub
Para devolver un objeto que se encuentra en un nivel inferior de la jerarquía de objetos de Word,
deberá recorrerla usando propiedades y métodos para devolver objetos.
Para ver cómo se hace, abra el Editor de Visual Basic y haga clic en el comando Explorador de
objetos del menú Ver. Haga clic en Aplicación de la lista Clases que está a la izquierda. A
continuación, haga clic en ActiveDocument de la lista de elementos que está a la derecha. El texto
31
de la parte inferior del Explorador de objetos indica que ActiveDocument es una propiedad de
solo lectura que devuelve un objeto Document. Haga clic en Document en la parte inferior del
Explorador de objetos; se seleccionará el objeto Document automáticamente en la lista Clases y
la lista Miembros mostrará los elementos del objeto Document. Desplácese a través de la lista de
elementos hasta que encuentre Close. Haga clic en el método Close. El texto de la parte inferior
de la ventana del Explorador de objetos muestra la sintaxis del método. Para obtener más
información sobre el método, presione la tecla F1 o haga clic en el botón Ayuda para ver el tema
de ayuda del método Close.
Una vez obtenida esta información, podrá escribir la siguiente instrucción para cerrar el documento
activo.
Sub CloseDocSaveChanges()
ActiveDocument.Close SaveChanges:=wdSaveChanges
End Sub
Sub MaximizeDocumentWindow()
ActiveDocument.ActiveWindow.WindowState = wdWindowStateMaximize
End Sub
Sub CreateSaveNewDocument()
Documents.Add.Save
End Sub
32
La propiedad Documents devuelve la colección Documents. El método Add crea un nuevo
documento y devuelve un objeto Document. Después, se aplica el método Save al
objeto Document.
Como puede observarse, los métodos o propiedades se usan para recorrer la jerarquía hasta llegar
al objeto. Es decir, un objeto se devuelve aplicando un método o una propiedad a un objeto superior
en la jerarquía. Después de devolver el objeto que quiera, puede aplicar los métodos y controlar
las propiedades del mismo.
Todos los valores que requieren ser manipulados en un programa pueden ser almacenados
temporalmente en una variable, las variables son las que deben pertenecer a un tipo de dato, donde
el tipo de dato determina el rango de valores o conjunto de valores que dicha variable podría
emplear.
Existen 12 tipos de datos diferentes con los que se puede trabajar. Por ejemplo al declarar una
variable en VBA basta añadir una línea de código para definir la naturaleza de los valores que
almacenaremos en ella.
33
4,94065645841247E-324 para valores negativos y de 4,94065645841247E-324 a
1.79769313486232E308 para valores positivos.
Integer: El Integer o entero es un número de 16 bits que puede oscilar entre -32768 y 32767.
Los enteros se deben utilizar cuando se trabaja con valores que no pueden contener números
fraccionarios.
Long: El Long es un número de 32 bits que puede variar entre -2.147.483.648 y 2.147.483.647.
Las variables Long sólo puede contener valores enteros.
Decimal: El Decimal es un subtipo de dato Variant, puede almacenar valores en un rango que
va desde -79.228.162.514.264.337.593.543.950.335 hasta
79.228.162.514.264.337.593.543.950.335 si el valor no contiene cifras decimales.
Tiene una precisión de hasta 28 decimales con valores desde -
7,9228162514264337593543950335 hasta 7,9228162514264337593543950335.
Single: El Single es un número de 32 bits que va desde-3.402823E38 a -1,401298 E-45 para
valores negativos y desde 1,401298E-45 a 3.402823E38 para valores positivos. Cuando se
necesitan números fraccionarios dentro de este rango, este es el tipo de apropiado para su uso.
String: El String se utiliza generalmente como un tipo de longitud para una cadena de texto.
Una cadena de longitud variable puede contener un máximo de aproximadamente 2 mil
millones de caracteres. Cada carácter tiene un valor que va desde 0 hasta 255 basado en el
juego de caracteres ASCII.
Currency: El tipo de datos Moneda es en realidad un tipo entero internamente. En su uso, se
escala por un factor de 10.000 para agregar cuatro dígitos a la derecha del punto decimal.
Permite hasta 15 dígitos a la izquierda del punto decimal, resultando en un rango de
aproximadamente -922.337.000.000.000 a +922.337.000.000.000.
Date: El Date almacena un valor numérico con formato especial que representa tanto la fecha
como la hora. El Date acepta la fecha o la hora, o ambas cosas. Los valores posibles van desde
1 de enero del año 100 a 31 de diciembre del año 9999.
Object: El Object puede señalar a cualquier tipo de dato, incluso cualquier instancia de objeto
que la aplicación reconozca. Se utiliza Object cuando en el tiempo de compilación no se
conoce a qué tipo de datos puede señalar la variable. Independientemente del tipo de datos al
que haga referencia, una variable Object no contiene el valor en sí, sino un puntero al valor.
34
Debido al código que el puntero utiliza para buscar los datos, las variables Object son de
acceso un poco más lento que las variables que tienen un tipo explícito.
Variant: Los Variant almacenan valores numéricos y no numéricos. Son los más flexible de
todos los tipos disponibles, ya que almacena valores muy grandes de casi cualquier tipo
(coincide con el tipo de datos numérico doble). Se usa sólo cuando no se está seguro del tipo
o cuando se están acomodando datos externos y no se está seguro de las especificaciones del
tipo de datos.
Es corriente que en programación precisemos trabajar con datos que necesitamos guardar en
memoria, para poder emplearlos después en nuestros módulos o subrutinas. Estos datos pueden
variar de una ocasión a otra, imaginemos el ejemplo de la función suma en la que precisamos
guardar en dos variables los números con los que deseamos operar. Para ello por lo tanto
precisamos de las variables.
Su empleo debe seguir unas reglas determinadas:
La denominación de nuestra variable debe empezar con una letra y no con un número.
No debe de tener más de 250 caracteres.
No puede emplearse las palabras reservadas para la sintáxis de la propia Excel. Por ejmplo no
podemos llamar a una variable con el nombre de WorkSheet etc.
Debe de consistir en una cadena continua de caracteres. Por ejemplo no puedo emplear como
nombre “mi variable” pero sí “mi_variable”.
En VBA existen los siguientes tipos de variables, dependiendo del uso que vayamos darles:
Para establecer la declaración de una variable antes de ser utilizada en el código, se puede hacer
en la ficha entorno del cuadro de diálogo opciones. Al activar la casilla Declaración de las variables
requerida, Visual Basic introduce la instrucción Option Explicit en la sección de declaraciones de
cada módulo nuevo que se cree, no de los ya existentes donde hay que introducirlos manualmente.
Esta instrucción obliga a declarar las variables antes de utilizarlas, lo que es muy recomendable.
La forma de declara una variable es a través de la instrucción Dim. En la línea se declara la variable
de nombre Variable y al mismo tiempo Visual Basic guarda espacio en memoria para poder
utilizarla.
35
Veamos un ejemplo del uso de variables. Usaremos para el siguiente ejemplo un InputBox y un
MsgBox , la primera son esas cajas de texto que nos permite introducir la información requerida
por teclado. Más adelante veremos con más detalle su uso, por el momento analice el empleo de
la misma en nuestro ejemplo:
Sub ejemplo()
Dim strNombre As String
strNombre = InputBox(“¿Cómo te llamas?”, “Saludos”)
MsgBox (“Hola ” & strNombre)
End Sub
Sub ejemplo2()
Dim numero1, numero2, producto As Integer
Dim respuesta As String
numero1 = InputBox(“Introduzca el primer número”, “PRODUCTO”)
numero2 = InputBox(“Introduzca el segundo número”, “PRODUCTO”)
producto = numero1 * numero2
End Sub
Si introduce cualquier número entero le dará un resultado correcto, pero pruebe a introducir una
letra, un número decimal o deje sin introducir un número. Observará que arroja un error. Esto es
así porque hemos declarado variables de tipo entero, por tanto la variable resultado no espera que
se introduzca letras o campos vacíos. Analizaremos más adelante como depurar el código para que
sólo se introduzca números o no se dejase la caja de texto vacía.
Las constantes almacenan valores que, como su nombre indica, permanecen constantes durante la
ejecución de una aplicación.
La instrucción Const se utiliza para declarar una constante y establecer su valor. Al declarar una
constante, puede asignar un nombre significativo a un valor. Una vez que se declara una constante,
no se puede modificar ni se le puede asignar un nuevo valor.
36
¿Qué son: arreglos (vectores y matrices)?
Los arrays, arreglos o mejor conocidos como vectores (o matrices) que son conocidas por algunos
como vectores multidimensionales forman parte también de las cosas que podíamos usar en VB6.
Si bien la forma en que se almacenan en la memoria y la forma en que podemos hacer algunas
acciones con estas en Visual Basic 2010 ha cambiado un poco, de igual manera la forma en que
podemos usarlas es idéntica a VB6... o casi idéntica.
En Visual Basic 2010 la declaración de un array, arreglo o vector la hacemos de la misma forma
que en Visual Basic 6 aunque como veremos un poco más adelante algunos detalles cambiaron y
es importante tenerlos en cuenta a la hora de declararlos. En el siguiente ejemplo declaramos un
array de tipo String llamado nombres:
Al igual que en VB6, podemos indicar el número de elementos que contendrá el array:
Tal como ocurre en VB6, al realizar esta declaración lo que conseguimos es definir un array de 11
elementos: desde cero hasta 10. Si bien, en VB6 tenemos la posibilidad de indicar cual era el valor
del índice inferior predeterminado de los arrays, podemos elegir entre cero y uno mediante la
instrucción Option Base indicando a continuación un 0 o un 1. En Visual Basic 2010 no existe esa
instrucción, es más en Visual Basic 2010 todos los arrays deben tener como índice inferior el valor
cero.
Otra posibilidad que teníamos en VB6 era indicar el rango de índices que podíamos asignar, esto
lo lográbamos usando la cláusula To al definir un array, por ejemplo:
Pero esta declaración es ilegal en Visual Basic 2010, por el hecho de que los arrays de .NET
siempre deben tener el valor cero como índice inferior.
37
Lo que si podemos hacer en Visual Basic 2010 es usar To para indicar el valor máximo del índice,
aunque no tiene la misma "potencia" que en VB6, al menos de esta forma el código resultará más
legible:
Lo que no podemos hacer en VB6 era declarar un array y al mismo tiempo asignarle valores.
En Visual Basic 2010 esto lo hacemos indicando los valores a asignar justo después de la
declaración y encerrándolos entre llaves:
Con el código anterior estamos creando un array de tipo String con tres valores cuyos índices van
de cero a dos. Si el array es bidimensional (o con más dimensiones), también podemos
inicializarlos al declararlo, pero en este caso debemos usar doble juego de llaves:
nombres(0,0)= Juan
nombres(0,1)= Pepe
nombres(1,0)= Ana
nombres(1,1)= Eva
Otra característica de Visual Basic 2010 es la aplicación de los denominados literales de arrays o
matrices. La idea es que Visual Basic infiera por nosotros el tipo de dato de forma directa.
38
Esto representa una buena práctica aunque nos impide hacer cosas que antes podíamos hacer sin
complicaciones.
ejemploMatriz(1) = "s"
De esta manera, tendremos un resultado: 2009, "s", 2011, 2012.
Sin embargo, esto ha cambiado. Ahora, podemos declarar literales de matrices, haciendo que estas
matrices se declaren de acuerdo al tipo de dato declarado, es decir, infiriendo el tipo de dato en la
declaración.
ejemploInteger(1) = "s"
La aplicación nos devolverá un error en tiempo de ejecución, ya que la matriz estará inferida por
defecto como tipo Integer, y estaremos intentado asignar un valor String a una matriz de tipo
Integer.
La división de un programa en unidades más pequeñas o funciones presenta –entre otras las
ventajas siguientes:
1. Modularización. Cada función tiene una misión muy concreta, de modo que nunca tiene un
número de líneas excesivo y siempre se mantiene dentro de un tamaño manejable. Además, una
39
misma función (por ejemplo, un producto de matrices, una resolución de un sistema de ecuaciones
lineales, ...) puede ser llamada muchas veces en un mismo programa, e incluso puede ser
reutilizada por otros programas. Cada función puede ser desarrollada y comprobada por separado.
2. Ahorro de memoria y tiempo de desarrollo. En la medida en que una misma función es utilizada
muchas veces, el número total de líneas de código del programa disminuye, y también lo hace la
probabilidad de introducir errores en el programa.
Los nombres de los procedimientos tienen reglas de visibilidad parecidas a las de las
40
variables. Para llamar desde un formulario a un procedimiento Public definido en otro formulario
es necesario preceder su nombre por el del formulario en que está definido. Sin embargo, si se
desea llamar a un procedimiento definido en un módulo estándar (*.bas) no es necesario precederlo
del nombre del módulo más que si hay coincidencia de nombre con otro procedimiento de otro
módulo estándar.
Funciones (function)
[sentencias]
[nombre = expresion]
[Exit Function]
[sentencias]
[nombre = expresion]
End Function
Donde nombre es el nombre de la función. Será de un tipo u otro dependiendo del dato que
devuelva. Para especificar el tipo se utiliza la cláusula As Tipo (Integer, Long, Single, Double,
Currency, String o Variant). parámetros son los argumentos que son pasados cuando se llama a la
función. Visual Basic asigna el valor de cada argumento en la llamada al parámetro que ocupa su
misma posición. Si no se indica un tipo determinado los argumentos son Variant por defecto. Como
se verá en un apartado posterior, los argumentos pueden ser pasados por referencia o por valor.
El nombre de la función, que es el valor de retorno, actúa como una variable dentro del cuerpo de
la función. El valor de la variable expresion es almacenado en el propio nombre de la función. Si
41
no se efectúa esta asignación, el resultado devuelto será 0 si la función es numérica, nulo ("") si la
función es de caracteres, o Empty si la función es Variant.
Exit Function permite salir de una función antes de que ésta finalice y devolver así el control del
programa a la sentencia inmediatamente a continuación de la que efectuó la llamada a la función.
La sentencia End Function marca el final del código de la función y, al igual que la Exit Function,
devuelve el control del programa a la sentencia siguiente a la que efectuó la llamada, pero
lógicamente una vez finalizada la función.
La llamada a una función se hace de diversas formas. Por ejemplo, una de las más usuales es la
siguiente:
variable = nombre([argumentos])
donde argumentos son un lista de constantes, variables o expresiones separadas por comas que son
pasadas a la función. En principio, el número de argumentos debe ser igual al número de
parámetros de la función. Los tipos de los argumentos deben coincidir con los tipos de sus
correspondientes parámetros, de lo contrario puede haber fallos importantes en la ejecución del
programa. Esta regla no rige si los argumentos se pasan por valor (concepto que se verá más
adelante).
En cada llamada a una función hay que incluir los paréntesis, aunque ésta no tenga
argumentos.
Procedimientos
[sentencias]
[Exit Sub]
[sentencias]
42
End Sub
La llamada a un procedimiento Sub puede ser de alguna de las dos formas siguientes:
Call nombre[(argumentos)] o bien, sin pasar los argumentos entre paréntesis, sino poniéndolos a
continuación del nombre simplemente separados por comas: nombre [argumentos]
A diferencia de una función, un procedimiento Sub no puede ser utilizado en una expresión pues
no devuelve ningún valor. Por supuesto una función puede ser llamada al modo de un
procedimiento Sub, pero en esta caso no se hace nada con el valor devuelto por la función.
El siguiente ejemplo corresponde a un procedimiento Sub que devuelve una variable F que es la
raíz cuadrada de un número N.
If N < 0 Then
Else
F = Sqr(N)
End If
End Sub
La llamada a este procedimiento Sub puede ser de cualquiera de las dos formas siguien
tes:
Raiz N, F
Call Raiz(N, F)
43
En el ejemplo anterior, el resultado obtenido al extraer la raíz cuadrada al número N se
44
Bibliografía
Lopez Roman, L. (2011). Programacion estructurada y orientada a objetos (3ra edición) .
Riobamba: Alfaomega Grupo Editor.
Lcc.uma.es. (2018). [online] Available at:
http://www.lcc.uma.es/~jlleivao/introduccion/parte2.pdf [Accessed 7 Nov. 2018].
Curso de VBA Excel. (2018). Los datos en VBA (variables y constantes). [online] Available at:
https://cursovisualexcel.wordpress.com/2011/07/21/los-datos-en-vba-variables-y-constantes/
[Accessed 7 Nov. 2018].
Meza Gonzales, J. (2018). Arreglos, vectores y matrices en Visual Basic. Uso y sintaxi. [online]
Programarya.com. Available at: https://www.programarya.com/Cursos/Visual-Basic/Estructuras-
de-Datos/Arrays-y-Matrices [Accessed 7 Nov. 2018].
45
Docs.microsoft.com. (2018). Objetos y clases de Visual Basic. [online] Available at:
https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-
features/objects-and-classes/ [Accessed 7 Nov. 2018].
Ortíz, M. (2018). Fórmulas de Excel - Excel Total. [online] Excel Total. Available at:
https://exceltotal.com/formulas-de-excel/ [Accessed 7 Nov. 2018].
Excel Avanzado. (2018). Tipos de Datos en VBA. [online] Available at: https://www.excel-
avanzado.com/699/tipos-datos-vba.html [Accessed 7 Nov. 2018].
46