Date post: | 05-Jul-2018 |
Category: |
Documents |
Upload: | marianarenis |
View: | 218 times |
Download: | 0 times |
of 119
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
1/119
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍA
Apunte de Visual Basic de Excel aplicado aHormigón Armado I
USM Campus SantiagoI Semestre 2015
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
2/119
Hormigón Armado I, UTFSM Santiago.
1Tutorial - Ignacio Mayorga / Ignacio Ruiz.
TABLA DE CONTENIDOS
1. ALCANCE 4
2. NOCIONES BÁSICAS 5
2.1. INGRESAR AL AMBIENTE VISUAL BASIC 5
2.2. AMBIENTE VISUAL BASIC 7
2.3. ENTRANDO A UN ESPACIO DE PROGRAMACIÓN 8
3. PROGRAMACIÓN 10
3.1. VARIABLES 10
3.1.1. TIPOS DE VARIABLES 10
3.1.2. DECLARACIÓN DE UNA VARIABLE 113.2. DECLARACIÓN DE UNA SUB 11
3.3. DECLARACIÓN DE UNA FUNCIÓN 12
3.4. SENTENCIAS BÁSICAS DE PROGRAMACIÓN 14
3.4.1. DECLARACIÓN DE UN "FOR" 14
3.4.2. DECLARACIÓN DE UN "IF" 15
3.4.3. DECLARACIÓN DE UN "SELECT CASE" 16
3.4.4. DECLARACIÓN DE UN "DO WHILE". 17
3.5. LLAMADO DE SUB, FUNCIONES Y VARIABLES DESDE OTRAS SECCIONES 18
3.6. HERRAMIENTAS ÚTILES DE VISUAL BASIC 19
3.6.1. MENSAJE EN PANTALLA 19
3.6.2. CONCATENAR (&) 22
3.7. MANEJO DE ARREGLOS (MATRICES). 22
3.7.1. DECLARACIÓN DE UN ARREGLO 23
3.7.2. DIMENSIONES DE UN ARREGLO 23
3.7.3. REDIMENSIONAR UN ARREGLO 24
3.7.4. PEGAR UN ARREGLO EN UNA HOJA DE CÁLCULO 26
3.8. MANEJO DE CADENAS DE TEXTO. 28
3.8.1. FUNCIÓN REPLACE 29
3.8.2. FUNCIÓN LEN 29
3.8.3. FUNCIÓN SPLIT 29
3.8.4. FUNCIÓN LEFT 293.8.5. FUNCIÓN RIGHT 30
3.8.6. FUNCIÓN MID 30
3.8.7. FUNCIÓN INSTR 30
3.8.8. FUNCIÓN JOIN 31
3.8.9. FUNCIÓN LCASE 31
3.8.10. FUNCIÓN UCASE 31
3.9. MANEJO DE ARCHIVOS DE TEXTOS 31
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
3/119
Hormigón Armado I, UTFSM Santiago.
2Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.9.1. ABRIR UN ARCHIVO DE TEXTO 32
3.9.2. LEER UN ARCHIVO DE TEXTO 32
3.9.3. ESCRIBIR UN ARCHIVO DE TEXTO NUEVO: 33
3.9.4. ESCRIBIR UN ARCHIVO DE TEXTO CONSERVANDO LO ALMACENADO 34
3.9.5. EJEMPLO DE UTILIDAD 34
3.10. FUNCIONES ÚTILES DE MICROSOFT EXCEL 36 3.10.1. GRABAR MACRO 36
3.10.2. BUSCARV – BUSCARH 38
3.10.3. K.ESIMO.MAYOR & K.ESIMO.MENOR 39
3.11. MANEJO DE CELDAS 40
3.11.1. REFERENCIAR UNA CELDA MEDIANTE CELLS(). 40
3.11.2. REFERENCIAR UNA CELDA O RANGO MEDIANTE RANGE() 41
3.12. RUTINA BUSCAR OBJETIVO 42
3.12.1. BUSCAR OBJETIVO, FUNCIÓN DE EXCEL. 42
3.12.2. BUSCAR OBJETIVO, PROGRAMADA EN VISUAL BASIC A. 43
3.13. FUNCIONES MATEMÁTICAS DE VB. 44
3.14. FUNCIONES DE EXCEL 45 3.15. MANEJO DE ERRORES 46
3.15.1. EVITAR QUE LOS ERRORES DERIVEN EN MOSTRAR EL CÓDIGO 47
4. INTERFAZ GRÁFICA DE VB 49
4.1. INTRODUCCIÓN A LOS FORMULARIOS (USERFORM) 49
4.1.1. INICIANDO UN FORMULARIO 49
4.1.2. PROGRAMACIÓN EN UN FORMULARIO 50
4.2. OBJETOS (CONTROLES) 51
4.2.1. PROGRAMACIÓN DE LA RUTINA DE RESPUESTA A UNA ACCIÓN DE UN OBJETO 524.2.2. MANEJO DE LAS PROPIEDADES DE UN OBJETO 53
4.2.3. CUADRO DE TEXTO, TEXTBOX ( ) 56
4.2.4. ETIQUETA, LABEL ( ) 57
4.2.5. MARCO, FRAME ( ) 57
4.2.6. BOTÓN DE COMANDO, COMMANDBUTTON ( ) 58
4.2.7. CASILLA DE VERIFICACIÓN, CKECKBOX ( ) 59
4.2.8. BOTÓN DE OPCIÓN, OPTIONBUTTON ( ) 59
4.2.9. CUADRO DE LISTA, LISTBOX ( ) 60
4.2.10. CUADRO COMBINADO, COMBOBOX ( ) 614.2.11. BOTÓN DE NÚMERO, SPINBUTTON ( ) 62
4.2.12. TOGGLEBUTTON ( ) 63
4.3. EJECUCIÓN DE RUTINAS 64
5. EJEMPLOS APLICADOS A HORMIGÓN ARMADO 65
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
4/119
Hormigón Armado I, UTFSM Santiago.
3Tutorial - Ignacio Mayorga / Ignacio Ruiz.
5.1. MOMENTO CURVATURA 65
5.1.1. CONSIDERACIONES 65
5.1.2. GEOMETRÍA Y PROPIEDADES DE LA VIGA 66
5.1.3. ANÁLISIS Y DESARROLLO 67
5.1.4. PROGRAMACIÓN EN VISUAL BASIC 67
5.2. ARMADO DE VIGAS 73 5.2.1. DISEÑO VIGA SIMPLEMENTE ARMADA 73
5.2.2. ANÁLISIS DE LA VIGA DOBLEMENTE ARMADA 76
5.2.3. PROGRAMACIÓN EN VISUAL BASIC COMO CÓDIGO 80
5.2.4. INTERACCIÓN EXCEL - VISUAL BASIC 84
5.3. DIAGRAMA DE INTERACCIÓN CARGA AXIAL – MOMENTO , 85 5.4. PUNTOS CARACTERÍSTICOS DEL DIAGRAMA DE INTERACCIÓN CARGA AXIAL - MOMENTO 88
5.4.1. PUNTO DE TRACCIÓN PURA ,: 885.4.2. PUNTO DE FLEXIÓN PURA: 88
5.4.3. PUNTO DE BALANCE EN FLEXO COMPRESIÓN: 89
5.4.4. PUNTO DE
=. 90
5.4.5. PUNTO DE =.: 905.4.6. PUNTO DE COMPRESIÓN PURA ,: 915.5. DIAGRAMA DE INTERACCIÓN P-M DE DISEÑO 92 5.6. EJEMPLO DIAGRAMA DE INTERACCIÓN CARGA AXIAL - MOMENTO ,: 93 5.6.1. CÁLCULO DEL CENTROIDE PLÁSTICO: 94
5.6.2. TRACCIÓN PURA: 94
5.6.3. FLEXIÓN PURA: 94
5.6.4. PUNTO DE =.: 965.6.5. PUNTO DE =.: 965.6.6. PUNTO DE BALANCE EN FLEXO COMPRESIÓN: 97
5.6.7. PUNTO DE COMPRESIÓN PURA: 985.6.8. RESUMEN DE LOS PUNTOS CARACTERÍSTICOS: 98
5.7. ELABORACIÓN DE UNA RUTINA EN VISUAL BASIC DE EXCEL QUE CALCULE UN DIAGRAMA DE INTERACCIÓN
CARGA AXIAL - MOMENTO. 99
5.8. DIAGRAMA MOMENTO CURVATURA CON CARGA AXIAL 106
5.8.1. CÓDIGO EN VISUAL BASIC: 109
258.1. GRÁFICA DE KENT & PARK PARA DISTINTAS CUANTÍAS DE CONFINAMIENTO 114
258.1.1. CÓDIGO Y COMENTARIOS: 115
258.1.2. UTILIZACIÓN DEL CÓDIGO MEDIANTE BOTÓN EN PLANILLA. 118
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
5/119
Hormigón Armado I, UTFSM Santiago.
4Tutorial - Ignacio Mayorga / Ignacio Ruiz.
1 Alcance
El presente documento tiene por objetivo acercar al alumno de Hormigón Armado I a las
herramientas de análisis contenidas en Microsoft Excel a través de Visual Basic.
El documento se encuentra en desarrollo a medida que el curso avanza en contenidos, los cualesse enumeran a continuación:
Capitulo Tópico
IntroducciónCondiciones del curso - 1. Introducción
NCh 430 - Otra normas
Materiales 2. Materiales
Diseño 3. Conceptos de Diseño - Ejemplo
Flexión
4. Flexión: Comportamiento - Momento-Curvatura - Agrietamiento
4. Flexión: Post-agrietamiento - Rango no lineal
4. Flexión: Rango no-lineal
4. Flexión: Diseño sección rectangular refuerzo en tracción - Ref en compresión
4. Flexión: Viga de sección T
4. Flexión - Ejemplos
Corte en Vigas
5. Corte: General - Previo agrietamiento - Post agrietamiento
5. Corte: Post agrietamiento - Diseño
5. Corte: Diseño - Ejemplos
Flexo-compresión
6. Flexo-compresión: Compr. Axial - Flexo-compr. Uniaxial
6. Flexo-compresión: Diseño
6. Flexo-compresión: Cap. de deformación - Flexión Bi-axial
6. Flexo-compresión: Ejemplo Marco
Adherencia y Anclajes 7. Adherencia y Anclajes
Detallamiento 8. Detallamiento
Diseño por capacidad9. Diseño por capacidad: Mecanismo de Colapso
9. Diseño por Capacidad: Casos
Profesor Casa Central: Gilberto Leiva, [email protected], coordinador del
curso.
Profesor Campus Santiago: Ricardo Bustamante, [email protected]
Ayudantes Campus Santiago:
o
Ignacio Mayorga, [email protected]
o Ignacio Ruiz, [email protected]
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
6/119
Hormigón Armado I, UTFSM Santiago.
5Tutorial - Ignacio Mayorga / Ignacio Ruiz.
2 Nociones Básicas
2.1. Ingresar al Ambiente Visual Basic
Para utilizar Visual Basic
para Excel, es necesario ejecutar el software Excel para luego
proceder a ejecutar el VB. Importante destacar que al guardar una planilla de Excel en la cual seprogramará, ésta debe ser guardada como un archivo de Excel habilitada para Macros ∗.. A continuación se mostrará la interfaz de Excel
Ilustración 1-¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí..1: Vista "Normal" deuna hoja de Excel.
Luego es necesario ejecutar Visual Basic, para lo cual se tienen dos opciones, la primera es tener
activada en la barra de herramientas de Excel la sección de Programación (Excel 2010 y anteriores)
o de Desarrollador (Excel 2013 y posteriores), como se muestra a continuación:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
7/119
Hormigón Armado I, UTFSM Santiago.
6Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Ilustración 2-1-¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .2: se muestra cómoabrir Visual Basic mediante las herramientas de Excel.
En la imagen anterior se aprecia que en la barra de herramienta, anteriormente mencionada, se
encuentra la opción para acceder a Visual Basic.
En el caso que esta no esté activada, se puede activar en la sección de opciones de Excel, yendo a
“Archivo” y luego a “Opciones”, en donde se ejecutará la siguiente pantalla:
Ilustración 2-1-¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .3: modo de activar laherramienta programador o desarrollador de Excel.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
8/119
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
9/119
Hormigón Armado I, UTFSM Santiago.
8Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Módulos: esta sección está netamente dedicada a la creación de rutinas de programación,
macros y creación de funciones dentro de Excel, para ser utilizadas posteriormente tanto
en las Hojas de cálculo como en los Formularios
En las tres secciones anteriores se puede programar, la diferencia radica en lo siguiente:
Programar en las hojas de cálculo (Microsoft Excel Objectos) implica que todas las
funciones, variables, y rutinas que se programen en una hoja dada, solo podrán ser
ejecutadas en esa hoja. En el caso de programar en Thisworkbook lo declarado se puede
utilizar en todas las hojas de cálculo.
Estos códigos (en hoja de cálculo o en Thisworkbook) no pueden ser utilizados para
interfaz gráfica.
Programar en Formularios, la creación de un formulario (Una Interfaz) funciona de manera
independiente a las hojas de cálculo, por ende cada formulario genera su espacio para
escribir códigos, variables, funciones, rutinas.
Programar en Módulos considera que la información es de uso público, es decir, si declaro
una función, esta puede ser llamada tanto de una hoja de cálculo como de un Userform.
Comentario:
Lo usual, y a modo de llevar un orden es: en el caso de tener varias hojas de cálculo que se tengan
distintas "Macros (códigos que generan una acción)", por hoja, es declarar esas macros en cada
hoja (programar en Microsoft Excel Objetos). En el caso de tener una macro que mezcla
información de Varias hojas, ideal que esté programada en Thisworkbook. Las funciones generales
que se utilizan programarlas en Módulos. Y en el caso de hacer una interfaz, utilizar la
programación en Userform y Módulos.
2.3. Entrando a un Espacio de Programación
Como se comentó en la sección anterior, existen tres espacios de programación,
Microsoft Excel Objetos
Formularios
Módulos
La forma de entrar a estos difiere:
En el caso de Microsoft Excel Objetos, basta sólo decidir en qué hoja programar y hacer
doble click en ésta.
En el caso de Formularios, primeramente se debe crear un nuevo formulario (yendo a
Insertar → UserForm). Luego creado, click derecho en el Userform → Ver código. Como seobserva a continuación:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
10/119
Hormigón Armado I, UTFSM Santiago.
9Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Ilustración 2-3-1: entrar a un espacio de programación de un formulario.
En la imagen anterior se destacan dos opciones, las cuales corresponden a “Ver código” y
“Ver objetos”. Para el caso de formularios direcciona inmediatamente a los objetos ( se
observa la interfaz con sus diferentes objetos como botones, etiquetas, etc.), pero al
ingresar a los códigos se abre el espacio para programar.
Y por último, en el caso de los módulos, para entrar al espacio de programación bastasolamente te crear y módulo y doble "click" sobre éste.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
11/119
Hormigón Armado I, UTFSM Santiago.
10Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3 Programación
Se procederá definir los aspectos más importantes de la programación en Visual Basic.
3.1. Variables
La capacidad de este programa es bastante amplia en términos de datos de entrada, pudiéndose
generar variables del tipo numérico, textos, caracteres entre otros. Además se pueden generar
variables con dimensiones, generando así variables de tipo matricial.
En este caso se mostrarán algunos de los tipos de variables, las cuales tienen un mayor índice de
utilización en el desarrollo de rutinas relacionas a los cursos de “Hormigón Armado”.
3.1.1. Tipos de Variables
Integer: corresponde a una variable representa los números enteros.
(orden de magnitud aprox.: E+9 y E-9).
Single: corresponden a los números reales, además posee un rango más amplio
que los del tipo “Interger” (orden de magnitud aprox.: E+38 y E-45).
Double: este tipo de variable posee las mismas características de las variables de
tipo “single”, la diferencia radica en el orden de magnitud de los máximos
y mínimos. (orden de magnitud aprox.: E+308 y E-324).
Short: corresponde a una variable numérica de tipo entero, y de valores positivos
y negativos (orden de magnitud aprox.: E+4)
Long: corresponde a una variable numérica de tipo entero, similar a los “Short”,
y de valores positivos y negativos (orden de magnitud aprox.: E+18)
String: corresponden a una de tipo texto, la longitud de ésta variable es cercana a
los 2 millones de caracteres. (ejemplo “casa”)
Char: corresponde a un carácter individual. (ejemplo “X”)
Boolean: las variables de tipo “boolean” solo pueden tener dos tipos de valores, los
cuales son solamente “True” o “False”.
De no definir una variable, VB tomará dicha variable como tipo "Variant " lo asigna como texto,
entero o decimal.
Otra diferencia entre las distintas variables es el tamaño en Bytes que ocupan. Por ejemplo una
variable que será utilizada como contador, es preferible declararla como Integer o Short antes que
Double, debido a que Integer "pesa" menos, que se podría traducir en rutinas más rápidas, mas
refinadas y livianas.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
12/119
Hormigón Armado I, UTFSM Santiago.
11Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.1.2.
Declaración de una Variable
Para definir las variables se tiene que hacer de la siguiente manera:
Dim Nombre_de_Variable As Tipo_de_Variable
Si queremos definir una variable la cual tenga 2 dimensiones, el caso de una matriz, ésta se debe
definir de la siguiente manera:
Dim Nombre_de_Variable(n_inicial To n_final) As Tipo_de_Variable
En la definición anterior el tipo de variable no es mandatorio incorporarlo. Por ejemplo si se quiere
tener una variable que se llame Tipos_Acero, y que sea una matriz de 33 del tipo “Double”, setendrá lo siguiente:
Dim Tipos_Aceros(1 To 3, 1 To 3) As Double
Comentario: las matrices también se pueden definir del siguiente modo:
Dim Tipos_Aceros(2,2) As Double
La matriz definida en Ilustración 2.1.3 también corresponde a una matriz de dimensiones 33.Pero a diferencia del ejemplo anterior, la matriz en este caso se llenará desde el índice 0 hasta 2.(en el caso anterior, se tenía comienzo desde el índice 1).Para llamar o definir un término en específico de esta variable, se tiene que hacer de la siguiente
manera:
Para asignar un valor a un coeficiente de una matriz:
Tipos_Aceros(1, 1) = Valor_a_Asignar
Para asignarle a una variable cualquiera el valor que corresponde a un cierto coeficiente
de una matriz.
Alguna_Variable = Tipos_Aceros(1, 1)
En una sección posterior se profundizará mas en el tema Matrices. (Manejo de Arreglos
(Matrices).)
3.2. Declaración de una Sub
Las "Sub" son el espacio donde se debe programar lo que se desee hacer, éstas tiene que estar
definas por un nombre y se pueden crear en los tres espacios posibles (Módulos, Hojas de cálculo
o formularios). La forma de declararlas es la siguiente:
Sub Nombre1()
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
13/119
Hormigón Armado I, UTFSM Santiago.
12Tutorial - Ignacio Mayorga / Ignacio Ruiz.
'Acá va la rutina
End Sub
Dentro de espacio de programación se pueden crear múltiples Sub de manera independiente de
modo que no interfieren entre sí, la única forma de activarlas es llamarla desde la rutina de una.Supongamos que se tienen dos Sub, una llamada “Nombres” y otra “Rut ”, y dentro del código de la
sub rutina Nombres llamaremos a Rut de la siguiente forma:
Sub Nombres()
Call Rut
'Se ejecutó la sub Rut
End Sub
Por otro lado, existe una función para que éstas rutinas sean privadas o públicas, esto quiere decir
que si se está trabajando dentro de un Userform y se crea una rutina cualquiera de forma privada,
ésta no se podrá utilizar en los códigos de las hojas de cálculo o módulos. Para que la rutina quede
de forma privada se tiene que declarar de la siguiente manera:
Private Sub Nombre1()
'Acá va la rutina
End Sub
De manera análoga, si se quiere la rutina sea de carácter público y pueda ser utilizada desde todas
las secciones se debe declarar de la siguiente manera:
Public Sub Nombre1()
'Acá va la rutina
End Sub
3.3.
Declaración de una Función
La creación de funciones es de gran utilidad dentro de la programación ya que permite ordenar los
códigos y encontrar errores más fácilmente. Para declarar las funciones se requiere asignarle un
nombre y señalar las variables de entrada para la función, las cuales serán utilizadas dentro de la
rutina de la función, posteriormente se debe asignar un valor al nombre de la función, que será lo
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
14/119
Hormigón Armado I, UTFSM Santiago.
13Tutorial - Ignacio Mayorga / Ignacio Ruiz.
que el valor que devolverá dicha función. Para declarar las funciones se hace de la siguiente
manera,
Public Function Nombre1(Variable1, Variable2)
Dim n As Double 'al definirla acá sólo estará en la función
n = Variable1 + Variable2
Nombre1 = n 'La función devuelve el valor de n
End Function
Ó
Private Function Nombre2(Variable1, Variable2)
Dim n As Double 'al definirla acá sólo estará en la funciónn = Variable1 * Variable2
Nombre2 = n 'La función devuelve el valor de n
End Function
Se observa que las funciones funcionan de manera similar a las rutinas Sub, ya que éstas se
pueden declarar de manera pública o privada. Del mismo modo como se explicó antes.
Para la utilización de las funciones dentro de los códigos, basta simplemente con asignar valores a
las variables de entrada de la función, como se muestra a continuación
Public Sub Suma()Dim a As DoubleDim b As Double
a = 1 b = 2
Range("A1") = Nombre1(a,b)End Sub
En el ejemplo anterior al ejecutar la rutina, la Celda A1 tendrá un valor de 3. Dado que lo que hace
la función creada previamente Nombre1, es sumar los dos parámetros de entrada.
Comentario: es recomendable también definir qué tipo de variable se ingresará a la función.
(porque de no definirla VB lo tomará como Variant, siendo esta una variable que pesa más). La
forma de definir el tipo de variable de entrada y el tipo de variable de retorno es:
Public Function Nombre1(Var1 As String, Var2 As String) As Double
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
15/119
Hormigón Armado I, UTFSM Santiago.
14Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Nombre1 = Var1 + Var2
End Function
Las funciones pueden ser utilizadas en planillas de cálculos, para utilizarlas, estas funciones deben
ser declaradas como públicas y no deben tener un nombre que genere conflicto con el nombre delas celdas por ejemplo “AB12”, para utilizarlas se debe llamar como cualquier función integrada en
Excel.
3.4. Sentencias Básicas de Programación
Para generar algoritmos son necesarios elementos básicos de programación tales como los ‘For’,
‘If ’ o ‘While’, entre otros. Se procederá a mostrar las distintas formas de cómo declarar éstas
estructuras.
3.4.1.
Declaración de un "For"
Para caso que se necesite repetir una operación número de veces, una alternativa es aplicar un“For” la cual se debe declarar de la siguiente manera
For n = n_o To n_1 Step 2
'Acá va la rutina
Next
En lo anterior se aprecia que se utilizó un paso (Step) de valor 2, esto implica que el valor de la
variable irá aumentando de dos en dos. El valor del paso puede ser positivo o negativo. Ademásno es necesario incorporarlo, ya que al no estar presente, el programa trabaja con un paso
automático de 1, en tal caso el valor de las variables y deben corresponder a un parámetrode valor entero.
Por ejemplo, si se quiere definir un proceso reiterativo que parta desde el 5 y termine en 0 con unpaso de 0.5 se tiene que declarar de la siguiente manera
Por otro lado, si se requiere generar un rutina que parta desde 0 hasta 100 con un paso unitario.Se tiene lo siguiente
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
16/119
Hormigón Armado I, UTFSM Santiago.
15Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.4.2.
Declaración de un "If"
En el caso de tener que efectuar distintas operaciones según alguna condición o conjunto de éstas.
Según si son incluyentes o excluyentes . La manera de declararla, es la siguiente:
Se pueden asignar múltiples de condiciones. Las cuales se sientan en los siguientes funciones
matemáticas:
< : menor que... > : mayor que...
= : mayor o igual que...
: distinto a...
= : igual a...
Además se pueden complementar dichas condiciones utilizando:
And : corresponde a "Y", lo que en lógica es ∧. Or : corresponde a "Ó", lo que en lógica es ∨.
Ejemplo:
En el ejemplo anterior, el uso de "And" y "Or" son opcionales y no requieren de ser utilizadas,basta con sólo una condición. Al igual que el uso del "Elseif", que en este caso se usa dado a la
cantidad de alternativas que se tiene.
Para el caso en que se tienen condiciones que utilizan un caso en especial, es conveniente el uso
de la rutina Case.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
17/119
Hormigón Armado I, UTFSM Santiago.
16Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Otro aspecto bastante útil del uso del If, por su sencillez, es en el caso de que dado una condición
en especial se asigne un valor, como lo muestra el siguiente ejemplo.
Que es la forma más simplificada del uso del If.
Un uso bastante común del uso del "If" , es en el caso de condicionar el valor de una variable enfunción de otras dos o más variables. Como lo muestra el siguiente ejemplo:
3.4.3.
Declaración de un "Select Case"
El “Case” funciona de manera similar al ‘If ’. Solo se puede manejar una variable para las
condiciones, siendo ésta variable de cualquier tipo. Para declarar un ‘Case’ se hace de la siguiente
manera:
Las Cláusulas tienen 3 tipos de opciones para definir, las cuales se mostrarán a continuación: Forma 1: lo primero y más sencillo es definir una expresión, la cual puede
ser una variable, valor o un ‘True’ o ‘False’, lo que indicará que la
variable será igual a esta expresión.
á: Forma 2: en el caso de que la variable sea de carácter numérica, se puede
definir un rango para la aplicación del caso mediante los 2 valores
y la expresión ‘To’, de la siguiente manera.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
18/119
Hormigón Armado I, UTFSM Santiago.
17Tutorial - Ignacio Mayorga / Ignacio Ruiz.
á: 1 2 Forma 3: la última forma es ocupar restricciones del tipo =, = . Para
poder utilizar este forma es necesario anteponer la expresión ‘Is’.
á:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
19/119
Hormigón Armado I, UTFSM Santiago.
18Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.5. Llamado de Sub, Funciones y Variables Desde Otras Secciones
Cuando se tienen definidas funciones, rutinas y/o variables en distintas ubicaciones, sean éstas
módulos, formularios u hojas de cálculo, éstas pueden ser utilizadas desde cualquier ubicación con
tan sólo anteponer el nombre de la ubicación de lo que se esté buscando, siempre y cuando estén
definidos como público. Se mostrarán ejemplos para llamar todos los tipos de elementos
Para hacer el llamado de una función, sub, variable, objeto, etc. Se debe Anteponer la ubicación de
éste. Ejemplo:
Sub que está en un módulo:
Del mismo modo se llama a funciones que estén en algún módulo.
Funciones que estén en algún formulario:
En el caso de los objetos(etiquetas, cuadros de textos, cuadros de listas, etc). Se
llaman igual, por ejemplo se quiere el valor de un cuadro de texto que está en un
cierto formulario sería:
El uso de "Value" se verá posteriormente, pero es para especificar que se quiere el
valor del cuadro de texto.
Variable que está definida en una hora o formulario.
Para llamar a una variable que fue definida en alguna hoja, o en algún formulario
en específico, basta con identificar su origen.
Aquí se mostró un par de ejemplos, pero se puede extrapolar a cualquier combinación, lo
importante es mencionar la ubicación de donde se encuentra el elemento de interés. Además se
puede efectuar lo mismo con elementos de interfaz gráfica que aún no se han mencionado, tales
como:
TextBox
CheckBox
ListBox
SpinButton
ComboBox
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
20/119
Hormigón Armado I, UTFSM Santiago.
19Tutorial - Ignacio Mayorga / Ignacio Ruiz.
OptionButton
CommandButton
Label
Notar que sólo es necesario anteponer el nombre de la sección en la que se encuentre.
3.6. Herramientas útiles de Visual Basic
En esta sección se mostrarán distintos tipos de herramientas que son bastante útiles en la
programación, además de algunas herramientas para utilizar algunas opciones de Excel y algunos
códigos de programación con características muy útiles.
3.6.1.
Mensaje en Pantalla
Una de las herramientas más útiles al momento de comenzar a programar es el mensaje en
pantalla, debido a que pidiéndole a la rutina que muestre un valor obtenido o cualquier cosa en
medio de un código es bastante útil para:
Identificar errores
Entender un código
Uso de interfaz gráfica
La forma de hacer que muestre algo por pantalla es mediante el código . A modo de ejemplo:
Lo que se mostrará por pantalla es lo siguiente:
Algunas propiedades de los mensajes de texto:
Agregar un formato
Formato General:
o VbCritical:
o VbQuestion:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
21/119
Hormigón Armado I, UTFSM Santiago.
20Tutorial - Ignacio Mayorga / Ignacio Ruiz.
o VbInformation:
o VbExclamation:
La forma de agregar estos formatos generales, es colocándolos después del textomediante posterior a una coma.
Ejemplo:
Mostrará:
Formato de botones (msgbox como función):
o VbAbortRetryIgnore: mostrará los botones Anular, Reintentar, Omitir.
o VbOKCancel: mostrará los botones Aceptar y Cancelar.
o VbOKOnly: mostrará sólo el botón Aceptar.
o
VbYesNo: mostrará los botones Si y No.
o VbYesNoCancel: mostrará los botones Si, No y Cancelar.
Lo lógico sería utilizar el msgbox con distinto tipos de botones para obtener algún retorno,
y en función de esta continuar con el código. En este caso, como el mensaje de texto
devolvería un valor (dependiendo del botón seleccionado por el usuario) es correcto decir
que se utilizará como función, de modo que se debe programar como tal.
En primer lugar los valores que se obtienen en función del botón seleccionado son:
Constante Valor
Aceptar 1
Cancelar 2
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
22/119
Hormigón Armado I, UTFSM Santiago.
21Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Anular 3
Reintentar 4
Omitir 5
Si 6
No 7
Y dado que es una función se programa como tal. Ejemplo:
Se mostrará:
Existen más opciones de formato de botones, en esta sección se expusieron lo que se
consideraron fundamentales.
Agregar un Título: se debe ingresar posterior al formato escogido. Por ejemplo,
(Caso de utilizar el msgbox como sólo un mensaje)
(Caso de utilizar el msgbox como función)
En el último ejemplo se mostrará,
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
23/119
Hormigón Armado I, UTFSM Santiago.
22Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.6.2. Concatenar (&)
Esta herramienta sirve para juntar varios textos distintos y a su vez variables numéricas dentro un
texto. En las planillas de cálculo ésta opción se puede utilizar mediante la siguiente forma
=1,2,… En el caso de la programación cuando se requiera unir textos con valores numéricos, sea esto para
una variable o algún mensaje, para esto se debe utilizar el carácter “&”, un ejemplo clásico es aldefinir una celda
En el ejemplo anterior el mensaje de texto mostrará el valor de la variable TipoAcero:
3.7.
Manejo de Arreglos (Matrices).
La utilización de los arreglos es un aspecto fundamental que debemos conocer y aplicar. Las
principales razones de que son de gran utilidad son:
Para realizar operaciones matemáticas.
Orden de nuestras variables.
Hacer códigos más eficientes.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
24/119
Hormigón Armado I, UTFSM Santiago.
23Tutorial - Ignacio Mayorga / Ignacio Ruiz.
El último aspecto es de gran importancia dado que la experiencia nos dice que el uso de matrices
mejora considerablemente el tiempo de ejecución de una rutina.
Para comenzar, un arreglo es una variable que almacena datos ordenados en columnas y filas. En
el caso de tener un arreglo con solamente filas hablaremos de un vector. Y en su defecto
estaremos utilizando una Matriz.
3.7.1. Declaración de un Arreglo
Visual Basic tiene dos formas de declarar un arreglo, que es:
En ambos casos son vectores que almacenan datos tipo Double. En lo que difieren ambas formas
es que en el primer caso se tiene un elemento más, dado que considera que el elemento
PrimeraForma(0).
La manera de llenar dichos vectores as asignándole un valor a una cierta posición del arreglo, es
decir:
Para el caso de querer declarar una matriz (filas y columnas) es análogo.
Al igual que el ejemplo del vector, se difiere sólo en que en el primer caso considera un elemento
más, debido a que toma desde el elemento cero.
La forma de llenar el arreglo es análogo al caso del vector, es decir:
3.7.2. Dimensiones de un arreglo
Para conocer la dimensión que tiene un arreglo utilizaremos la función UBound, esta nos entrega
el índice del último valor del arreglo.
En el caso de los Vectores definidos previamente al utilizar:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
25/119
Hormigón Armado I, UTFSM Santiago.
24Tutorial - Ignacio Mayorga / Ignacio Ruiz.
ó
Obtendríamos en ambos casos el número 10, debido a que para ambos vectores el últimoelemento está en la posición 10.En el caso de estar interesados en conocer la cantidad de filas y columnas que tiene una matriz, el
procedimiento es el mismo, pero se debe especificar si se quiere conocer las filas o las columnas,mediante el número 1 ó 2 de la siguiente forma.
Lo que obtendríamos en el caso anterior sería 10 y 5.También es bueno conocer la función Lbound, que entrega el índice del primer elemento del
arreglo. Funciona igual que la función Ubound. Es decir si utilizamos:
Esto para el caso de preguntar por los Vectores. Se entregan valores distintos debido a que como
se mencionó anteriormente, uno parte desde cero y el otro desde uno. Dependiendo de cómo se
definieron.
3.7.3. Redimensionar un Arreglo
Puede que inicialmente no conozcamos la dimensiones que tendrá el vector o matriz que
utilizaremos, para esto existe la función Redim y Redim Preserve.
La función Redim se utiliza para redimensionar un arreglo, por ejemplo:
En el caso anterior se observa que se redimensionó la matriz a una que tuviese una fila y una
columna más. Para el uso de esta función se debe tener en cuenta lo siguiente:
La función Redim no conserva los valores previos, borra y asigna dimensiones nuevas.
Para que se pueda utilizar, el arreglo tuvo que previamente ser definido como SIN
DIMENSIONES, es decir de la siguiente forma:
La función Redim Preserve se utiliza para redimensionar un arreglo pero CONSERVANDO los
valores almacenados. Por ejemplo:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
26/119
Hormigón Armado I, UTFSM Santiago.
25Tutorial - Ignacio Mayorga / Ignacio Ruiz.
En este caso se agregó una columna. Para el uso de esta función se debe tener en cuenta lo
siguiente:
Solo se pueden redimensionar la cantidad de columnas.
En este caso también se debe haber definido el arreglo como sin dimensiones.
Comentario: la función Redim Preserve, es de gran utilidad debido a que muchas veces no
tendremos certeza de cuántos elementos tendrá la matriz a utilizar. el siguiente ejemplo se
muestra el uso de la función Redim Preserve.
Ejemplo función Redim Preserve:
Se llenará una matriz que contenga los datos de la siguiente tabla:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .4: datos que contendrá lamatriz creada.
La intención de este ejemplo es crear una matriz que almacene los datos la tabla mostrada. Ahora
bien, la gracia es que se hará genérica de modo que si la tabla de datos tuviese una fila más, la
matriz pudiese tomarla.
El código es:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
27/119
Hormigón Armado I, UTFSM Santiago.
26Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Entonces se observa que lo que se hizo es:
Declarar la Variable Viga_Ancho_Alto como un arreglo SIN DIMENSIÓN. Para así
posteriormente poder utilizar la función Redim Preserve.
Se entrará al Do While, siempre y cuando la celda no esté vacía. Esto es por que como
queremos que la matriz contenga todos los datos que yo llene en la tabla, debemos saber
cuándo parar.
Como se mencionó previamente, la función Redim Preserve solo permite redimensionar la
cantidad de columnas, por lo que en verdad uno está haciendo es agregando los datos de la
tabla de una forma Traspuesta. Es decir, si uno puede ver el contenido de la matriz creada
sería así:
Por ende los mensajes por pantalla que mostraría sería 3 5. Que corresponden a tres filas y cincocolumnas.
3.7.4.
Pegar un arreglo en una hoja de cálculo
Muy útil para visualizar los resultados obtenidos es pegar los datos de un arreglo en una hoja de
cálculo.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
28/119
Hormigón Armado I, UTFSM Santiago.
27Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Una formar de hacer esto es recorriendo todo el arreglo e ir vaciando su contenido en celdas.
Mediante el uso de la sentencia For esto es sencillo. Sin embargo no es la forma más eficiente.
Una manera óptima de hacerlo es seleccionado un rango y pegando los datos. (mucho más rápido
que corriendo todos los elementos de la matriz y pegando uno a uno).
Se selecciona el rango donde se mostrarán los valores, para esto hay que conocer las dimensionesde la matriz, se utilizará la función UBound:
Donde el rango es:
Se utilizó la función Range para seleccionar el rango. La celda 11,2 que corresponde a la "B11".se asignó porque ahí se copiarán los datos.
Ahora bien los datos se copiarán tal cual están en la matriz. Y como se comentó anteriormente
estos están transpuestos a los originales. Por lo que si se desea pegar los datos como estaban
originalmente se puede ocupar la función de Excel Transponer. Como se muestra a continuación.
Donde Rango es:
Corriendo el código lo que se obtiene es:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
29/119
Hormigón Armado I, UTFSM Santiago.
28Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .5: Se muestra loobtenido de mostrar los datos de una matriz en una hoja de cálculo.
Lo que se hizo en este ejemplo fue:
Crear una matriz general para la cantidad de filas que se tengan en la tabla que comienza
en la celda "B2".
Almacenar los datos en esta matriz.
Mostrar los datos a través de una hoja de cálculo. Mostrarlos según distribución del
arreglo y la transpuesta de éste.
3.8. Manejo de Cadenas de Texto.
En este apartado se verán algunas funciones para trabajar las cadenas de texto (Strings). El buen
manejo de las cadenas de texto facilita a los usuarios a crear rutinas que apunten a manejo dedatos, modificación de archivos, creación de archivos, lectura, etcétera.
Las principales funciones son:
Para los ejemplo se usará la cadena de texto:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
30/119
Hormigón Armado I, UTFSM Santiago.
29Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.8.1.
Función REPLACE
Remplaza un caracter de una cadena de texto por otro a elección. Por ejemplo, al utilizar:
Se mostrará por pantalla el texto:
3.8.2.
Función LEN
Entrega la cantidad de caracteres que posee la cadena de texto. Por ejemplo:
Se obtiene 33.
3.8.3.
Función SPLIT
Crea un vector que almacena lo filtrado de una cadena. La dimensión que se asigna al vector
depende de la cantidad de particiones en que queda la cadena después del filtro.
A modo de ejemplo, si uno utiliza:
El mensaje por pantalla mostrará 4. Debido a que se filtró todo lo que no lleva espacio " ". Porende los elementos del vector generado serán:
3.8.4. Función LEFT
Devuelve la parte de la cadena que se encuentra a la izquierda de la posición indicada.
Considerando el caracter de la posición indicada. Por ejemplo, al utilizar:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
31/119
Hormigón Armado I, UTFSM Santiago.
30Tutorial - Ignacio Mayorga / Ignacio Ruiz.
En la posición 12 se encuentra la letra "" de "". Por ende se mostrará:
3.8.5.
Función RIGHT
Devuelve la parte de la cadena que se encuentra a derecha de la posición indicada. La posición se
contabiliza del último caracter hacia la izquierda. Considerando el caracter de la posición indicada.
Por ejemplo, al utilizar:
En la posición 15 de derecha a izquierda se encuentra la letra "" de "ó". Por ende semostrará:
3.8.6.
Función MID
Con esta función se puede extraer parte de una cadena. Se debe seleccionar la posición desde
donde se comenzará a extraer, y la cantidad de caracteres a extraer. Por ejemplo:
En la posición 10 se encuentra la letra "" de "". Y como se extraerán 3 caracteres semostrará:
3.8.7.
Función INSTR
Devuelve la posición de una caracter especificado, dentro de una cadena. En caso que el caracter
esté más de una vez, solo devolverá la primera posición. por ejemplo:
La letra "" se encuentra en las posiciones 7, 12, 15, 17 31. Notar que esta función es sensible alas mayúsculas, y no considera el caracter "" igual a "". Lo que mostrará por pantalla será 7.debido que es la primera posición donde se encuentra el caracter buscado.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
32/119
Hormigón Armado I, UTFSM Santiago.
31Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.8.8.
Función JOIN
Función para vectores que sirve para unir los elementos de un vector. Por ejemplo:
Se unirá "ó" con "", mediante una separación " ".
3.8.9. Función LCASE
Función que cambia de mayúsculas a minúsculas. Por ejemplo:
Se mostrará:
3.8.10. Función UCASE
Función que cambia de minúsculas a mayúsculas. Por ejemplo:
Se mostrará:
3.9. Manejo de Archivos de Textos
En esta sección se verá los aspectos básicos de manejar archivos de texto. La utilidad que tieneesto apunta a que muchos de los programas que utilizamos en ingeniería civil permiten exportar
sus datos en un formato de texto. Por ende aprender a manejar estos archivos y complementando
con el manejo de cadenas de texto puede ser de gran utilidad.
Entonces, a modo de motivación la razones del porqué aprender esto:
Poder leer y manipular la información que exportan los programas.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
33/119
Hormigón Armado I, UTFSM Santiago.
32Tutorial - Ignacio Mayorga / Ignacio Ruiz.
El mantener la información en archivos de texto hace que las planillas de Excel no estén
colapsadas implicando rutinas más eficientes en velocidad.
3.9.1. Abrir un Archivo de Texto
para abrir un archivo de texto es necesario conocer la dirección donde se encuentra. Para esto seutilizará una función de muy útil. La función ℎ.ℎ entrega la ruta donde seencuentra el libro de Excel que se está utilizando. Por ejemplo:
Mostrará que el archivo que estoy utilizando está en el escritorio (dado que ahí lo tengo
guardado).
Ahora bien, supongamos que se quiere abrir un archivo de texto que se llama
y se
encuentra en la carpeta que está en el escritorio con nombre . Se debe hacer de la siguienteforma:
Tener en consideración:
Se creó una variable tipo texto que incluye la dirección en formato que utiliza . Notarque al final de la dirección tiene que estar especificado que el archivo corresponde a unaarchivo de texto, por eso la extensión ..
hace referencia a que el archivo será abierto para ser leído, no para poder escribirsobre este.
# hace referencia al nombre de archivo abierto, para efectos de código, y como severá un poco más adelante, VBa tratará a este archivo abierto como número 1.Se pueden tener muchos archivos de texto abiertos a la vez.
El archivo se encontrará abierto pero de forma interna, es decir como usuarios no
notaremos que el archivo está abierto debido a que no se abre ninguna pestaña en el
computador.
3.9.2.
Leer un Archivo de Texto
Una vez que se ha abierto el archivo, se está en condición de comenzar a leerlo. La forma de hacer
esto:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
34/119
Hormigón Armado I, UTFSM Santiago.
33Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Donde:
hace referencia a que se hará lo que se especifica hasta que elarchivo llegue a su fin. (END OF FILE). El número 1, es porque es el archivo número 1. Seculmina con .
#, se refiere a leer una línea y asignársela a la variable cadena.
Por ende se recorre el archivo de texto y cada línea pasa a ser tomada por una variable que se
llamó cadena. Teniendo la línea como cadena de texto asignada en una variable se puede trabajar
ésta mediante lo que se aprendió en (Manejo de Cadenas de Texto.)
3.9.3.
Escribir un Archivo de Texto Nuevo:
En este caso se debe abrir el archivo de texto en el cual se va a escribir, este puede o no existir, de
no existir lo crea. Por ende ya no sería de la forma , tal como se muestra acontinuación:
Considerar qué:
hace referencia a que el archivo que se abrirá será utilizado para escribir. Si el archivo ya existe y se abre como se borrará todo lo que éste contiene. #, "" se refiere a escribir el texto. cada vez que se utiliza #, "" es una línea nueva. Por ende en este caso se
tendría:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
35/119
Hormigón Armado I, UTFSM Santiago.
34Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .6: resultado de escribiren un archivo de texto.
3.9.4. Escribir un Archivo de Texto Conservando lo Almacenado
En este caso se debe abrir el archivo de texto en el cual se va a escribir conservando lo que ya
tiene. Solo se podrá escribir sobre el archivo de texto y no leerlo.
Considerar qué:
hace referencia a que el archivo se abrirá para seguir escribiendo sobre este. El texto nuevo se escribirá a continuación del existente. Es decir por debajo de la última
línea.
3.9.5. Ejemplo de Utilidad
Supongamos tenemos un registro de aceleración basal del terremoto del 2010, denominado
concepción. La fuente es una estación que contiene la implementación de un acelerógrafo.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
36/119
Hormigón Armado I, UTFSM Santiago.
35Tutorial - Ignacio Mayorga / Ignacio Ruiz.
El formato del registro está en un archivo de texto, como se muestra en la siguiente imagen:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí..7: registro deconcepción.
Donde,
En la primera columna corresponde al tiempo y la segunda a la aceleración percibida en /2. Seobserva que los datos están separados por un espacio.
Si se desea extraer estos datos y graficarlos en Excel para ver el tiempo historia sería:
Se observa qué:
Se abrió el archivo de texto para ser leído.
Se declaró una matriz que irá almacenando todos los datos que contenga el archivo de
texto. Esto se aprendió en la sección Manejo de Arreglos (Matrices).
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
37/119
Hormigón Armado I, UTFSM Santiago.
36Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Se utilizó el manejo de cadenas para poder trabajar con la información que contenía el
archivo de texto. Esto se aprendió en la sección Manejo de Cadenas de Texto.
Ahora bien, como ya se tiene una matriz que contiene todos los gráficos, se puede pasar dicha
matriz a una hoja de cálculo y mostrar la gráfica de los datos obtenidos. La forma de pasar los
datos de una matriz a la hoja de cálculo se explico en la sección Manejo de Arreglos (Matrices).
Se obtiene:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .8: resultado de graficarlos datos de la matriz registro aceleración.
3.10.
Funciones Útiles de Microsoft Excel
En esta sección se presentarán algunas funciones útiles de Microsoft Excel, pensando en ser
utilizadas y llamadas desde Visual Basic.
3.10.1. Grabar Macro
Microsoft Excel presenta una herramienta de gran utilidad que permite grabar lo que uno realiza
en las hojas de cálculo, con el fin de posteriormente realizar la misma acción nuevamente. La idea
es que se utilice para rutinas que son repetitivas.
Pero la gran característica que posee es que al momento de ser grabada la acción todo queda
registrado como una rutina que se almacena con el nombre de en lenguaje VisualBasic. El siguiente ejemplo muestra la utilidad de esto:
Para comenzar a grabar Macro, ir a →→ …
-5
-3
-1
1
3
5
0 10 20 30 40 50 60 70 80 90 100
A
c e l e r a c i ó n [ g ]
Tiempo [seg]
Tiempo historia
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
38/119
Hormigón Armado I, UTFSM Santiago.
37Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .9: herramienta de Excelque permite grabar una rutina y después visualizar su código.
Se abre una ventana emergente que solicita al usuario ingresar el nombre con cual se grabará la
rutina. Esta se grabará en el ambiente de Visual Basic sección Módulos. Se aprendió en la sección
Ambiente Visual Basic.
Posterior a esto ya se está grabando todo y escribiendo instantáneamente lo que uno realice en
una rutina Sub. Por ejemplo, supongamos que ya se realiza lo que se observa a continuación:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .10: ejemplo de grabaruna Macro.
Para detener la grabación se debe ir a → → … Luego ahí mismo sepuede acceder a ver lo grabado, poner →→ …→. Y se verálo siguiente:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
39/119
Hormigón Armado I, UTFSM Santiago.
38Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Si se observa se grabó todo lo que se ejecutó. Ahora bien, el lenguaje en el cual se graba quizás nova muy de la mano de cómo se ha enseñado en este tutorial, dado que existen muchas formas de
hacer lo mismo. Por ejemplo, el siguiente código realiza lo mismo, pero más acorde a lo que se ha
enseñado.
Que claramente es más legible.
Comentario: el uso de esta herramienta es muy potente, debido a que permite al usuario a hacer
mucho sabiendo poco, es simplemente grabar cosas, verlas, modificarlas un poco y en términos
concreto copiarlas. Para cuando uno está aprendiendo es fundamental.
3.10.2.
BuscarV –
BuscarH
Esta función busca un valor específico en la primera columna de una matriz de tabla y devuelve, en
la misma fila, un valor de otra columna de dicha matriz de tabla. La V de BUSCARV significa
vertical. Utilicar BUSCARV en lugar de BUSCARH si los valores de comparación se encuentran en
una columna situada a la izquierda de los datos que desea buscar.
= buscarVvalor_buscado;matriz_buscar_en; indicador_columnas; ordenado
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
40/119
Hormigón Armado I, UTFSM Santiago.
39Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Donde sus parámetros de entrada son:
Valor_buscado: valor que se buscará en la primera columna de la matriz de tabla.
Valor_buscado puede ser un valor o una referencia. Si valor_buscado es inferior al menor
de los valores de la primera columna de matriz_buscar_en, BUSCARV devuelve al valor de
error #N/A.
Matriz_buscar_en: dos o más columnas de datos. Use una referencia a un rango o un
nombre de rango. Los valores de la primera columna de matriz_buscar_en son los valores
que busca valor_buscado. Estos valores pueden ser texto, números o valores lógicos. Las
mayúsculas y minúsculas del texto son equivalentes.
Indicador_columnas: número de columna de matriz_buscar_en desde la cual debe
devolverse el valor coincidente. Si el argumento indicador_columnas es igual a 1, la
función devuelve el valor de la primera columna del argumento matriz_buscar_en; si el
argumento indicador_columnas es igual a 2, devuelve el valor de la segunda columna de
matriz_buscar_en y así sucesivamente.
Si indicador_columnas es:
o Inferior a 1, BUSCARV devuelve al valor de error #VALUE!o Superior al número de columnas de matriz_buscar_en, BUSCARV devuelve el valor
de error #REF!
Ordenado: valor lógico que especifica si BUSCARV va a buscar una coincidencia exacta o
aproximada:
o
Si se omite o es VERDADERO, se devolverá una coincidencia exacta o aproximada. Si
no localiza ninguna coincidencia exacta, devolverá el siguiente valor más alto inferior a
valor_buscado.
Los valores de la primera columna de matriz_buscar_en deben estar clasificados según
un criterio de ordenación ascendente; en caso contrario, es posible que BUSCARV no
devuelva el valor correcto. Para obtener más información, vea Ordenar datos.
o Si es FALSO, BUSCARV sólo buscará una coincidencia exacta. En este caso, no esnecesario ordenar los valores de la primera columna de matriz_buscar_en. Si hay dos
o más valores en la primera columna de matriz_buscar_en, se utilizará el primer valor
encontrado. Si no se encuentra una coincidencia exacta, se devolverá el valor de error#N/A.
3.10.3. K.esimo.mayor & K.esimo.menor
Devuelve el valor k-ésimo mayor (o menor) de un conjunto de datos:
http://appendpopup%28this%2C%27837837018_1%27%29/http://office.microsoft.com/es-es/excel-help/redir/HP010073947.aspx?CTT=5&origin=HP010069835http://office.microsoft.com/es-es/excel-help/redir/HP010073947.aspx?CTT=5&origin=HP010069835http://appendpopup%28this%2C%27837837018_1%27%29/
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
41/119
Hormigón Armado I, UTFSM Santiago.
40Tutorial - Ignacio Mayorga / Ignacio Ruiz.
=K.esimo.mayomatriz;k.esimo_buscado
3.11. Manejo de Celdas
Las celdas de las planillas se pueden declarar de dos formas distintas. Mediante la denotación decelda o mediante un rango, este último puede seleccionar más de una celda.
3.11.1. Referenciar una Celda mediante Cells().
En este caso se debe conocer el número de Fila y de Columna a la cual se quiere referenciar. En la
interfaz clásica de Hoja de Excel, se tiene que por el costado izquierdo están numeradas las filas,
mientras que por el costado superior se tienen las letras de las diferentes columnas.
La forma de referencial la celda es:
Como en este caso se requiere conocer el número de la fila (no la letra). Para esto, en vez de
contar las leras es conveniente seleccionar el rango, y Excel arroja el número de filas.
Ejemplo:
Se requiere asignar el valor de la Celda "5" a la variable (previamente definida) . Entonces se tiene:
Número de la fila: 5 Número de la columna: ¿ ? → dos opciones, contar o seleccionar rango y que nos diga el
propio Excel la fila.
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí..11: seleccionando unrango se obtiene el número de la columna que tiene cierta celda. En el ejemplo la celda “AA5”
Ya sabiendo la fila y la columna de la celda a referenciar se lleva a código.
Ventaja
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
42/119
Hormigón Armado I, UTFSM Santiago.
41Tutorial - Ignacio Mayorga / Ignacio Ruiz.
La ventaja de referenciar una celda de este modo es que es de fácil uso para códigos en que es
necesario variar la celda. Porque dado que se ingresa la fila y la columna, estos perfectamente
podrían tener un valor variable que permita el poder recorrer una tabla de datos, por ejemplo.
3.11.2.
Referenciar una Celda o Rango Mediante Range()
Otra forma de referenciar una celda es mediante la letra de su columna y el número de su fila. De
la siguiente forma:
Para el caso de referenciar un rango se denota de la siguiente forma:
Ahora bien, con lo ya aprendido, la celda uno y dos las podemos escribir como Cells() o comoRange(). Además se puede asignar mediante la notación que ocupa Excel para un Rango. Ver el
siguiente ejemplo.
Ejemplo de uso:
Es muy común trabajar con matrices en los códigos. Por ende, si se requiere asignar a una matriz
un rango de una hoja, una alternativa sería hacerlo de la siguiente forma:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .12: tabla de una hoja deExcel que pasará a ser una matriz mediante Range().
Por lo tanto el Rango que se desea utilizar es desde la celda 4 a la 8. Por ende según lo antesexplicado se tiene:
Celda 1: 4 Celda 2: 8
Para el código, se creará una matriz que se llamará Geometría_Vigas y se le asignará el rango
mencionado.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
43/119
Hormigón Armado I, UTFSM Santiago.
42Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Los tres casos cumplen con el objetivo, creándose una Matriz de 5 filas y 4 columnas. En donde suprimera columna será el nombre de la viga, la segunda el alto, tercera el ancho y cuarta el
recubrimiento.
Importante
La variable Geometría_Vigas no debe ser previamente declarada (Dim G…). Todo lo referente a
matrices se verá en un apartado posterior.
Ventajas
Las ventajas de preferir usar Range() antes que Cells() son:
Para el caso de querer referenciar una celda en específico y que ésta no variará (celda fija).
Es conveniente ocupar Range() debido a que el código queda más legible. (es más fácil
encontrar la celda "AA56" que la celda 56,27). Para llenar Matrices es de gran utilidad.
3.12.
Rutina Buscar Objetivo
Esta función de Excel es una de las más potentes que posee este programa y de gran utilidad. Loque hace es variar el valor de una celda, de tal manera que una segunda celda, la cual depende de
la primera, obtenga un valor dado específico.
La función es muy útil en los casos donde la variable buscada no se logra despejar explícitamente
de una ecuación, sino que está implícita en ella y para la obtención de ésta se requiere hacer
iteraciones.
3.12.1.
Buscar Objetivo, función de Excel.
La función es propia de Excel y se puede utilizar yendo a Datos → Análisis → Buscar Objetivo… Ejemplo:
Se tiene una Función que depende de la variable . Se quiere que la función sea igual a 45. Nota: se tiene la opción de hacer la función objetivo a la celda C3 variando la celda B3. Sin
embargo, lo que se hará será crear en otra celda el delta entre lo obtenido y lo que se desea
obtener, y a ésta función aplicar Buscar objetivo variando la celda B3.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
44/119
Hormigón Armado I, UTFSM Santiago.
43Tutorial - Ignacio Mayorga / Ignacio Ruiz.
¿Por qué esto?, la razón del porqué es debido a que muchas funciones que se utilizan son muy
complejas, lo que hace dificultoso que Excel dé con el valor exacto que cumpla la condición. Es por
esto que creando una celda como el diferencial uno puede asignar una tolerancia, ¿cómo?,
asignando a la celda E3 la siguiente fórmula:
De este modo, se dejará de iterar cuando el F(x) buscado con el F(x) obtenido difieran en la
centésima.
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .13: función buscarobjetivo.
Se observa en el ejemplo anterior que la función requiere:
Definir la celda: corresponde a la celda a la cual se obtendrá el valor deseado.
Con el Valor: corresponde al valor deseado.
Cambiando la celda: corresponde a la celda que se iterará su valor.
Al apretar aceptar comienza la iteración que es bastante rápida.
Nota: hay funciones que tiene más de una solución. Y Buscar Objetivo no detecta esto, solamente
se detiene al momento en que encuentra la primera. Por ende es recomendable comenzar la
iteración (dejar el valor de x en este caso) en un valor cercano al esperado.
3.12.2. Buscar Objetivo, programada en Visual Basic A.
Al ser la función Buscar Objetivo una iteración de una variable que se detiene al encontrar un
resultado. Es posible programar una rutina que haga lo mismo y que incluya la sentencia “Do
While”. Sin embargo nuestra experiencia nos dice que los resultados de hacer esto no son mejores
que la función Buscar Objetivo, debido al tiempo en la obtención del resultado.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
45/119
Hormigón Armado I, UTFSM Santiago.
44Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Es por esta razón que es preferible utilizar la función Buscar Objetivo en una hoja de cálculo, pero
programarla por dentro.
La manera de declarar esta función desde VB es la siguiente:
Donde,
La primera celda corresponde a la celda donde se espera el valor.
“valor” corresponde al valor esperado
Y la segunda celda en la celda que se iterará.
La mayor utilidad que tiene definir la función mediante VB, es que permite generar varias
funciones objetivos. Cómo se verá en el siguiente ejemplo:
Supongamos que en el ejemplo anterior se desea utilizar la función Buscar Objetivo para más de
una celda:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .14: función buscarobjetivo, para múltiple celdas.
Para esto se requiere de la siguiente programación:
Que ejecutará la función objetivo en todas las filas requeridas y de manera rápida.
3.13. Funciones matemáticas de VB.
Es necesario saber cómo aplicar algunas herramientas matemáticas esenciales, como lo pueden
ser el cálculo de un coseno, seno o un logaritmo entre otros, para esto existe una herramienta
matemática la cual ofrece de manera sencilla todas las opciones disponibles. Para ocupar esta
herramienta se declara de la siguiente manera:
Sin embargo para la aplicación no es necesario anteponer Math.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
46/119
Hormigón Armado I, UTFSM Santiago.
45Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Las funciones matemáticas más utilizadas son:
FUNCIÓN DESCRIPCIÓN
Abs Devuelve el valor absoluto de un número.
Acos Devuelve el ángulo cuyo coseno es el número especificado.
Asin Devuelve el ángulo cuyo seno es el número especificado.Atan Devuelve el ángulo cuya tangente corresponde al número especificado.
Ceiling Devuelve el valor entero más pequeño que es mayor oigual Decimal especificado o Double.
Cos Devuelve el coseno del ángulo especificado.
Cosh Devuelve el coseno hiperbólico del ángulo especificado.
Exp Devuelve e (base de los logaritmos naturales) se produce a la potenciaespecificada.
Floor Devuelve el entero más grande que sea menor o igual queDecimal o el númeroespecificado de Double.
IEEERemainder Devuelve el resto que es el resultado de la división de un número especificadopor otro número especificado.
Log Devuelve el logaritmo natural (de e base) de un número especificado o ellogaritmo de un número especificado en una base especificada.
Log10 Devuelve el logaritmo en base 10 de un número especificado.
Max Devuelve el mayor de dos números.
Min Devuelve el menor de dos números.
Round Devuelve un valor de Decimal o de Double redondeado al valor entero máscercano o a un número especificado de dígitos fraccionarios.
Sin Devuelve el seno del ángulo especificado.
Sinh Devuelve el seno hiperbólico del ángulo especificado.Sqrt Devuelve la raíz cuadrada de un número especificado.
Tan Devuelve la tangente del ángulo especificado.
Tanh Devuelve la tangente hiperbólica del ángulo especificado.
Truncate Calcula la parte entera de Decimal o un número especificado de Double.
Tabla 1: funciones matemáticas de Visual Basic.
3.14. Funciones de Excel
De igual manera que en la sección anterior, se pueden utilizar funciones utilizadas frecuentementeen una planilla de Excel. Es importante tener esto en consideración debido a que Excel contiene
una infinidad de funciones que pueden ser usadas en VB.
Para utilizar estas funciones es necesario ingresar el siguiente código:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
47/119
Hormigón Armado I, UTFSM Santiago.
46Tutorial - Ignacio Mayorga / Ignacio Ruiz.
3.15. Manejo de Errores
Los errores pueden provenir de un gran espectro de posibilidades, las cuales tengan que ver con la
programación en sí. Por ejemplo el caso de no definir una variable, o errores matemáticos como
tener una división por 0, son los errores más recurrentes.Generalmente la mayoría de los errores los detecta e informa al usuario mediante unaventana emergente como la siguiente:
Que sería en el caso que por algún motivo se haya ejecutado una división por cero. Se observa que
en este caso es bastante específico .Los errores más recurrentes son:
División por cero: dirá explícitamente División por cero.
Tipo de variable: este error ocurre cuando una variable toma un tipo de dato que no lecorresponde. Por ejemplo declarar una variable como y asignarle un valor detexto. dirá que No coinciden los tipos.
Error matricial: en el caso que se llame a un índice de una matriz, pero que este no exista.
Por ejemplo un vector de cinco elementos y que se llame a un elemento seis. diráque Sub índice fuera del intervalo.
Entre muchos otros, siendo estos del tipo ejecución. Muchos de estos los detecta y da laalternativa de ir a la sección de código donde se encuentra la falta. ¿cómo? mediante el botón
depurar, que lo que hace, es amistosamente dirigirnos a la parte del código que se encuentra la
inconsistencia y no solo eso sino que además la destaca en amarillo. Muy útil.
Sin embargo, existe un sin fin de situaciones donde no se puede acceder a depurar, y es acá
cuando empiezan los dolores de cabeza intentando descubrir el error. Que por cierto no tiene
porque ser un error que interrumpa la ejecución sino que podría ser un error que haga que los
resultados no sean válidos. Entonces, cabe preguntarse, ¿qué hacer en estos casos?, intentar
descubrirlo, no queda otra. Una forma de encontrar de manera rápida el error es apoyándose en
los mensajes de texto, ubicarlos en ciertas partes del código de modo de saber hasta dónde está
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
48/119
Hormigón Armado I, UTFSM Santiago.
47Tutorial - Ignacio Mayorga / Ignacio Ruiz.
corriendo bien, dado a que si el mensaje se muestra sabremos que el código se ejecutó hasta ahí.
O mostrar una variable en específico, para saber si se está considerando bien, etcétera. Son de
gran utilidad.
3.15.1. Evitar que los Errores Deriven en Mostrar el Código
Para programaciones más elaboradas donde no es deseable que al ocurrir un error el usuario
visualice el código, existe la alternativa de manejar los errores en tiempo de ejecución.
Para esto existen funciones de como: : que como su traducción indica, en caso de haber error no se continúa y
se salta a donde especifique el programador. De este modo, podría por ejemplo pedírsele
al usuario que vuelva a comenzar porque ha ocurrido un error.
A modo de ejemplo:
La imagen anterior muestra una interfaz gráfica que claramente al apretar el botón se
obtendrá un error. Para evitar el error se utilizará
como se muestra a
continuación.
Donde:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
49/119
Hormigón Armado I, UTFSM Santiago.
48Tutorial - Ignacio Mayorga / Ignacio Ruiz.
o direcciona a la línea ___. Esta línea debe llevarlos dos puntos.
o se utiliza para terminar la ejecución del . De no poner esto, seejecutaría de todas forma el mensaje.
: en este caso, de haber error se omite y el código continúa enla siguiente línea. Es la forma más sencilla para evitar que salte la ventana emergente de
error de , pero de este modo el usuario no se da cuenta que hubo un error y podríainterpretar mal la información.
El código sería:
Y en el caso de ingresar un valor negativo, no se mostraría el mensaje por pantalla
diciendo : dado que el error estaría en esa línea y se la saltaría. Pero alingresar una letra, se mostraría como respuesta cero, dado que el error se produce al
asignarle valor a la variable , por ende al saltarse esta línea, ésta nunca obtuvo unvalor.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
50/119
Hormigón Armado I, UTFSM Santiago.
49Tutorial - Ignacio Mayorga / Ignacio Ruiz.
4 Interfaz Gráfica de VB
En esta sección se verán los aspectos necesarios para poder lograr una interfaz gráfica que
incorpore los diferentes objetos que presenta Visual Basic para aplicaciones.
4.1.
Introducción a los Formularios (UserForm)
Los formularios (Userforms) corresponden a la interfaz gráfica que almacena los diferentes objetos
(recién mencionados) que dan vida y utilidad a éste.
4.1.1. Iniciando un Formulario
La manera de crear un UserForm es simplemente yendo a:
Insertar → UserFormEn la ventana de Visual Basic.
Con lo que se debería visualizar lo siguiente:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .15: creación de unformulario. Se observan los principales aspectos.
En la imagen anterior se observan varios aspectos importantes:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
51/119
Hormigón Armado I, UTFSM Santiago.
50Tutorial - Ignacio Mayorga / Ignacio Ruiz.
El formulario se crea con un nombre automático, que depende de la cantidad de
formularios existentes, en este caso, al ser el primero se llamó UserForm1.
En el recuadro en verde se pueden seleccionar el formulario que se desea. El contenido de
las diferentes carpetas que se observan en el recuadro verde se vio con mayor detalle en
la sección Ambiente Visual Basic.
El recuadro en rojo (cuadro de herramientas) es fundamental en el formulario, dado que
éste contiene a los objetos (Etiquetas, botones…) que se insertarán en el formulario. La
forma de abrir este cuadro es mediante el ícono que se observa en la imagen o yendo a
Ver → Cuadro de Herramientas. También se observa debajo del recuadro verde que están las propiedades del formulario,
esto se verá en una sección aparte.
4.1.2.
Programación en un Formulario
La programación de los formularios se basa a responder con algún código a alguna acción que sea
ejecutada en el formulario. Es decir, uno debe programar que cuando inicie el formulario corra
cierto código, que cuando se seleccione alguna opción se ejecute otro, y así.
Para hacer esto se debe entrar a la sección donde se programa, existen dos formas:
1.
Click derecho → Ver código
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .16: ingresar a la seccióndonde se programan los formularios.
2.
O simplemente Doble Click al fondo del formulario.
Se observará una hoja en blanco en donde uno puede comenzar a escribir las rutinas que se
utilizarán en el formulario (Funciones o Subs).
La hoja en blanco presenta las siguientes propiedades:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .17: sección donde seprograman los formularios.
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
52/119
Hormigón Armado I, UTFSM Santiago.
51Tutorial - Ignacio Mayorga / Ignacio Ruiz.
En la imagen anterior se observan dos características muy importantes en lo que es la
programación de un formulario. Se presentan como cuadros combinados (permiten seleccionar
una opción). Estos son:
Cuadro Combinado de la izquierda (color verde): En este cuadro permite seleccionar lo
siguiente:
o (General): caen todas las rutinas declaradas como Sub y Funciones. Al asignar estasección, en el cuadro combinado de la derecha (color rojo) se cargarán todas las
funciones y rutinas que hay en el formulario.
o Objetos: caen todos los objetos creados en el formulario (botones, etiquetas,Imágenes, etcétera). Además del formulario en sí, que también tiene acciones
(como cuando se abre, cuando se cierra, etcétera). Al seleccionar algún objeto, en
el cuadro combinado de la derecha (color rojo) se cargarán todas las acciones que
se pueden hacer este objeto.
Cuadro Combinado de la derecha (color rojo): este cuadro depende de lo seleccionado en
el cuadro anterior. En el caso de haber seleccionado (General) en el anterior, se mostrarán
acá las funciones o rutinas, seleccionado una se irá automáticamente a la parte de la hoja
que contiene ésta. En el caso de haber seleccionado un objeto, acá se mostrarán las
acciones que se pueden hacer con éste, al seleccionar una se abrirá instantáneamente un
código que permite programar en caso que se haga dicha acción. Esto se verá más
detalladamente en la sección posterior.
Tener esto presente es muy útil al momento de agilizar el encontrar una rutina y o función en
específico (caso de tener códigos muy extensos).
4.2.
Objetos (Controles)
En esta sección se mostrará los diferentes tipos de objetos que le dan vida a los formularios. Se
verán los principales aspectos que permiten comprender la utilidad de cada uno de estos.
Los objetos que se verán son:
Etiqueta (Label)
Cuadro de Texto (Text Box)
Cuadro Combinado (Combo Box)
Cuadro de Lista (List Box)
Casillas (Check Box)
Botón de opción (Option Button)
Marco (Frame)
Botón de Comando (Command Button)
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
53/119
Hormigón Armado I, UTFSM Santiago.
52Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Barra de Tabulaciones (Tab Strip)
Página Múltiple (Multi Page)
Barra de Desplazamiento (Scroll Bar)
Botón de Número (Spin Button)
Imagen (Image)
La creación de un objeto en el formulario se hace mediante el cuadro de herramientas que se
explicó en la sección Iniciando un Formulario.
4.2.1. Programación de la rutina de respuesta a una acción de un objeto
El apretar un botón, ingresar una tecla, iniciar un formulario, terminar un formulario, posicionar el
mouse sobre una etiqueta, seleccionar algo. Son algunos ejemplos de lo que en éste formularios
llamaremos como Acciones.
Estas acciones actúan sobre los objetos o formularios, y la forma de declarar una respuesta
(código) a una acción es la siguiente:
En la sección anterior se comentó que al seleccionar el un objeto en el recuadro
combinado de la izquierda (ver Programación en un Formulario). En el recuadro
combinado de la derecha aparecían todas las acciones de dicho objeto. Y al hacer click en
una se abría el código en el cual se puede especificar la respuesta.
Ejemplo:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .18: ir a la sección dondese programa la respuesta a una acción.
Se observa que se seleccionó el objeto TextBox1 y se desea programar la respuesta
cuando la acción sea que éste cambie. Es decir, cada vez que el valor del cuadro de texto
1 cambie, se ejecutará la rutina que está dentro de:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
54/119
Hormigón Armado I, UTFSM Santiago.
53Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Del mismo modo se programan todas las respuestas a las acciones. Las acciones más utilizadas
son:
_Click():
Acción de clickear el objeto. Siempre utilizado en los botones de comando.
_Change():
Acción de que cambie de valor el objeto. Se utiliza en los objetos que pueden cambiar de
valor, como por ejemplo un cuadro de texto, un cuadro de lista, entre otros.
_AfterUpdate():
Acción de después que se actualizó de valor del objeto. Se asimila a Change() la diferencia
radica en que éste actúa después de haber cambiado todo el valor.
_mouseMove():
Acción de pasar el mouse por sobre el objeto.
_Initialize():
Acción de iniciar el formulario. Importante declarar acá por ejemplo los datos que cargan
el formulario.
_Terminate():
Acción de cerrar el formulario.
Existen otras, pero estas son las de mayor Utilidad.
4.2.2. Manejo de las propiedades de un objeto
Los objetos (etiquetas, cuadros de texto, botones, listas, etcétera) tienen propiedades como el
ancho, el alto, el estilo, el valor que toman, el si están o no habilitados, entre otros. Es importante
saber cómo manipular estos, para hacer un correcto uso del objeto en un formulario.
El lugar donde se controlan las propiedades es:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
55/119
Hormigón Armado I, UTFSM Santiago.
54Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .¡Error! Utilice la pestañaInicio para aplicar 0 al texto que desea que aparezca aquí..19: Ambiente Visual Basic, se observa un objeto (textbox)que se ha cambiado su propiedad Text.
En la imagen anterior se muestra que las propiedades del objeto TextBox se muestran en el
recuadro rojo. Las propiedades del objeto escogido están en el recuadro rojo.
Se observa que lo que se modificó es la propiedad Text del objeto TextBox1. Ahora bien, muchas
veces se requiere que en tiempo de ejecución se vean modificadas las propiedades de algún
objeto, la forma de hacer esto es la siguiente:
Se observa que primero se pone el formulario al cual pertenece el objeto, posterior el nombre del
objeto seguido de la propiedad que se quiere modificar. En este ejemplo se modificó lo mismo que
se hizo mediante el recuadro del ambiente de Visual Basic.
Ejemplo de aplicación
Se hará lo que se muestra en la siguiente Ilustración:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
56/119
Hormigón Armado I, UTFSM Santiago.
55Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Como se observa, lo que se hará es que al apretar el botón Bloquear/Desbloquear se activará la
propiedad Enabled (habilitado) del objeto textbox que se observa.
La forma de hacer esto es asignando un código a la acción de hacer click sobre el objeto "botón".
En la sección anterior (Programación de la rutina de respuesta a una acción de un objeto) se
explicó más a fondo este aspecto.
Entrando a la sección donde se programa la respuesta a la acción de clickear se pone el siguientecódigo:
Se observa que se utilizó en tiempo de ejecución el cambio de las propiedades Enabled y Caption.
De este modo se trabajan todas las propiedades que tienen los objetos.
Las propiedades más comunes y que muchas son generales para todos los objetos son:
Enabled: propiedad que hace referencia a si el objeto está habilitado o no (para ser
usado). Booleana, es decir True o False.
Visible: propiedad que hace referencia a si el objeto es visible o no. Es de tipo booleana.
Font: propiedad de la fuente de la letra. (Tamaño, tipo de letra, altura, estilo).
o En el caso del tipo de letra se debe especificar del siguiente modo:
o En el caso del tamaño de letra se debe especificar del siguiente modo:
o En el caso del estilo negrita o cursiva se debe especificar del siguiente modo:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
57/119
Hormigón Armado I, UTFSM Santiago.
56Tutorial - Ignacio Mayorga / Ignacio Ruiz.
o En el caso del color de letra se debe especificar del siguiente modo:
Height: la altura del objeto. Left: valor que especifica la posición horizontal del objeto, medido desde borde del
formulario o del “Frame”.
Locked: propiedad que hace referencia a si el objeto está bloqueado o no (para ser
usado). Booleana, es decir True o False. La diferencia con Enabled es que acá el objeto no
se pone de color opaco.
Top: valor que especifica la posición vertical del cuadro de texto, medido desde borde del
formulario o del “Frame”.
Width: el ancho del objeto.
Value: entrega el valor que tiene el objeto actual.
Estas son solo algunas propiedades.
Comentario: debido a que cada objeto tiene bastantes propiedades, no se profundizará en estas y
se dejará tarea para el usuario conocerlas mediante el recuadro en rojo.
4.2.3. Cuadro de Texto, TextBox ( )
Los Cuadros de Texto son la principal herramienta para la recepción de información. Corresponde
a las cajas donde el usuario del formulario puede ingresar los valores que serán los que utilizará elcódigo.
La apariencia que tiene es:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .20: cuadro de texto(TextBox)
Las propiedades más comunes que se utilizan son:
Font: se explicó previamente (Manejo de las propiedades de un objeto) Enabled: se explicó previamente (Manejo de las propiedades de un objeto)
Text: se roba el valor que tiene como String.
Value: se explicó previamente (Manejo de las propiedades de un objeto)
La recomendación de cómo obtener los valores de una cuadro de texto es:
8/15/2019 Tutorial Visual Basic (Aplicado a Hormigón Armado)
58/119
Hormigón Armado I, UTFSM Santiago.
57Tutorial - Ignacio Mayorga / Ignacio Ruiz.
Para el caso de utilizar los cuadros de texto para ingreso de valores. Para tomar el valor del
objeto usar la propiedad Value.
Para el caso de utilizar los cuadros de texto para el ingreso de cadenas de testo. Para
tomar el valor del objeto usar la propiedad Text.
Si se desea restringir el tipo de caracteres que ingresan dentro se puede utilizar una sub rutina
predeterminada para limitar el ingreso de datos, por ejemplo, que sean sólo números, se debe
utilizar el siguiente código:
4.2.4. Etiqueta, Label ( )
Este objeto es de gran utilidad dentro de los formulario, ya que tiene la particularidad de ser los
textos que orientan al usuario.
Las principales propiedades que se utiliza son:
Caption: es el texto que lleva escrito la etiqueta.
Visible: se explicó previamente (Manejo de las propiedades de un objeto). Muchas veces
en función de lo que hace el usuario se hacen o no visibles ciertas etiquetas.
Un ejemplo de una etiqueta es:
Ilustración ¡Error! Utilice la pestaña Inicio para aplicar 0 al texto que desea que aparezca aquí. .21: se observan dosobjetos, una etiqueta (Label) y un cuadro de texto (TextBox).
En este caso la propiedad