Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SUSTENTANTES:
AYALA RODRGUEZ JOS HCTOR SAL
ASESOR: ING. JOSE DEL CARMEN AGUILAR MORANTE
ASESOR TECNICO: ING. JOS MARTIN IBARRA RAMIREZ
Introduccin............................................................................................................................... 4
Tema 1.Analisis de la funcin de la norma..................................................................................... 4
Tema 2.- caractersticas del programador.................................................................................... 21
Cmo se... (referencia de VBA para Excel)..............................................................................22
Libros y hojas de clculo....................................................................................................... 22
........................................................................................................................................ 22
Macros y el Editor de Visual Basic..................................................................................... 23
........................................................................................................................................ 23
Ficha Programador............................................................................................................. 23
Para habilitar la ficha Programador................................................................................... 23
Problemas de seguridad.................................................................................................... 24
Editor de Visual Basic........................................................................................................ 24
Para crear un nuevo libro en blanco..................................................................................24
Un ejemplo real.................................................................................................................... 26
........................................................................................................................................ 26
Aprendizaje sobre objetos................................................................................................. 26
Uso de la grabadora de macros......................................................................................... 27
Para usar la grabadora de macros como punto de inicio de la solucin............................27
Para grabar una macro que cambie el nombre de una hoja de clculo.............................28
Modificacin del cdigo grabado.......................................................................................... 29
........................................................................................................................................ 29
Funcin de bucle............................................................................................................... 29
Cambio de nombre til...................................................................................................... 31
Bsqueda de celdas vacas............................................................................................... 32
Declaraciones de variables................................................................................................ 33
Comentarios...................................................................................................................... 34
Ms cosas que se pueden hacer con VBA............................................................................. 34
........................................................................................................................................ 34
Importancia de una actitud abierta................................................................................... 34
Grficos............................................................................................................................. 35
UserForms......................................................................................................................... 38
Qu sigue?.......................................................................................................................... 39
........................................................................................................................................ 39
Preguntas sobre Visual Basic 6.0.......................................................................................... 43
Objetos y clases....................................................................................................................... 46
Reutilizar el cdigo............................................................................................................... 46
........................................................................................................................................ 46
Clases................................................................................................................................... 46
........................................................................................................................................ 46
Varias instancias................................................................................................................... 47
........................................................................................................................................ 47
Para crear un objeto a partir de una clase.........................................................................47
Controles Estndar de Visual Basic....................................................................................... 47
Descripcin del control PictureBox........................................................................................... 48
Propiedad Picture..................................................................................................................... 49
Propiedad Autosize.................................................................................................................. 50
Usar el PictureBox como contenedor....................................................................................... 51
Propiedad Container - Insertar controles en tiempo de ejecucin............................................53
Propiedad Autoredraw............................................................................................................. 54
Guardar la imagen del picturebox como BMP..........................................................................56
Propiedad Image...................................................................................................................... 57
Dibujar en un picturebox con los mtodos grficos.................................................................59
Enlaces relacionados............................................................................................................... 59
Descripcin.............................................................................................................................. 60
Propiedades............................................................................................................................. 60
Propiedad Caption................................................................................................................ 61
Propiedad Autosize............................................................................................................... 62
Propiedad Aligment.............................................................................................................. 62
Otras propiedades del control son :...................................................................................... 63
Ejemplo para cambiar propiedades en tiempo de ejecucin................................................64
Eventos del control Label:........................................................................................................ 67
Ejemplo utilizando el evento MouseMove............................................................................. 67
Recorrer los labels del formulario con un bucle For Each next.................................................69
Introduccin
TITULO 5. ESPECIFICACIONES
CAPITULO 1 Disposiciones Generales
Artculo 100 Definiciones
Artculo 110 Requisitos de las instalaciones elctricas
CAPITULO 2 Alambrado y Proteccin
Artculo 200 Uso e identificacin de los conductores puestos a tierra
Artculo 210 Circuitos derivados
Artculo 215 Alimentadores
Artculo 220 Clculo de los circuitos derivados, alimentadores y acometidas
Artculo 225 Circuitos derivados y alimentadores exteriores
Jueves 29 de noviembre de 2012 DIARIO OFICIAL (Primera Seccin-Vespertina)
11
Artculo 450 Transformadores y bvedas para transformadores (incluidos los enlaces del
secundario)
10
11
12
Donde:
NOTA: Para conductores que alimenten un solo motor, la corriente nominal a plana carga se
multiplicar por 1,25 (artculo 430-22). En el caso de varios motores, a la suma de la corriente a plena
carga de los motores se le sumar el 25% de la corriente del motor ms grande (artculo 430-24).
13
AWG
rea de
60C
75C
90C
60C
75C
90C
la seccin
TW
THW, RHW
RHH, RHW-2
UF
RHW
RHW-2
transversal
TWD
THW-LS
THHN, THW-2
XHHW
XHHW
nominal
CCE
THWN
THHW-LS,
XHHW-2
XHHW
XHHW-2
DRS
O
2
Kcmil
mm
14
2,08
20*
20*
25*
12
3,31
25*
25*
30*
10
5,26
30
35*
40*
8,37
40
50
55
13,3
55
65
75
40
50
60
21,2
70
85
95
55
65
75
33,6
95
115
130
75
90
100
1/0
53,5
125
150
170
100
120
135
2/0
67,4
145
175
195
115
135
150
3/0
85,0
165
200
225
130
155
175
4/0
107
195
230
260
150
180
205
250
127
215
255
290
170
205
230
300
152
240
285
320
190
230
255
350
177
260
310
350
210
250
280
400
203
280
335
380
225
270
305
Cobre
Aluminio
14
500
253
320
380
430
260
310
350
600
304
355
420
475
285
340
385
750
380
400
475
535
320
385
435
1000
507
455
545
615
375
445
500
* A menos que se permita otra cosa especficamente en otro lugar de esta norma, la proteccin contra
sobrecorriente de los conductores marcados con un asterisco (*), no se debe superar 15 A para 14 AWG, 20 A
para 12 AWG y 30 A para 10 AWG, todos de cobre.
15
4. Una vez elegido el calibre del conductor, corregir la capacidad de conduccin de corriente
tomada de la Tabla 1, en funcin de la temperatura ambiente del lugar de instalacin, para ello
se multiplica por el factor de correccin que se indica en la Tabla 2.
Temperatura ambiente en el
lugar de la instalacin
60C
75C
90C
21 25
1,08
1,05
1,04
26 30
1,00
1,00
1,00
31 35
0,91
0,94
0,96
36 40
0,82
0,88
0,91
41 45
0,71
0,82
0,87
46 50
0,58
0,75
0,82
51 55
0,41
0,67
0,76
16
Cantidad de conductores
agrupamiento
De 4 a 6
0,80
De 7 a 9
0,70
De 10 a 20
0,50
De 21 a 30
0,45
De 31 a 40
0,40
De 41 y ms
0,35
17
Circuitos Monofsicos
Circuitos Trifsicos
x 100
x 100
Donde:
V = Cada de tensin en el cable, en %
I = Corriente elctrica que circula a travs del
conductor, en A L = Longitud total del circuito, en km
Vo = Tensin de fase a neutro, en
V Vff = Tensin entre fases, en V
La impedancia elctrica del cable Z, expresada en ohm/km, est dada por la siguiente frmula:
Z = RCos + XLSen
En forma aproximada sin considerar el factor de potencia (fp) la impedancia (Z) puede ser
calculada con la frmula siguiente:
18
Z = R + XL
Donde:
R = Resistencia del conductor a la c.a. y a la temperatura de operacin,
en /km XL = Reactancia inductiva del conductor, en /km
fp = Cos
= Es el ngulo del factor de potencia (fp)
19
La siguiente tabla contiene la resistencia en corriente alterna a 75C, la reactancia inductiva y la impedancia para
cables de 600 V. Tres cables monopolares en un mismo tubo (conduit).
Ohms al neutro / km
Reactancia inductiva
Resistencia a la c.a.
Resistencia a la c.a.
Impedancia (Z) de
Impedancia (Z) de
a 75C de conductores
a 75C de conductores
conductores de cobre
conductores de aluminio
conductores
de cobre
de aluminio
fp=0,9
fp=0,9
Ohm/km
Ohm / km
Ohm / km
Ohm / km
Ohm / km
Calibre
AWG
Conduit
Conduit
de PVC o
de
de
de
de
de
de
de
de
de
de
de
de
de
kcmil
aluminio
acero
PVC
aluminio
acero
PVC
aluminio
acero
PVC
aluminio
acero
PVC
aluminio
acero
14
0.190
0.240
10.2
10.2
10.2
9.3
9.3
9.3
12
0.177
0.223
6.6
6.6
6.6
6.0
6.0
6.0
10
0.164
0.207
3.9
3.9
3.9
3.6
3.6
3.6
0.171
0.213
2.56
2.56
2.56
2.38
2.38
2.40
0.167
0.210
1.61
1.61
1.61
2.66
2.66
2.66
1.52
1.52
1.54
2.47
2.47
2.49
0.157
0.197
1.02
1.02
1.02
1.67
1.67
1.67
0.99
0.99
1.00
1.57
1.57
1.59
0.148
0.187
0.62
0.66
0.66
1.05
1.05
1.05
0.62
0.66
0.68
1.01
1.01
1.03
1/0
0.144
0.180
0.39
0.43
0.39
0.66
0.69
0.66
0.41
0.45
0.43
0.66
0.68
0.67
2/0
0.141
0.177
0.33
0.33
0.33
0.52
0.52
0.52
0.36
0.36
0.37
0.53
0.53
0.55
3/0
0.138
0.171
0.253
0.269
0.259
0.43
0.43
0.43
0.288
0.302
0.308
0.45
0.45
0.46
4/0
0.135
0.167
0.203
0.22
0.207
0.33
0.36
0.33
0.242
0.257
0.259
0.36
0.38
0.37
250
0.135
0.171
0.171
0.187
0.177
0.279
0.295
0.282
0.213
0.227
0.234
0.310
0.324
0.328
300
0.135
0.167
0.144
0.161
0.148
0.233
0.249
0.236
0.188
0.204
0.206
0.269
0.283
0.285
Conduit Conduit
20
350
0.131
0.164
0.125
0.141
0.128
0.200
0.217
0.207
0.170
0.184
0.187
0.237
0.252
0.258
400
0.131
0.161
0.108
0.125
0.115
0.177
0.194
0.180
0.154
0.170
0.174
0.216
0.232
0.232
500
0.128
0.157
0.089
0.105
0.095
0.141
0.157
0.148
0.136
0.150
0.154
0.183
0.197
0.202
600
0.128
0.157
0.075
0.092
0.082
0.118
0.135
0.125
0.123
0.139
0.142
0.162
0.177
0.181
750
0.125
0.157
0.062
0.079
0.069
0.095
0.112
0.102
0.110
0.126
0.131
0.140
0.155
0.160
1000
0.121
0.151
0.049
0.062
0.059
0.075
0.089
0.082
0.097
0.109
0.119
0.120
0.133
0.140
Para el caso del circuito derivado, la cada de tensin no deber ser mayor de 3% y debe considerarse una cada
de tensin mxima de 2% para el circuito alimentador.
Si la cada de tensin resultante del clculo es mayor a lo anterior, debemos considerar un calibre mayor, volver
a realizar los clculos y verificar que se cumplan los porcentajes de cada de tensin sugeridos.
21
(AWG o kcmil)
15
2,08 (14)
--
20
3,31 (12)
--
30
5,26 (10)
--
40
5,26 (10)
--
60
5,26 (10)
--
100
8,37 (8)
13,3 (6)
200
13,3 (6)
21,2 (4)
22
300
21,2 (4)
33,6 (2)
400
33,6 (2)
42,4 (1)
500
33,6 (2)
53,5 (1/0)
600
42,4 (1)
67,4 (2/0)
800
53,5 (1/0)
85,0 (3/0)
1000
67,4 (2/0)
107 (4/0)
El compilador de Microsoft genera ejecutables que requieren una DLL para que
funcionen, en algunos casos llamada MSVBVMxy.DLL (acrnimo de "MicroSoft
Visual Basic Virtual Machine x.y", siendo x.y la versin) y en otros
VBRUNXXX.DLL ("Visual Basic Runtime X.XX"), que provee todas las funciones
implementadas en el lenguaje. Adems existen un gran nmero de bibliotecas
(DLL) que facilitan el acceso a muchas funciones del sistema operativo y la
integracin con otras aplicaciones. Sin embargo esto slo es una limitacin en
sistemas obsoletos, ya que las bibliotecas necesarias para ejecutar programas en
Visual Basic vienen de serie en todas las versiones de Windows desde Windows
2000.1
Este tema contiene vnculos a tareas de programacin (temas del tipo "Cmo..." y gua paso
a paso) para escenarios comunes de Excel.
Los temas de procedimientos son la puerta de enlace a temas importantes basados en tareas
relacionadas con la programacin y el desarrollo de aplicaciones mediante Excel. En este
tema se incluyen las principales categoras de las acciones que se pueden realizar en Excel.
Estos vnculos dirigen a temas de Ayuda importantes basados en procedimientos.
Describe cmo tomar una lista de direcciones dispuestas como una direccin
por fila y disponerlas para que entren en etiquetas de direcciones para
imprimir.
Describe cmo nombrar una hoja de clculo segn el valor de una celda.
Ahora que ya conoce en parte cmo Microsoft Excel 2010 expone su modelo de objetos,
puede intentar llamar a los mtodos de un objeto y establecer las propiedades del objeto.
Para hacerlo, debe escribir el cdigo en un lugar y de una manera que Office pueda
comprender; generalmente, mediante el uso del Editor de Visual Basic. Aunque se instala
de forma predeterminada, muchos usuarios ni siquiera saben que est disponible hasta que
no se habilita en la cinta de opciones.
Ficha Programador
Todas las aplicaciones de Office 2010 usan la cinta de opciones. La ficha Programador es
una de las fichas incluidas en la cinta de opciones, donde se puede tener acceso al Editor de
Visual Basic y a otras herramientas de programador. Debido a que Office 2010 no muestra
25
Problemas de seguridad
libro que contiene una macro, puede hacer clic en el botn Habilitar contenido para
habilitar las macros.
Adems, como medida de seguridad, no puede guardar una macro en el formato de archivo
predeterminado de Excel (.xlsx); debe guardar la macro en un archivo con extensin
especial (.xlsm).
Editor de Visual Basic
27
Sub Hello()
End Sub
Sub se refiere a Subrutinaque, por el momento, se puede definir como "macro". Al ejecutar
la macro Hello se ejecuta cualquier cdigo que se encuentre entre Sub Hello() y End Sub.
Ahora, edite la macro para que tenga un aspecto similar al siguiente cdigo.
VB
Sub Hello()
MsgBox ("Hello, world!")
End Sub
Un ejemplo real
Supongamos que tiene un libro que contiene listas en una gran cantidad de hojas de clculo
y que desea cambiar el nombre de cada hoja de clculo para que coincida con el
encabezado de la lista de esa hoja de clculo. No todas las hojas de clculo contienen una
lista. Si una hoja de clculo tiene una lista, el encabezado est en la celda B1, de lo
contrario, si no tiene una lista, la celda B1 est en blanco. Los nombres de hojas de clculo
sin listas no deben modificarse.
Normalmente, esto podra tratarse de una tarea compleja que implica ver cada hoja de
clculo para saber si tiene una lista, copiar el nombre de la lista en caso de que exista, hacer
clic en la ficha de hoja de clculo y luego pegar el nuevo nombre. En lugar de realizar todos
estos pasos manualmente, use VBA de Excel para cambiar el nombre de las hojas de forma
automtica.
28
El primer paso consiste en averiguar cmo manipular los objetos concretos con los que
necesita trabajar para llevar a cabo su tarea; por ejemplo, hojas de clculo, nombres de hoja
de clculo, celdas y contenidos de celdas. En Excel, hay al menos dos formas de enfocar el
problema:
29
Grabar algunas de las acciones que se desean automatizar, ver cmo el cdigo
grabado manipula los objetos y, a continuacin, ir a la referencia del modelo de
objetos para obtener ms informacin.
Las opiniones varan con respecto a qu enfoque es preferible, pero por ahora, intente
primero usar la grabadora de macros.
Uso de la grabadora de macros
A veces una simple macro grabada es todo lo que se necesita; en estos casos, incluso, no es
necesario mirar el cdigo. Por lo general, la grabacin por s sola no es suficiente, pero s,
un punto de inicio en el siguiente proceso.
Para usar la grabadora de macros como punto de inicio de la solucin
30
Sub RenameWorksheets()
'
' RenameWorksheets Macro
'
'
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "New Name"
End Sub
Las primeras cuatro lneas que aparecen despus de la lnea Sub son comentarios. Toda
lnea que comienza con un apstrofe es un comentario y no tiene efecto alguno sobre la
accin que ejecuta la macro. Los principales usos de los comentarios son los siguientes:
Facilitar la comprensin del cdigo, no solo para usted, sino para cualquier persona
que necesite modificarlo en el futuro.
Los cuatro comentarios en esta macro grabada no cumplen ningn propsito, por lo tanto,
elimnelos.
La siguiente lnea usa el mtodo Select para seleccionar el miembro Sheet1 del objeto de la
coleccin Sheets. En el cdigo de VBA, por lo general, no es necesario seleccionar objetos
antes de manipularlos, aunque eso es lo que hace la grabadora de macros. En otras palabras,
esta lnea de cdigo es redundante, por lo tanto, puede eliminarla.
La ltima lnea de la macro grabada modifica la propiedad Nombre del miembro Sheet1 de
la coleccin Sheets. Esta es la lnea que debe conservar.
Despus de realizar los cambios, el cdigo grabado ahora debe ser similar al siguiente.
VB
Sub RenameWorksheets()
Sheets("Sheet1").Name = "New Name"
End Sub
"La coleccin Sheets puede contener los objetos Chart o Worksheet. Si necesita trabajar con
hojas de un solo tipo, consulte el tema de objetos para ese tipo de hoja".
Como est trabajando solo con Worksheets, entonces, cambie el cdigo para que se vea de
la siguiente forma.
VB
Sub RenameWorksheets()
Worksheets("Sheet1").Name = "New Name"
End Sub
Funcin de bucle
Una limitacin del cdigo en este punto es que solo realiza el cambio en una hoja de
clculo. Se puede agregar otra lnea para cada hoja de clculo cuyo nombre desea cambiar,
pero qu sucede si desconoce cuntas hojas de clculo hay o cules son sus nombres
actuales? Se necesita una forma de aplicar alguna regla para cada hoja de clculo del libro.
VBA tiene una construccin denominada bucle For Each que es ideal. El bucle For Each
examina cada elemento en un objeto de coleccin, como Worksheets, y se puede usar para
llevar a cabo una accin (como cambiar un nombre) en algunos o en todos esos elementos.
Para obtener ms informacin acerca del bucle For Each, consulte la referencia del lenguaje
de VBA. Haga clic en la seccin sobre los temas conceptuales de Visual Basic y, a
continuacin, en el tema sobre el uso de instrucciones For Each...Next. Adems, tenga en
cuenta que la referencia del lenguaje de VBA, como la referencia del modelo de objetos,
compensar ampliamente el tiempo que invierta examinndola, ya que es un lugar
excelente para buscar ideas si se estanca cuando trabaja con cdigo.
Use el tercer ejemplo del tema sobre el uso de instrucciones For Each...Next para modificar
la macro con el fin de que tenga un aspecto similar al siguiente cdigo.
VB
Sub RenameWorksheets()
For Each myWorksheet In Worksheets
myWorksheet.Name = "New Name"
Next
End Sub
myWorksheet es una variable, es decir, lo que representa vara. En este caso, la variable
myWorksheet representa sucesivamente cada hoja de clculo en la coleccin Worksheets.
No es necesario usar myWorksheet; se puede usar "x", "ws",
32
Para corregir la lnea y comprobar si el bucle For Each funciona, cambie la lnea de la
siguiente manera.
VB
En lugar de intentar dar el mismo nombre a cada hoja de clculo, esta lnea cambia el
nombre actual de cada hoja de clculo (myWorksheet.Name) anexando la palabra "changed" al nombre actual.
Cambio de nombre til
La macro se est acercando a lo que podra ser la solucin para el problema que tiene en
este momento. Lo que necesita ahora es tomar informacin de las hojas de clculo,
especficamente de la celda B1 de cada hoja, y colocar esa informacin en los nombres de
las hojas de clculo.
Esta vez, en vez de usar la grabadora de macros para averiguar cmo referirse a una celda,
pruebe y vea si usando el objeto Cell logra su objetivo. Es un buen intento, pero si abre la
referencia del modelo de objetos y busca el objeto Cell, notar que no existe ningn objeto
Cell. En cambio, hay un objeto CellFormat.
El tema del objeto CellFormat incluye el siguiente cdigo en el primer ejemplo de cdigo.
VB
33
Resulta ser que usa Range para especificar un rango de celdas o simplemente una celda
individual. Nuevamente, no es necesaria la parte .Select, pero s es necesario averiguar
cmo hacer referencia a los contenidos del objeto Range, en oposicin al mismo objeto
Range. Si se dirige al tema del objeto Range, puede leer que Range tiene Methods y
Properties. Los contenidos de Range constituyen una cosa, no una accin, por lo que
probablemente sea una Property. Si busca hacia abajo en la lista, podr ver la propiedad
Value. Por lo tanto, intente lo siguiente.
VB
Sub RenameWorksheets()
For Each myWorksheet In Worksheets
myWorksheet.Name = myWorksheet.Range("B1").Value
Next
End Sub
Obtendr un error si ejecuta esto en un libro que contiene hojas de clculo donde la celda
B1 est vaca, porque Range vaco tiene un valor de "" (una cadena de texto vaca), que no
es un nombre de hoja de clculo vlido. De todas formas, ya es momento de crear algunos
datos de ejemplo. Haga que las tres hojas de clculo del libro tengan un aspecto similar al
de la siguiente figura y, a continuacin, ejecute la macro.
Figura 4. Datos de ejemplo para la macro RenameWorksheets
34
End If
Esto se denomina una instruccin IfThen. La instruccin IfThen indica a Excel que
haga lo que se indica entre la lnea If y la lnea End, pero solo si se cumple la condicin en
la lnea If. En el ejemplo, la siguiente lnea especifica la condicin que se debe cumplir.
VB
La lnea <> significa "no es igual a" y las comillas sin contenido en su interior representan
una cadena de texto vaca, es decir, no hay texto en absoluto. Por lo tanto, cualquier lnea
de cdigo que est entre If y End se ejecutar nicamente si el valor de la celda B1 no es
igual a nada, es decir, si hay texto en la celda B1.
Para obtener ms informacin acerca de la instruccin IfThen, consulte la referencia del
lenguaje de VBA. (El nombre completo de la instruccin es "IfThenElse", donde Else
es un componente opcional).
35
Declaraciones de variables
Otra mejora que debe hacer en la macro es poner una declaracin de la variable
myWorksheet al principio de la macro.
VB
Sub RenameWorksheets()
Dim myWorksheet As Worksheet
For Each myWorksheet In Worksheets
'make sure that cell B1 is not empty
If myWorksheet.Range("B1").Value <> "" Then
'rename the worksheet to the contents of cell B1
myWorksheet.Name = myWorksheet.Range("B1").Value
36
End If
Next
End Sub
Para probar la macro, vuelva a cambiar el nombre de las hojas de clculo a Sheet1, Sheet2
y Sheet3, y elimine los contenidos de la celda B1 en una o ms hojas de clculo. Ejecute la
macro para comprobar si cambia los nombres de las hojas de clculo que tienen texto en la
celda B1 y si deja las otras hojas sin modificaciones. La macro funciona para cualquier
cantidad de hojas de clculo, con cualquier combinacin de celdas B1 llenas y vacas.
Qu deseo aprender en primer lugar segn el uso que necesito darle a VBA?
Qu despierta mi curiosidad?
Se recomienda encarecidamente al lector que investigue todos los caminos que se abren
hacia la ruta del conocimiento.
Grficos
Una tarea comn en Excel es crear un grfico basado en un rango de celdas. Cree una
nueva macro llamada AssortedTasks y, a continuacin, escriba el siguiente texto en el
Editor de Visual Basic.
VB
Agregue una lnea para crear el objeto de grfico y asgnele la variable myChart.
37
VB
Los nmeros en los parntesis determinan la posicin y el tamao del grfico. Los primeros
dos nmeros son las coordenadas de la esquina superior izquierda y los segundos dos
nmeros corresponden al ancho y alto.
Cree una nueva hoja de clculo en blanco y ejecute la macro. El grfico que se crea no sirve
porque no tiene datos. Elimine el grfico que acaba de crear y agregue las siguientes lneas
al final de la macro.
VB
With myChart
.Chart.SetSourceData Source:=Selection
End With
Este es un patrn comn en la programacin de VBA. Primero crea un objeto, le asigna una
variable y, a continuacin usa la construccin WithEnd With para realizar tareas con el
objeto. El cdigo de ejemplo le indica al grfico que use la seleccin actual para sus datos.
(Selection es un valor para el parmetro Source del mtodo SetSourceData, no un valor de
una propiedad del objeto; por lo tanto, la sintaxis de VBA requiere que use dos puntos y el
signo igual [:=] en lugar de usar solo el signo igual [=] para asignar el valor.)
Escriba algunos nmeros en las celdas A1:A5, seleccione las celdas y, a continuacin,
ejecute la macro. El grfico se muestra como el tipo predeterminado, un grfico de barras.
Figura 5. Grfico de barras creado mediante VBA
38
Si no le gusta el grfico de barras, puede cambiar a algn otro tipo de grfico usando
cdigo similar al siguiente.
VB
With myChart
.Chart.SetSourceData Source:=Selection
.Chart.ChartType = xlPie
End With
39
Los datos se pueden modificar. Por ejemplo, intente agregar esta lnea justo despus de la
declaracin de variable.
VB
Application.ActiveSheet.Range("a4").Value = 8
Puede obtener una entrada de usuario y usar esa entrada para modificar los datos.
VB
ActiveWorkbook.Save
ActiveWorkbook.Close
Sub AssortedTasks()
Dim myChart As ChartObject
Application.ActiveSheet.Range("a4").Value = 8
myInput = InputBox("Please type a number:")
Application.ActiveSheet.Range("a5").Value = myInput
Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
With myChart
.Chart.SetSourceData Source:=Selection
.Chart.ChartType = xlPie
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Compruebe que las celdas A1:A5 sigan estando seleccionadas, ejecute la macro, escriba un
nmero en el cuadro de entrada y, a continuacin, haga clic en Aceptar. El cdigo guarda y
cierra el libro. Vuelva a abrir el libro y observe el cambio en el grfico circular.
UserForms
La seccin anterior mostraba cmo usar un cuadro de entrada sencillo para obtener una
entrada de usuario. Adems del correspondiente cuadro de mensaje que muestra
40
informacin, VBA proporciona amplias funcionalidades que puede usar para crear cuadros
de dilogo personalizados, para codificar controles que se colocan directamente en las hojas
de clculo o para manipular los cuadros de dilogo que estn integrados en Excel. Para
obtener ms informacin acerca de estas funcionalidades, consulte controles, cuadros de
dilogo y formularios en la referencia del programador de Excel 2007.
Esta seccin completa la introduccin a VBA en Excel presentando un panorama general de
UserForms.
En la ficha Programador, haga clic en el botn Visual Basic para abrir el Editor de Visual
Basic y, a continuacin, vaya al men Insertar y elija UserForm para abrir la vista Diseo
de UserForm.
Ver dos ventanas. Una representa el UserForm que est creando y la otra, el Cuadro de
herramientas, muestra los distintos controles que puede agregar a su UserForm; por
ejemplo, botones de comandos, botones de opciones, casillas de verificacin, entre otros.
Puede mover el mouse sobre un control del Cuadro de herramientas para ver qu tipo de
control crea.
Cree un UserForm muy sencillo con un solo botn que ejecute la macro Hello que creamos
al comienzo de este artculo. En el Cuadro de herramientas, presione el control
CommandButton y, a continuacin, arrstrelo al UserForm para crear un botn de
comando. Haga clic con el botn secundario en el botn de comando y elija Ver cdigo.
La Sub que aparece es un esqueleto para un procedimiento de evento que se ejecuta cuando
se produce un evento en particular. En este caso, como el nombre de Sub indica, el evento
que ejecuta el cdigo es un Click en CommandButton1. Agregue la siguiente lnea al
procedimiento de evento.
VB
Run("Hello")
41
Guarde el libro, vaya al men Ventana y elija UserForm1 (UserForm) para volver a mostrar
el UserForm. Haga clic en la flecha verde de la barra de herramientas para ejecutar el
UserForm. Cuando aparece el cuadro de dilogo, haga clic en el botn de comando para
ejecutar la macro Hello, que muestra el cuadro de mensaje "Hello, world!". Cierre el cuadro
de mensaje para volver al UserForm que se ejecuta y, a continuacin, cierre el UserForm
que se ejecuta para volver a la Vista Diseo.
Qu sigue?
Es posible que la informacin que se brinda en este artculo, combinada con un poco de
experimentacin y tiempo de estudio de la referencia del modelo de objetos y la referencia
del lenguaje de VBA, le resulte lo suficientemente til como para lograr cualquier tarea que
lo impulsa a empezar a aprender sobre VBA. Si es as, excelente. De lo contrario, un buen
paso es ampliar sus expectativas hacia un conocimiento ms general de VBA.
Una manera de aprender ms sobre VBA es estudiar cdigo activo. Adems de los ejemplos
proporcionados en la referencia del modelo de objetos y la referencia del lenguaje de VBA,
hay una cantidad enorme de cdigo de VBA en Excel disponible en distintas fuentes en
lnea, incluidos los artculos en MSDN, sitios web desarrollados por los profesionales ms
valiosos de Microsoft (MVP) que se especializan en Excel y otros sitios web que puede
encontrar mediante una bsqueda rpida en Web.
El cdigo de estos recursos puede ayudarlo a resolver problemas inmediatos de
programacin y proporcionarle ideas para proyectos que ni siquiera ha pensado an.
Si prefiere realizar un estudio ms sistemtico de VBA, pueden encontrar varios libros
sobre VBA, as como varias revisiones de cada uno de estos libros disponibles en Web que
pueden ser tiles para elegir su mejor forma de aprendizaje.
42
43
La ventana de ayuda o Help que dispone Visual Basic 0.6 excelente, al igual que
en todos los dems programas de Microsoft, tiene una funcionalidad muy buena
ya que tan solo al sealar un objeto y luego oprimir la tecla F1 saldr informacin
sobre el objeto sealado, algo muy prctico.
La Ventana de proyectos, nos deja ver los elementos involucrados dentro del
proyecto, como formularios, mdulos, controles OCX, etc.
44
45
Un evento es una accin que realiza el usuario hacia un objeto, asi como cuando
hacemos un click sobre un botn y la accin de hacer click sobre el botn se llama
evento click Cada vez que se produce un evento sobre un determinado control,
se pasa a el procedimiento que realiza la accin programada por el usuario para
ese evento concreto.
Private Sub Command1_Click
End Sub
Qu es mtodo?
Los mtodos son tambin funciones que son llamadas desde el programa, que en
diferencia con los procedimientos no son programadas por el usuario. Cada tipo
de objeto o de control tienen sus propios mtodos, asi como tambin tienen
propiedades y eventos.
Qu son los controles?
Un control es un elemento grafico que forma parte de una aplicacin asi como:
botones, cajas de texto, los graficos y muchos mas son controles para Visual
Basic. Cada control tiene su nombre del cual se lo puede diferenciar dentro del
programa, ya vienen por defecto con sus nombres respectivamente pero los
usuarios podemos modificar o cambiar sus nombres.
Qu son las propiedades?
Todo control u objeto dentro de Visual Basic tiene sus propias propiedades, unas
distintas de otras. Por lo general las propiedades de un objeto son datos que tiene
valores lgicos (true, false). En fin son cualidades propias de cada control u objeto.
Qu es un objeto?
Existen varias funciones de cadena, que ya vienen en visual Basic 6.0 y solo hay
que llamarlas y utilizarlas.
Funciones de cadenas
46
Se podra decir que Cadena es una sucesin de caracteres. Una cadena puede
tener uno o varios caracteres numricos como tambin con letras (Alfanumrico).
Str ---> (nmero) Convierte un nmero a una cadena en numeracin decimal.
Val --> (cadena numrica) convierte un valor sea texto, y lo toma como valor
numrico
Un nmero tiene un valor, pero tambin tiene una presentacin escrita. El valor es
algo que estar en el ordenador como una sucesin de bits.
Funciones con nmeros
Visual Basic tambin puede operar con nmeros. Los operadores que utiliza para
las operaciones bsicas son:
+ --> Suma
- --> Resta
* --> Multiplicacin
/ --> Divisin
\ --> Divisin sin decimales
Mod --> Resto de una divisin o residuo
^ --> Eleva a un exponente
Otras Funciones
Sqr --> Raz cuadrada Devuelve la raz cuadrada de un nmero
Exp --> Exponenciacin Devuelve el nmero elevado al exponente indicado
Log --> Logaritmo Devuelve el logaritmo natural de ese nmero
Como sabemos Visual Basic solo admite dos resultados, True (Verdadero) o False
(Falso) Estos operadores son:
= --> Igual que
47
Objetos y clases
Un objeto es una combinacin de cdigo y datos que puede tratarse como una unidad. Un
objeto puede ser una porcin de una aplicacin, como un control o un formulario. Una
aplicacin entera tambin puede ser un objeto.
Reutilizar el cdigo
Los objetos permiten declarar variables y procedimientos una vez y utilizarlos siempre que
sean necesarios. Por ejemplo, si desea agregar un corrector ortogrfico a una aplicacin,
puede definir todas las variables y funciones auxiliares para proporcionar funcionalidad de
correccin ortogrfica. Si crea el corrector ortogrfico como una clase, puede volver a
utilizarlo en otras aplicaciones mediante la inclusin de una referencia en el ensamblado
compilado. An mejor, tal vez pueda ahorrarse trabajo mediante el uso de una clase de
corrector ortogrfico que otra persona ya haya desarrollado.
Clases
Cada objeto de Visual Basic est definido por una clase. Una clase describe las variables,
propiedades, procedimientos y eventos de un objeto. Los objetos son instancias de clases;
pueden crearse tantos objetos como sean necesarios una vez que se defina una clase.
Para comprender la relacin entre un objeto y su clase, piense en los moldes de hacer
galletas y en las galletas. El molde es la clase. Define las caractersticas de cada galleta, por
ejemplo, el tamao y la forma. La clase se utiliza para crear objetos. Los objetos son las
galletas.
Dos ejemplos en Visual Basic podran ayudar a ilustrar la relacin entre las clases y objetos.
49
Varias instancias
Los objetos recientemente creados a partir de una clase son a menudo idnticos. Una vez
que existen como objetos individuales no obstante, sus variables y propiedades se pueden
cambiar independientemente de las dems instancias. Por ejemplo, si agrega tres casillas de
verificacin a un formulario, cada objeto de botn de casilla de verificacin es una
instancia de la clase CheckBox. Los objetos CheckBox individuales comparten un conjunto
de caractersticas y funciones comunes (propiedades, variables, procedimientos y eventos)
definidos por la clase. No obstante, cada uno tiene su propio nombre, puede habilitarse y
deshabilitarse por separado, y puede colocarse en una ubicacin diferente en el formulario.
3. Agregue la palabra clave New (Visual Basic) para inicializar la variable a una nueva
instancia de la clase.
nextCustomer.accountNumber = lastAccountNumber + 1
Label - Etiquetas
50
Frame - Marcos
CheckBox
Timer - Temporizadores
Data
Data - 2
-- Indice :
Propiedad Picture
Propiedad AutoSize
Propiedad Container
Propiedad Autoredraw
51
Propiedad Image
Enlaces relacionados
52
Propiedad Picture
La principal propiedad del control PictureBox se llama precisamente Picture.
Esta propiedad es la que indica el grfico que estar cargado. Para cargar un
grfico en visual basic desde el disco, se usa la funcin LoadPicture. A Esta
funcin le debemos indicar como parmetro la ruta del fichero
Por ejemplo si quisiera cargar un archivo de imagen llamado paisaje.jpg que
est ubicado en la unidad c:, y que se cargue cuando le damos un click a un
CommandButton, tendriamos que hacer esto:
Texto planoImprimir
1. Option Explicit
2.
3. Private Sub Command1_Click()
4.
5.
With Picture1
6.
7.
.Picture = LoadPicture("c:\paisaje.jpg")
End With
8. End Sub
53
Propiedad Autosize
Esta propiedad lo que hace es adaptar o ajustar el control a las dimensiones
del grfico cargado.
Los posibles valores que le podemos dar son True o False. Si le pasamos True
el control se autoajusta al tamao de la imagen, si le pasamos False el control
queda con el ancho y alto sin autoajustarse al grfico
Esta captura muestra esto mismo, el Picture de la izquierda tiene la propiedad
Autosize en False, mientras que el otro la tiene en True.
54
5.
Picture1.Visible = False
6. End Sub
7.
8. Private Sub Command2_Click()
9.
10.
11.
Al ejecutar el program, a pods ver que cuando ocults el PictureBox, todos los
dems controles tambin se ocultan, es decir esto demuestra que el control
Picture es el contenedor de los otros. Si no llegara a ocultarse todos los dems
controles, es porque hiciste mal el paso de ubicarlos dentro del Picture. En este
caso asegurate que al dibujarlos queden dentro del mismo. Otra forma de
colocar controles dentro de un picture y que queden contenidos en l, es cortar
el control con el comando Cortar (click derecho sobre el mismo) y seleccionar
el Picture y cuando est seleccionado lo pegs, automticamente de esta
forma ya pasa a estar contenido.
56
5.
6.
7.
8.
Text1.Move 0, 0, 1000
9.
10.
57
11.
End Sub
Propiedad Autoredraw
La propiedad AutoRedraw es una propiedad muy importante y muy utilizada
cuando se usa un picturebox para dibujar sobre el control
Lo que permite hacer la propiedad Autoredraw, es que al estar activada (con el
valor True), y utilizar los mtodos grficos, por ejemplo dibujar un crculo, una
linea, o cualquier imagen / dibujo, cuando se repinte el control, la imagen no
se pierda, es decir que se mantenga. De esta manera Visual basic
automticamente vuelve a dibujar la imagen. Esta propiedad por defecto se
encuentra en false. Luego es posible borrar la imagen con el mtodo Cls
Puedes ver un simple ejemplo de esto mismo en el siguiente cdigo:
Esto dibuja una cuadrado en el picture1 al presionar un botn. Luego, pods
minimizar y volver a maximizar la ventana del formulario y ver que el dibujo se
mantiene ya que la propiedad AutoRedraw se ha establecido en True
Colocar un botn y un picturebox en el formulario ( Command1 y picture1 )
Texto planoImprimir
1. Option Explicit
2.
3. ' -- Botn para dibujar el rectngulo
4. ' --------------------------------------------------------5. Private Sub Command1_Click()
6.
With Picture1
58
7.
.AutoRedraw = True
8.
9.
10.
11.
End With
End Sub
12.
13.
14.
15.
16.
59
6.
With Picture1
7.
.AutoRedraw = False
8.
9.
10.
11.
End With
End Sub
12.
13.
14.
15.
16.
60
4.
5.
Picture1.AutoRedraw = False
6. End Sub
7.
8. Private Sub Picture1_Paint()
9.
10.
Static i As Integer
11.
12.
i = i + 1
13.
14.
Me.Caption = "se ejecut Paint " & CStr(i) & " veces"
15.
16.
17.
Picture1.Cls
18.
19.
20.
End Sub
61
Por ejemplo:
Texto planoImprimir
1. ' -- Cargar una imagen en el control
2. Picture1.Picture = LoadPicture(ruta)
3.
4. ' -- Grabar el archivo BMP en la ruta especificada
5. SavePicture Picture1.Picture, "C:\Imagen.BMP"
Nota: En este enlace hay tutorial bsico con ejemplos que muestra como
utilizar los mtodos loadpicture, savepicture y paintpicture
62
Propiedad Image
La propiedad Image del control PicBox es una propiedad de solo lectura. Esta
Devuelve un controlador o manipulador, proporcionado por Microsoft Windows,
para un mapa de bits persistente. Esto quiere decir que, si hemos utilizado los
mtodos grficos para crear figuras , imgenes o cualquier dibujo en el control,
podemos acceder a la imagen mediante este Handle o controlador.
Este simple ejemplo muestra como grabar en disco un archivo de imagen de
mapa de bits ( BMP ) , con el contenido del control utilizando el mtodo
savePicture. Pero a diferencia del ejemplo anterior, en el que se pasaba la
propiedad Picture a SavePicture, en este caso se pasar como parmetro la
propiedad Image, ya que la imagen no es un mapa de bits cargado en la
propiedad picture, si no que el dibujo se encuentra realizado mediante los
mtodos grficos.
Colocar dos botones ( Command 1 y Command 2) , y un picturebox llamado
picture 1
63
6.
7.
With Picture1
8.
.AutoRedraw = True
9.
.ForeColor = vbRed
10.
.BackColor = vbBlack
11.
12.
13.
End With
14.
15.
Command1.Enabled = False
16.
Command2.Enabled = True
17.
18.
End Sub
19.
20.
21.
22.
23.
24.
25.
End
26.
End Sub
27.
28.
29.
64
30.
31.
Command2.Enabled = False
32.
End Sub
Enlaces relacionados
65
Crear degradados
Mouseout
66
Descripcin
El control Label o Etiqueta es un simple control que se utiliza para mostrar
texto, descripciones, informacin para el programa.
Propiedades
Propiedad Caption
La propiedad Caption es la mas importante, y es la que se utiliza para
establecer el texto que mostrar el control Label. Por ejemplo para mostrar el
texto "Hola" agrega un label al formulario, coloca un Botn, hac doble click en
el mismo, escribe Label1 y presiona el ".", Visual Basic te desplegar la lista de
propiedades y mtodos del Label1.
67
6.
With Timer1
7.
8.
.Enabled = True
9.
End With
10.
11.
12.
With Label1
.Caption = ""
68
13.
14.
.Width = 2000
End With
15.
16.
End Sub
17.
18.
19.
20.
Propiedad Autosize
Si la propiedad Autosize del control se encuentra en True, las dimensiones
del Label (ancho y alto) se ajustarn al largo y alto del texto que muestre. En
cambio si se encuentra en False el ancho y alto del control ser el que est
establecido en la propiedad Height y Width sin importar la longitud del texto.
Propiedad Aligment
Esta propiedad posee 3 valores. Si le establecemos el valor 0 el texto se
alinear a la izquierda, si tiene el valor 1 se alinear a la derecha y si est con
el valor 2, el texto se muestra en forma centrada, como muestra la imagen:
69
70
Forecolor: Valor Hexadecimal o valor Rgb que indica el color del Texto
6.
7.
8.
9.
10.
11.
72
12.
End Sub
13.
14.
' \\ -- BorderStyle
15.
16.
17.
If Label1.BorderStyle = 0 Then
18.
Label1.BorderStyle = 1
19.
20.
Else
21.
22.
23.
Label1.BorderStyle = 0
End If
End Sub
24.
25.
26.
' \\ -- Enabled
27.
28.
29.
30.
31.
32.
33.
End Sub
34.
35.
36.
' \\ -- Tooltiptext
73
37.
38.
39.
40.
41.
42.
43.
Label1.ToolTipText = texto
44.
45.
46.
47.
48.
49.
50.
End Sub
51.
52.
' \\ -- Visible
53.
54.
55.
56.
57.
58.
59.
End Sub
60.
74
61.
62.
63.
64.
65.
Command3.Caption = "Enabled"
66.
Command4.Caption = "ToolTipText"
67.
Command5.Caption = "Enabled"
68.
End Sub
75
Cdigo fuente
Texto planoImprimir
1. Option Explicit
2.
3. Private Sub Form_Load()
4.
5.
With Label1
6.
7.
.BackStyle = 0
76
8.
9.
.AutoSize = True
10.
' --
11.
12.
13.
End With
End Sub
14.
15.
16.
Button As Integer, _
17.
Shift As Integer, _
18.
X As Single, Y As Single)
19.
20.
With Label1
21.
If .FontUnderline Then
22.
23.
.ForeColor = vbBlack
24.
25.
26.
.FontUnderline = False
27.
28.
End If
End With
29.
30.
End Sub
31.
32.
77
33.
34.
Button As Integer, _
35.
Shift As Integer, _
36.
X As Single, Y As Single)
37.
38.
With Label1
39.
40.
' --
41.
.ForeColor = QBColor(9)
42.
43.
44.
.FontUnderline = True
45.
46.
47.
End If
End With
End Sub
78
6.
7.
8.
9.
10.
11.
79
12.
13.
End If
Next
14.
15.
End Sub
16.
17.
18.
19.
80
Nota: desde opciones > men Herramientas, puedes especificar los valores
para la cuadrcula del formulario, por defecto son 120 twips, colocando un
valor mas bajo, tendrs mas precicin para colocar el control Label al
arrastrarlo en el formualrio.
Simple botn
Este senciilo ejemplo muestra una forma de poder crear un botn utilizando
dos controles label en un array de controles uno encima del otro. Y en el
evento MouseDown , se oculta uno, y se visualiza el que est por debajo, y
luego se vuelve a visualizar el otro en el evento mouseUp
Control ListBox
El control ListBox permite aadir elementos en forma de lista y tambin
poder seleccionar elementos de la misma para trabajar los datos.
Este control permite seleccionar un elemento solo o varios de ellos, utilizando
la propiedad Multiselect. La imagen de la izquierda muestra un ListBox en el
que se selecciona un solo elemento y a la derecha se seleccionan varios:
81
82
Private
Sub
Command1_Click()
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
"Brasil"
"Francia"
"Italia"
"Argentina"
"venezuela"
End Sub
Private
'Eliminamos
Sub
el
Command2_Click()
elemento
83
de
la
lista
List1.RemoveItem
End Sub
El ejemplo anterior eliminara de la lista el elemento "Italia". Te preguntars
porque elimina a "Italia" si este est en la posicin 3. En realidad est en la
posicin 2, ya que se comienza el conteo desde el 0, es decir en la lista del
ejemplo anterior, "Brasil" tiene el nmero 0, "Francia" el 1, "Italia" el 2 etc...
Importante: Al eliminar un elemento de la lista, el nmero relacionado al
elemento o Item a eliminar, debe estar en la lista, ya que si no dara un error
al querer eliminar un Item que no se encuentra.
84
Private
Sub
Command1_Click()
If
Text1
=
""
Then
MsgBox "Debe ingresar un nombre para poder agregar un
elemento",
vbQuestion
+
vbOKOnly,
"Datos
incompletos"
'Salimos de la rutina ya que no se ha ingresado nada en el
control
text1
Exit
Sub
End
If
'Agregamos el
List1.AddItem
End
contenido
del
Text1
en
el
control
List1
Text1
Sub
Private
Sub
Command2_Click()
'Si la lista no est vaca entonces podemos eliminar
If
List1.ListIndex
<>
-1
Then
'Eliminamos el elemento que se encuentra seleccionado
List1.RemoveItem
List1.ListIndex
End
If
End Sub
85
Propiedad Sorted:
Si quisiramos ordenar el contenido, es decir los elementos del control List en
forma alfabtica, debemos utilizar la propiedad Sorted.
Esta propiedad no se puede utilizar en tiempo de ejecucin, si no que la
debemos establecer en tiempo de diseo desde la ventana de propiedades. Si
la propiedad est en True, la lista de elementos se mostrar en forma
ordenada, si est en False sin ordenar. Por defecto esta propiedad est con el
Valor False.
Private
'Elimina
List1.Clear
Sub
todo
el
Command1_Click()
contenido
del
ListBox
End Sub
Este mtodo no necesita ningn parmetro, solo ejecutarlo para que todo el
contenido del control sea eliminado. Tampoco produce un error si ejecutamos
Clear y el ListBox no tiene elementos, es decir si los tiene los elimina, si no
tiene elementos y se ejecuta Clear, no ocurre nada.
86
Propiedad ListCount
La propiedad ListCount devuelve la cantidad de elementos que contiene el
control.
Por ejemplo, en las siguientes lneas, cuando se presiona un Command1, se
agregan 3 elementos. Luego se muestra un mensaje, mediante un MsgBox,
con la cantidad de elementos del control, consultando el valor de la propiedad
ListCount :
Private
'Agregamos
List1.AddItem
List1.AddItem
List1.AddItem
Sub
3
'Mostramos medianete
'del contenido del
MsgBox
Command1_Click()
elementos
al
listado
"Enero"
"Febrero"
"Marzo"
End Sub
Propiedad List
La propiedad List devuelve o establece los elementos contenidos en la lista del
control.
Esta propiedad lleva un parmetro que indica el nmero del elemento que se
quiere consultar.
Un ejemplo: si quisiera mostrar en un Label1 el texto del elemento que se
selecciona, haramos lo siguiente:
87
Private
'Agregamos
List1.AddItem
List1.AddItem
List1.AddItem
End
Sub
elementos
Private
Sub
'Cuando
hacemos
Click
en
mostramos
en
el
Label1
Label1
=
End Sub
al
Form_Load()
listado
"Enero"
"Febrero"
"Marzo"
Sub
List1_Click()
un
elemento
del
List1
_
el
texto
del
elemento
List1.List(List1.ListIndex)
Private
Label1
End Sub
Sub
=
List1_Click()
List1.List(2)
...el control Label1 mostrara el texto del elemento 2, que sera "Marzo". Esto
como ya se indic antes es porque el primer elemento en la lista es el 0, que
en este caso corresponde a "Enero", el segundo elemento es el 1, en este caso
"Febrero" , etc...
88
Propiedad Enabled : Permite habilitar o deshabilitar el control ListBox Valores True y False
89
90
Control ComboBox.
Este control muy utilizado en los programas nos permite mediante una lista
desplegable poder seleccionar elementos, como tambin es posible introducir
elementos a la misma
Otro tipo de vistas del control ComboBox son las siguientes, que se modifican
desde la propiedad Style del control
91
Dim
Elemento
For
Elemento
'Agregamos el valor
Combo1.AddItem
Next
de
As
=
la
0
variable
Integer
To
Elemento
al
50
Combo
i
92
'Eliminamos
Combo1.Clear
todo
el
contenido
Data1.DatabaseName
Data1.RecordSource
App.Path
=
&
"\bd1.mdb"
"Clientes"
Combo1.DataField = "Nombres"
El control TextBox o Caja de texto se utiliza para Ingresar y/o visualizar Texto
( es un control de entrada de datos )
93
Private
Sub
Text1.Text
"Un
Form_Load()
texto
cualquiera"
End Sub
Private
Sub
Text1.Text
Form_Load()
Label1.Caption
End Sub
Nota , no es necesario escribir la propiedad Text seguida del nombre del
control, ya que la propiedad Text es la propiedad por defecto, y Vb se dara
automticamente cuenta que al no poner ninguna propiedad la asuma como
tal, por ejemplo esto es vlido:
Private
Text1
Sub
=
"Un
Form_Load()
texto
cualquiera"
End Sub
Esto de las propiedades por defecto lo tienen la mayora de los controles, pero
cada control tiene la suya, por ejemplo la propiedad default de un control
Label es Caption, por lo que no es necesario escribirla, y Visual Basic no
dara error:
95
Private
Sub
Label1
Form_Load()
=
"Hola"
End Sub
Private
Picture1
Sub
=
LoadPicture("la
Form_Load()
ruta
de
una
imagen")
End Sub
Propiedad Multiline
La propiedad Multiline o multilinea se utiliza para poder mostrar los saltos de
carro o saltos de lnea y que el texto se vea en varias y no todo en un nica
lnea. Los valores que posee son True que est activada y en False quiere
decir que est deshabilitada. Por defecto cuando aadimos un TextBox, la
propiedad est en False, osea que tenemos que indicarle nosotros a vb, ya sea
desde la ventana de propiedades ponindola en true. Una cosa importante es
que esto no lo podemos cambiar en tiempo de ejecucin mediante cdigo, si o
si hay que establecerla desde la ventana de propiedades, ya que es una
propiedad de solo lectura.
Propiedad PasswordChar
Esta propiedad tiene la funcin de ocultar el verdadero contenido del
TextBox por el caracter que le indiquemos, por ejemplo los TextBox de
ingresos de contrasea, donde el texto se oculta pero no se pierde, solo impide
visualizarlo:
96
Propiedad ScrollBars
Esta propiedad permite que el TextBox tenga o no tenga barras de Scroll
cuando el texto sea superior a las dimensiones de la caja de texto. Los valores
que puede tener son: 0 indica que el textBox no mostrar Barras de
desplazamiento, en 1 Solo barra Horizontal, 2 Solo barra Vertical y 3
ambas barras de desplazamiento. En esta imagen se ve un TextBox con la
propiedad Scrollbars en 2, solo Vertical
Propiedad Locked
Esta propiedad lo que hace es impedir que se pueda escribir en el
TextBox, bloqueando la entrada de datos. Esta propiedad puede tener el Valor
True o False, habilitado para el primero y False para el segundo. Por defecto
est deshabilitada, es decir en False
97
Propiedad Maxlength
La propiedad MaxLength se usa para limitar la cantidad de caracteres
que se podrn ingresar. Por ejemplo si en el TextBox tuviesemos el texto
"Domingo" y hacemos esto:
Private
Text1.Text
Text1.MaxLength
End Sub
Sub
=
=
Command4_Click()
"Domingo"
3
98
If KeyAscii = 1 Then
Text1.SelStart = 0
'Selecciona Todo el contenido de la caja de texto
Text1.SelLength = Len(Text1.Text)
End If
End Sub
Private
'Copiamos
Text2
End Sub
Sub
el
texto
de
=
Text1
Command1_Click()
en
el
Text2
Text1
99
Private
Sub
Command1_Click()
'Le asignamos el mismo color al textbox que el que tiene el
formulario
_
utilizando
la
propiedad
Backcolor
Text1.BackColor
=
Me.BackColor
End Sub
Private
Sub
Text1_Change()
'Le establecemos el contenido de Text1 en el control Text2
Text2
=
Text1
End Sub
Este ejemplo lo que hace es cambiarle el color al fondo del control text en
negro, el color de la fuente en verde, el tamao de la fuente, establecerla en
negrita, y luego le asigna un texto "hola mundo".
Colocar un Command1 y un Text1
100
Private
With
.ForeColor
.BackColor
.FontSize
.FontBold
.Text
Sub
Command1_Click()
Text1
=
=
=
=
"
Hola
End
End Sub
vbGreen
vbBlack
12
True
Mundo"
With
Option Explicit
Private Sub Text1_KeyPress(KeyAscii As Integer)
101
KeyAscii = Verificar_Tecla(KeyAscii)
End Sub
Function Verificar_Tecla(Tecla_Presionada)
End Function
103
104
Text1 = ""
Open path For Input As #1
While Not EOF(1)
'Lee la linea del archivo
Line Input #1, linea
'La carga en el textbox
Text1 = Text1 & linea
Wend
'Cierra el archivo abierto
Close
End Sub
Controles
Colocar en el formulario, un control Shape. Al control Shape especificarle en la
propiedad Index el valor 0 pra formar el array de shape
106
para
recorrer
todos
los
controles
107
del
Shape(i).Width = el_Control.Width + 30
Shape(i).Height = el_Control.Height + 30
' Estilo flat para el extbox
el_Control.Appearance = 0
' Le quitamos le borde al textbox
el_Control.BorderStyle = 0
' color del borde del shape
Shape(i).BorderColor = color_Borde
' Lo hacemos visible
Shape(i).Visible = True
i = i + 1
' Crea un shape en forma dinmica
Load Shape(i)
End If
Next
End Sub
Private Sub Form_Load()
Call Aplicar_Borde(Shape1, &H8000000D)
End Sub
Nota. en este enlace hay un ejemplo para crear un listbox con borde
personalizado tambin usando un control shape
108
109
Dim i As Integer
' recorre la matriz de textbox
For i = 0 To Text1.Count - 1
' le especifica la propiedad tabIndex
Text1(i).TabIndex = i + 1
Next
End Sub
Private Sub
Integer)
Text1_KeyPress(Index
As
Integer,
KeyAscii
As
Call LimpiarTextBox(Me)
Option Explicit
' recibe como argumento el formulario
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub LimpiarTextBox(frm As Form)
' recorre todos los controles que hay en el formulario
For Each Control In frm.Controls
' verifica que el control es de tipo TextBox
If TypeOf Control Is TextBox Then
'... Si es un Textbox, entonces lo limpia
Control.Text = ""
End If
Next
End Sub
' botn que limpia todos los textbox
'''''''''''''''''''''''''''''''''''''
Private Sub Command1_Click()
Call LimpiarTextBox(Me)
End Sub
Enlaces relacionados
111
-- -- Indice - Contenido
Propiedades
Mtodos y funciones
Enalces relacionados
112
113
5.
6.
7. End Sub
End
5. End Sub
6.
7. Private Sub Form_Load()
8.
Command1.Caption = "Salir"
9. End Sub
114
Propiedades
Las propiedades que posee el control CommandButton son prcticamente las
que poseen el resto de controles estandar de visual basic, salvo algunas
exclusivas como la propiedad Style.
Propiedad Style
La propiedad Style tiene 2 valores, 0 - Standar y 1 - Graphical. La primera
es del clsico botn y este valor es el asignado por defecto. En cambio
Graphical permite utilizar CommandButton para poder mostrar imgenes,
cambiarle el color del fondo, el tipo de fuente, y utilizando el Api de windows,
se puede cambiar por ejemplo el color de la fuente, es decir el ForeColor que
este control no lo posee.
Esta imagen muestra, en el Command1 , una imagen, por medio de la
propiedad Picture que la puedes cargar desde la ventana de propiedades. El
segundo, el Command2, no tiene imagen, pero muestra como se puede
establecer el color de fondo, propiedad Backcolor, siempre y cuando la
propiedad Style sea de tipo grfico, ya que si est en estndar no surtir
efecto.
115
Otro ejemplo sobre esta propiedad: Al pasar el mouse por encima del
Commandbutton, se cambiar la fuente, en Negrita, el Subrayado, y el color de
fondo, al salir el puntero fuera del botn, se reestablecer a la fuente normal,
y se restaurar el color de fondo usando el color por defecto que utiliza
windows para los botones, mediante la constante VbButtonFace
Para el ejemplo, colocar un Command1, colocar la propiedad Style en Graphical
y pegar estas lneas en el formulario:
Texto planoImprimir
1. Option Explicit
2.
3. ' -- Flag para que no se ejecute constantemente
4. ' -- el cdigo del Form y del CommandButton
5. Dim Flag As Boolean
6.
7. Private Sub Command1_MouseMove(Button As Integer, Shift As Integer,
X As Single, Y As Single)
8.
9.
10.
11.
Command1.Font.Bold = True
12.
Command1.Font.Underline = True
13.
Command1.BackColor = vbWhite
14.
Flag = False
15.
End If
16.
17.
End Sub
116
18.
19.
20.
21.
22.
Command1.Font.Bold = False
23.
Command1.Font.Underline = False
24.
Command1.BackColor = vbButtonFace
25.
Flag = True
26.
End If
27.
28.
End Sub
Propiedad Default
Esta propiedad es muy til en ciertas locaciones, sobre todo en formularios y
programas que utilizan bases de datos, y opciones para buscar.
Default puede tener dos valores , True o False. Si est en True, el botn ser el
botn por defecto que se ejecutar cuando se presione la tecla enter. Por
ejemplo hagamos de cuenta que nuestro programa contiene un botn. Ese
botn ejecuta un cdigo para buscar datos en una base de datos. Si el usuario
en un momento determinado, se encuentra escribiendo datos en un control
textbox, y presiona la tecla Enter, el CommandButton al tener la propiedad
Default en True, ejecutar el cdigo que tenga en el evento click. En este
caso , en el evento clic, contendra todo el cdigo para realizar la bsqueda de
registros.
117
Un simple ejemplo
Coloca: Un control TextBox, un CommandButton. Pega el siguiente cdigo
Texto planoImprimir
1. Option Explicit
2.
3. Private Sub Command1_Click()
4.
5. End Sub
6.
7. Private Sub Form_Load()
8.
9.
Command1.Default = True
10.
11.
12.
13.
14.
15.
16.
17.
End Sub
118
Propiedades de posicin
Las propiedades de posicin son las que permiten cambiar el tamao y la
posicin en el objeto que lo contiene. estas propiedades son cuatro : Left, Top,
Height y Width.
El siguiente ejemplo muestra como usar estas propiedades. Supongamos que
nuestro formulario contiene un botn "Salir" en la parte inferior:
Ahora bien como hacer para que al presionar el botn de maximizar del
formulario o cambiar de tamao el formulario, el botn contine situado en la
esquina inferior derecha ? Para ello hay que modificar la propiedad Left y Top
del botn. Pero donde colocar el cdigo? para ello se debe colocar en el
evento Resize del formulario.
Puedes probar este simple ejemplo con el siguiente cdigo:
Texto planoImprimir
1. Option Explicit
119
2.
3. ' Valores para mrgenes - Prueba cambiando estos valores
4. Private Const MARGEN_IZQUIERDO
5. Private Const MARGEN_INFERIOR
As Single = 60
As Single = 60
6.
7. Private Sub Command1_Click()
8.
Unload Me
9. End Sub
10.
11.
12.
13.
Command1.Caption = "Salir"
End Sub
14.
15.
16.
17.
18.
19.
End Sub
120
Propiedad Enabled
Esta propiedad lo que hace es habilitar o deshabilitar el botn. Es una
propiedad que la poseen casi todos los controles, tanto los de Visual basic,
como otros controles de terceros ( controles ocx o Activex )
Aqu puedes ver ver un pequeo ejemplo de su uso.
Supongamos que nuestro programa contiene un un control de texto donde se
ingresan datos para buscar registros en una base de datos. Y tambin tenemos
un botn que contiene el cdigo que debe ejecutar para realizar la bsqueda
dentro de la base de datos. Si en algn momento el control de texto no
contiene datos, es decir no contiene texto valga la redundancia, no sera
necesario que el botn se encuentre habilitado, por el contrario, deberamos
deshabilitarlo.
Puedes probar este simple ejemplo, colocando un control Textbox , un botn y
pegando el siguiente cdigo en el formulario principal
Texto planoImprimir
1. Option Explicit
2.
3.
4. Private Sub Command1_Click()
5.
6. End Sub
7.
8. Private Sub Form_Load()
9.
Text1.Text = ""
121
10.
11.
12.
13.
14.
15.
16.
17.
18.
Command1.Enabled = False
Else
19.
20.
21.
Command1.Enabled = True
End If
End Sub
Nota. El ejemplo no tiene ninguna utilidad especifica, solo muestra el uso del
ejemplo.
122
Debes colocar dos controles textBox. Text1 y Text2, y todos los botones que
desees, por ejemplo 4 como mustra la imagen de abajo
Al colocar el cursor en el Text1 se habilitarn todos los botones, luego al
colocar el cursor en el Text2, es decir cuando recibe el foco, se deshabilitarn
todos los botones.
Texto planoImprimir
1. Option Explicit
2.
3. Private Sub Form_Load()
4.
5.
6.
7.
8. End Sub
9.
10.
11.
12.
13.
14.
15.
123
16.
17.
18.
19.
xCtrl.Enabled = bValue
20.
21.
22.
End If
Next
End Sub
23.
24.
'\\ -- Deshabilitar
25.
26.
27.
Call EnabledDisabled(False)
End Sub
28.
29.
'\\ -- Activar
30.
31.
32.
Call EnabledDisabled(True)
End Sub
124
Estas dos propiedades son muy simples de usar y son comunes a la mayora
de objetos y controles de vb
Mousepointer devuelve o establece el tipo de puntero del mouse mostrado al
pasar por encima de un objeto
MouseIcon establece un icono personalizado para el mouse
Ejemplo. Colocar un control ListBox y un botn. Pegar el siguiente cdigo
fuente en el formulario
Texto planoImprimir
1. Option Explicit
2.
3. Private Sub Form_Load()
4.
5.
With Command1
6.
7.
.MousePointer = 99
8.
9.
10.
.MouseIcon = Me.Icon
End With
11.
125
12.
13.
With List1
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
.AddItem "Custom"
26.
End With
27.
28.
End Sub
29.
30.
31.
32.
With List1
33.
34.
35.
End If
36.
126
37.
Command1.MousePointer = 99
38.
Command1.MouseIcon = Me.Icon
39.
40.
41.
End If
End With
End Sub
Mtodos y funciones
Este control prcticamente no contiene mtodos o funciones. El mas
importante y el mas utilizado es el mtodo SetFocus, que tambin lo posen
muchos otros controles.
Lo que hace el mtodo setFocus, es poder establecer el enfoque a un objeto
especifico, en este caso al botn. Su uso es muy simple, solo basta con
ejecutarlo desde alguna parte de nuestro programa para que el
Commandbutton pase a tener el foco.
Una cosa muy importante a tener en cuenta , es que para poder establecer el
foco a cualquier control de visual basic, el objeto se debe encontrar visible, y
tambin se debe encontrar habilitado. Es decir, si la propiedad Visible o la
propiedad Enabled del objeto se encuentran en False, esto producir un error
en tiempo de ejecucin. Por ello siempre se debe colocar una rutina de error
para poder controlar esto, o comprobando estas propiedades mediante una
instruccin If Then
Para recrear este error puedes ejecutar este cdigo
Coloca dos botones
Texto planoImprimir
127
1. Option Explicit
2.
3. Private Sub Command2_Click()
4.
5.
6.
Command1.SetFocus
7. End Sub
8.
9. Private Sub Form_Load()
10.
11.
Command1.Enabled = False
12.
13.
End Sub
With Command1
128
5.
6.
7.
.SetFocus
8.
End If
9.
End With
10.
End Sub
11.
12.
13.
14.
Por ejemplo para probar el uso de los mtodos GotFocus y LostFocus (recibe y
pierde el foco) colocar 3 CommandButton, Command1, Command2 y
Command3. Luego un Label1 que mostrar el control que recibe el foco
(GotFocus) y un Label2 que mostrar el control que pierde el foco (LosFocus)
Luego de aadir los controles pegar el cdigo siguiente en el formulario
Texto planoImprimir
1. Private Sub Command1_GotFocus()
2.
3. End Sub
4.
5. Private Sub Command2_GotFocus()
6.
7. End Sub
8.
9. Private Sub Command3_GotFocus()
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
130
20.
21.
22.
23.
131
132
Button As Integer, _
6.
7.
8.
9.
10.
End Sub
133
Private
Sub
Command1_Click()
'Si est seleccionado el Option1 se ejecuta la siguiente
condicin
135
If
MsgBox
End
Option1.Value
"Seleccionaste
=
pagar
True
en
'Si
est
seleccionado
el
Option2
If
Option2.Value
=
True
MsgBox "Seleccionaste pagar con Tarjeta de
End
'Si est
If
MsgBox
End
Then
Efectivo"
If
esta
Then
crdito"
If
End Sub
136
Al Option1 en la propiedad Caption escribir " Mostrar la hora del sistema "
y en el Option2 "Mostrar la Fecha del sistema".
Este ejemplo muy simple lo que hace es, cuando hacemos Click en el Option1,
se visualizar la hora en el Label1 usando la funcin Time que devuelve la
hora establecida del Pc. En cambio cuando hagamos Click en el Option2 se
visualizar la Fecha, en este caso usamos la funcin Date del Visual Basic que
recupera la Fecha.
137
Private
Sub
Form_Load()
'Le establecemos en tiempo de ejecucin algunas propiedades
al
control
Label1
'cuando
carga
el
formulario
'Esto hace que el control Label se ajuste al texto
Label1.AutoSize
=
True
'Esta lnea cambia la propiedad Forecolor del Label en azul
Label1.ForeColor
=
vbBlue
End
Sub
Private
'Mostramos
Label1
End
Private
'Mostramos
Label1
End Sub
en
el
Sub
Label1
la
fecha
en
el
Sub
Label1
la
=
Hora
Option1_Click()
del
Sistema
Date
Sub
Option2_Click()
del
sistema
Time
138
Ahora puede haber varios Option Button seleccionados, cosa que no ocurrira si
todos los OptionButton estaran en el mismo control contenedor.
Por ltimo coloca el Option3 y Option4 dentro del Frame1. Ahora estos 2 son
parte de un solo grupo dentro del Frame1, por lo tanto con esta prueba se ve
que solo puede haber uno con la propiedad Value en True, es decir un solo
botn de opcin seleccionado al mismo tiempo.
139
Enlaces relacionados
Volver al ndice
140
141
Este se puede programar con ciertas rutinas que se muestran al experimentar con
el mediante una Macro, ya que al guardarla permite definir un cdigo el cual
muestra al darle la opcin de editar, para esto se muestra el siguiente ejemplo:
En esta figura se puede observar cuales son los botones con los cuales se piensa
trabajar para desplegar las macros que hayamos guardado.
En esta figura estn las macros que se han guardado y se muestran varios
botones como es ejecutar, paso a paso, modificar, eliminar y opciones.
Si seleccionamos la opcin de ejecutar, el cdigo lo que har ser correr todo lo
que se tenga programado en la rutina del cdigo. Por ejemplo:
Si seleccionamos de nuestras macro la opcin de uso de formulas la cual es la
tercera y le damos ejecutar: automticamente se ejecutara el siguiente cdigo:
142
En este cuadro se puede ver como pregunta mi programa por cuantas veces
quiere que se cicle el codigo.
Aqu se puede ver como cambio la fases de modo de que de tener un desbalance
de mas de 60% lo dejo en tan solo un 8,8%., Y Todava se piensa en un futuro
bajar an ms el desbalance con el hecho de separar el numero de cargas. Nota:
cabe aclarar que solo se llevara por mientras un balance de lo que ha metido el
usuario a la tabla de Excel.
Y el programa para este modulo de balanceo es:
Sub Procedimientobalancear(n As Integer)
Dim ncarateres, m As Integer
Dim a2, e2, f2(7) As Double
Dim d2(7) As String
144
'se inicializan mis variables donde e2 que es una variable que es parte de un
arreglo que guarda todos los valores
' que se pueden anotar en la celda de balanceo de circuito
e2 = 0
a2 = Range("J" & ncolJ & "").Value
'se iguala m y n ya que es necesario cada vez que se actualiza el codigo decirle
que la celda de mi respuesta sugerida, es
'igual a la respuesta minima encontrada en algun balanceo anterior o el primero
m=n
'ncarateres guarda cuantas fases son las que se estan contando y se empieza a
tomar control mediante ifs
ncarateres = Range("E" & n).Value
If ncarateres = 1 Then
'aqui pertenece a tres opciones que puede haber por eso e2{0,1,2}, donde
calcamos escribir {A,B,C}, y al final comparar
'cual fue el resultado mas bajo y guardarla en otra casilla y asi para las demas
opcines
For e2 = 0 To 2
If e2 = 0 Then
d2(e2) = "A"
'con Range se elige la celda D&n que es una celda que va cambiando de valor
segun va cambiando n de nuestro procedi
'miento, donde se guarda el valor de la celda activa a una variabiable d2(e2) y se
compara al final con f2(e2) qu
'e es el valor que nos retorno al escribir ya sea {A,B,C}. Y lo mismo pasa para las
dems variables
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
f2(e2) = Range("J" & ncolJ & "").Value
End If
145
If e2 = 1 Then
d2(e2) = "B"
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
f2(e2) = Range("J" & ncolJ & "").Value
End If
If e2 = 2 Then
d2(e2) = "C"
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
f2(e2) = Range("J" & ncolJ & "").Value
End If
'aqui se hace la comparacin entre el valor que dio al entrar {A,B,C} Y lo que se
tenia guardado de la variable
'al inicio y se guarda como opcin de sugeriencia si fue menor en otra casilla la
cual es la k&m
If f2(e2) <= a2 Then
Range("K" & m & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
a2 = Range("J" & ncolJ & "").Value
End If
'finalmente aqui se toma de las tres opciones cual la opcin sugerida ideal y se
deja la opcion en la casillaa D&n.
If e2 = 2 Then
Range("K" & m & "").Select
d2(e2) = ActiveCell.FormulaR1C1
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
146
End If
Next
End If
'Aqui sucede lo mismo que el parrafo anterior solo que es para dos fases
{AB,AC,BC}
If ncarateres = 2 Then
For e2 = 3 To 5
If e2 = 3 Then
d2(e2) = "AB"
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
f2(e2) = Range("J" & ncolJ & "").Value
End If
If e2 = 4 Then
d2(e2) = "AC"
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
f2(e2) = Range("J" & ncolJ & "").Value
End If
If e2 = 5 Then
d2(e2) = "BC"
Range("D" & n & "").Select
ActiveCell.FormulaR1C1 = d2(e2)
f2(e2) = Range("J" & ncolJ & "").Value
End If
147
End Sub
149
'se restan los primeros 12 renglones que se cuentan para el siguiente numero para
que con esto podamos obtener el numero
'exacto de columnas a balancear o dicho de otra manera, solo cuenta los circuitos
contar2 = contar2 - 12
'se pone el lugar limite donde queremos balancear
limite = 10 + contar2
'se ingresa cuantas veces se desea repetir..para obtener un resultado mas exacto.
b = InputBox("ingresa cuantas veces quieres ciclar el for:", "desicion 2", "pon tu
numero aqui:")
'se repite el numero de veces que se piensa repetir el ciclo volviendo a empezar
en
For a = 1 To b
n = 11
ncolJ = contar2 + 12
For n = 11 To limite
Procedimientobalancear (n)
Next
Next
End Sub
150
Aqu se puede mostrar cual es el botn que indica nuestra funcin de balancear
las lneas y todo lo anteriormente mostrado.
Modulo de agregar informacin y datos
Para este modulo se quiz agregar la informacin de los textbox que se fueran
realizando
151
152
Cambio de formato de RowSource para que pueda cambiar la tabla dentro de los
valores que se dieron a la Tabla con el nombre de CONV.
153
'segn el valor del dato que se halla asignado para dar valor a nuestro combobox
si es igual a lo que esta escrito hara la
'funcin de convertirlo segn su equivalencia.
If ComboBox1.Value = "H.P." Then
TextBox11.Value = TextBox4.Value * 745.7
End If
If ComboBox1.Value = "WATTS" Then
TextBox11.Value = TextBox4.Value * 1
End If
If ComboBox1.Value = "KILOWATTS" Then
TextBox11.Value = TextBox4.Value * 1000
End If
If ComboBox1.Value = "JULIO POR SEGUNDO" Then
TextBox11.Value = TextBox4.Value * 1
End If
If ComboBox1.Value = "CABALLO DE VAPOR" Then
TextBox11.Value = TextBox4.Value * 735.499
End If
ComboBox2.RowSource = "OPCIONES"
End Sub
155
La idea de esto es que mi cdigo al detectar que sepa mi programa cargar las tres
situaciones y a cada una le asigne un numero, como se puede ver en la imagen.
Y esto se carga con el siguiente cdigo:
Modulo de conductor
Para este modulo es importante primero saber cmo defin su tabla, y la defin de
la siguiente manera:
Para cada tipo de conductor le corresponde una situacin, por ejemplo: si eligo la
situacin 1 en mi cdigo de conductor me dara dos opciones ya sea la del cobre o
el aluminio, mas sin embargo si se elige la situacin tres tengo tre opciones de
156
End Sub
En esta imagen vemos que es lo que se quiere lograr de opciones de las
siguientes tablas
157
tamao
nominal
mm2
0,8235
1,307
2,082
3,307
5,26
8,367
13,3
21,15
26,67
33,62
42,41
53,48
67,43
85,01
107,2
126,67
152,01
177,34
202,68
253,35
304,02
354,69
380,03
405,37
Tamao
nominal
AWGKcmil
18
16
14
12
10
8
6
4
3
2
1
1/0
2/0
3/0
4/0
250
300
350
400
500
600
700
750
800
456,04
506,71
633,39
760,07
886,74
1013,42
tamao
nominal
mm2
0,8235
1,307
2,082
3,307
5,26
8,367
13,3
21,15
26,67
33,62
42,41
53,48
67,43
85,01
107,2
126,67
152,01
177,34
435
455
495
520
545
560
520
545
590
625
650
665
585
615
665
705
735
750
355
375
405
435
455
470
425
445
485
520
545
560
480
500
545
585
615
630
900
1000
1250
1500
1750
2000
Tamao
nominal
AWGKcmil
18
16
14
12
10
8
6
4
3
2
1
1/0
2/0
3/0
4/0
250
300
350
202,68
253,35
304,02
354,69
380,03
405,37
456,04
506,71
633,39
760,07
886,74
1013,42
tamao
nominal
mm2
0,8235
1,307
2,082
3,307
5,26
8,367
13,3
21,15
26,67
33,62
280
320
355
385
400
410
435
455
495
520
545
560
335
380
420
460
475
490
520
545
590
625
650
665
380
430
475
520
535
555
585
615
665
705
735
750
225
260
285
310
320
330
355
375
405
435
455
470
270
310
340
375
385
395
425
445
485
520
545
560
305
350
385
420
435
450
480
500
545
585
615
630
400
500
600
700
750
800
900
1000
1250
1500
1750
2000
Tamao
nominal
AWGKcmil
18
16
14
12
10
8
6
4
3
2
42,41
53,48
67,43
85,01
107,2
126,67
152,01
177,34
202,68
253,35
304,02
354,69
380,03
405,37
456,04
506,71
633,39
760,07
165
195
225
260
300
340
375
420
455
515
575
630
655
680
730
780
890
980
107
886,74
0
115
1013,42
5
195
230
265
310
360
405
445
505
545
620
690
755
785
812
870
935
1065
1175
220
260
300
350
405
455
505
570
615
700
780
855
855
920
985
1055
1200
1325
130
150
175
200
235
265
290
330
355
405
455
500
515
535
580
625
710
795
155
180
210
240
280
315
350
395
425
485
540
595
620
645
700
750
855
950
175
205
235
275
315
355
395
445
480
545
615
675
700
725
785
845
960
1075
1
1/0
2/0
3/0
4/0
250
300
350
400
500
600
700
750
800
900
1000
1250
1500
1280
1445
875
1050
1185
1750
1385
1560
960
1150
1335
2000
21,15
26,67
33,62
42,41
53,48
67,43
85,01
107,2
126,67
152,01
177,34
202,68
253,35
304,02
354,69
380,03
405,37
456,04
506,71
633,39
760,07
886,74
1013,42
120
143
160
186
215
251
288
332
-------------------------------
125
152
171
197
229
260
297
346
-------------------------------
148
166
191
215
244
273
308
361
-------------------------------
94
109
124
145
169
198
227
260
-------------------------------
4
3
2
1
1/0
2/0
3/0
4/0
250
300
350
400
500
600
700
750
800
900
1000
1250
1500
1750
2000
Como se puede observar en las siguientes tablas primero esta la situacin para la
que fue hecha cada tabla y despus temperaturas y tipo de material, ara lo cual
estan diferentes entre cada una de ellas y tambin los tipos de aislantes para los
que puede trabajar cada parte de la tabla a lo que le corresponden ciertos
amperajes y que a su vez le corresponden ciertos calibres en AWG Kcmil, para
esto son los combo box que pusimos en cada parte del formulario, como se puede
ver en la siguiente figura.
162
163
164
En este caso vemos que para cada temperatura existe dos o hasta tres tipos de
conductores y para cada tipo de situacin existen 2 o tres tipo de conductores y
as es como se va ramificando nuestras opciones, para abarcar las 3 tablas que
tenemos.
Asi pues, cuando elegimos una situacin, se activa un ndice de la columna
situacin y cuando elegimos en otro combo box un conductorse activa un cdigo
de conductor y nos despliega esa lista de opciones y finalmente elegimos la
opcin que nos da para elegir la temperatura, pero no acaba todo ah, tambin se
debe elegir el aislante por lo cual se hizo la siguiente tabla.
CODIGO DE
SITUACIN
CODIGO DE
CONDUCTOR
1
1
1
1
1
1
1
1
1
1
1
1
1
1
CODIGOTEMPERAT CODIGO
AISLAMIEN
URA
AISLAMIENTO TO
1
1
TW*
TWD*
1
2
CCE
1
3
1
4 TWD-UV
2
1
RHW*
THHW*
2
2
THW
2
3
165
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
2
2
2
2
3
3
3
3
3
3
3
3
1
2
2
2
3
3
3
3
1
2
2
2
2
2
2
3
3
3
3
3
3
3
3
1
2
2
3
3
3
3
3
3
1
1
1
2
2
2
166
4
5
6
7
1
2
3
4
5
6
7
8
1
1
2
3
1
2
3
4
1
1
2
3
4
5
6
1
2
3
4
5
6
7
8
1
1
2
1
2
3
4
5
6
1
2
3
1
2
3
THW-LS
THWN*
XHHW*
TT
RHH*
RHW-2
THHN*
THHW
THHW-LS
THW-2*
XHHW*
XHHW-2
UF*
RHW*
XHHW*
BM-AL
RHW-2
XHHW
XHHW-2
DRS
TW
RHW
THHW
THW
THW-LS
THWN
XHHW
RHH
RHW-2
THHN
THHW
THW-LS
THWN-2
XHHW
XHHW-2
UF
RHW
XHHW
RHH
RHW-2
USE-2
XHH
XHHW
XHHW-2
FEP
FEPB
SF
FEP
FEPB
SF
3
3
3
2
2
3
1
1
2
1 PFAH
2 TFE
1 Z
167
Figura donde se puede ver cmo funciona nuestra funcin coincidir anidada en
ndice para poder extraer el amperaje inmediato superior,
La funcin coincidir tiene la siguiente sintaxis
COINCIDIR(valor_buscado,matriz_buscada, [tipo_de_coincidencia]) la funcin lo
que me hace es devolver un valor que corresponda al tipo de coincidencia que yo
desee en una matriz buscada, pero muchas de las veces devolvindome el valor
de la posicin vertical y no el valor y para ello se utiliza la funcin ndice, la cual su
sintaxis es la siguiente: INDICE(matriz; nm_fila; [nm_columna]), en este caso
como con la funcin coincidir ya tenemos el calibre exacto, lo nico que
procedemos es a encontrar que amperaje es con el el que se esta trabajando para
dar un amperaje inmediato superior.
Ahora para esto antes bien se tuvo que saber de que calibre era nuestro conductor
y esto se hizo con la formula de coincidir, pero de otra manera.
168
XHHW
THW-2*
*
TT
XHHW*
XHHW2
Cobre
BUSCAR
COINCIDIR
INDICE
AMPERAJE
DE
MINIMA
DIFERENCI
A
Cobre
84,73863
636
0,261363
636
85
AMPERAJE
INMEDIAT
O
SUPERIOR
#CALIBRE
INMEDIAT
O
SUPERIOR
1013,42
886,74
760,07
633,39
506,71
456,04
405,37
380,03
354,69
304,02
253,35
202,68
177,34
152,01
126,67
107,2
85,01
67,43
53,48
42,41
Cobre
560
545
520
495
455
435
410
400
385
355
320
280
260
240
215
195
165
145
125
110
85
85
95
85
90
85
665
650
625
590
545
520
490
475
460
420
380
335
310
285
255
230
200
175
150
130
750
735
705
665
615
585
555
535
520
475
430
380
350
320
290
260
225
195
170
150
170
470
455
435
405
375
355
330
320
310
285
260
225
210
190
170
150
130
115
100
85
560
545
520
485
445
425
395
385
375
340
310
270
250
230
205
180
155
135
120
100
630
615
585
545
500
480
450
435
420
385
350
305
280
255
230
205
175
150
135
115
2000
1750
1500
1250
1000
900
800
750
700
600
500
400
350
300
250
4/0
3/0
2/0
1/0
1
33,62
26,67
21,15
13,3
8,367
5,26
3,307
2,082
1,307
0,8235
tamao
nominal
mm2
BUSCAR
AMPERAJE
DE
MINIMA
DIFERENC
IA
AMPERAJE
INMEDIAT
O
SUPERIOR
95
85
70
55
40
30
25
20
0
0
115
100
85
65
50
35
25
20
0
0
130
110
95
75
55
40
30
25
18
14
75
65
55
40
0
0
0
0
0
0
90
75
65
50
0
0
0
0
0
0
100
85
75
60
0
0
0
0
0
0
2
3
4
6
8
10
12
14
16
18
80
105
145
105
171
95
100
110
#CALIBRE
INMEDIAT
O
SUPERIOR
1013,42
886,74
760,07
633,39
506,71
456,04
405,37
380,03
354,69
304,02
253,35
202,68
177,34
152,01
126,67
107,2
85,01
67,43
53,48
42,41
33,62
26,67
21,15
13,3
8,367
5,26
3,307
2,082
1,307
0,8235
tamao
nominal
mm2
4
1155
1070
980
890
780
730
680
655
630
575
515
455
420
375
340
300
260
225
195
165
140
120
105
80
60
40
30
25
0
0
3
1385
1280
1175
1065
935
870
812
785
755
690
620
545
505
445
405
360
310
265
230
195
170
145
25
95
70
50
35
30
0
0
6
1560
1445
1325
1200
1055
985
920
855
855
780
700
615
570
505
455
405
350
300
260
220
190
165
140
105
80
55
40
35
24
18
3
960
875
795
710
625
580
535
515
500
455
405
355
330
290
265
235
200
175
150
130
110
95
80
60
0
0
0
0
0
0
4
1150
1050
950
855
750
700
645
620
595
540
485
425
395
350
315
280
240
210
180
155
135
115
100
75
0
0
0
0
0
0
4
1335
1185
1075
960
845
785
725
700
675
615
545
480
445
395
355
315
275
235
205
175
150
130
110
80
0
0
0
0
0
0
2000
1750
1500
1250
1000
900
800
750
700
600
500
400
350
300
250
4/0
3/0
2/0
1/0
1
2
3
4
6
8
10
12
14
16
18
Tamao
nominal
AWGKcmil
NIQUEL O
NIQUIEL
RECUBIERTO
DE COBRE
COBRE
BUSCAR
ALUMINIO
84,738636
36
AMPERAJE DE
MINIMA
DIFERENCIA
76
AMPERAJE
INMEDIATO
SUPERIOR
96
110
93
94
#CALIBRE
INMEDIATO
SUPERIOR
1013,42
886,74
760,07
633,39
506,71
456,04
405,37
380,03
354,69
304,02
253,35
202,68
177,34
152,01
126,67
107,2
85,01
67,43
53,48
42,41
33,62
26,67
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
332
288
251
215
186
160
143
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
346
297
260
229
197
171
152
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
361
308
273
244
215
191
166
173
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
260
227
198
169
145
124
109
2000
1750
1500
1250
1000
900
800
750
700
600
500
400
350
300
250
4/0
3/0
2/0
1/0
1
2
3
21,15
13,3
8,367
5,26
3,307
2,082
1,307
0,8235
120
96
76
55
43
34
0
0
125
110
83
60
45
36
0
0
148
117
93
73
54
39
0
0
94
75
0
0
0
0
0
0
4
6
8
10
12
14
16
18
174
175