You are on page 1of 14

Editions ENI

VBA Excel 2007


Programar en Excel: Macros y Lenguaje VBA

coleccin Recursos Informticos

Extracto del Libro

2EMHWRVGH([FHO

$ (OREMHWR$SSOLFDWLRQ
(O REMHWR $SSOLFDWLRQ UHSUHVHQWD OD DSOLFDFLyQ 0LFURVRIW ([FHO DFWLYD (V HO REMHWR SRU GHIHFWR \ SRU OR WDQWR HV JHQHUDOPHQWH RSFLRQDO HMHPSOR 9HUVLRQ HTXLYDOH D $SSOLFDWLRQ9HUVLRQ  (VWH REMHWR FRQWLHQH ODV SURSLHGDGHV UHODWLYDV DO HQWRUQR ([FHO RSFLRQHV GH ([FHO HWF \ D OD SUHVHQWDFLyQ GH OD LQWHUID] SXQWHUR GHO UDWyQ WH[WR GH OD EDUUD GH HVWDGR WDPDxR \ HVWDGR GH OD YHQWDQD GH OD DSOLFDFLyQ HWF  KD\ GLVWLQWRV PpWRGRV SDUD UHDOL]DU DFFLRQHV HQ HO HQWRUQR ([FHO SURSLHGDGHV TXH GHYXHOYHQ REMHWRV \ FROHFFLRQHV GH SULPHU QLYHO REMHWRV \ FROHFFLRQHV GHO PRGHOR GH REMHWRV ([FHO :RUNERRNV &KDUWV HWF  SURSLHGDGHV HVSHFtILFDV TXH KDFHQ UHIHUHQFLD GLUHFWD D REMHWRV $FWLYH&HOO $FWLYH6KHHW $FWLYH:LQGRZ HWF /DV SURSLHGDGHV TXH KDFHQ UHIHUHQFLD D REMHWRV VH H[SOLFDQ HQ HO FDStWXOR DQWHULRU

 3URSLHGDGHVTXHUHSUHVHQWDQODVRSFLRQHVGH([FHO
/DV SULQFLSDOHV RSFLRQHV GH ([FHO SXHGHQ VHU GHYXHOWDV R GHILQLGDV D SDUWLU GH SURSLHGDGHV GHO REMHWR $SSOLFDWLRQ /D PD\RUtD GH HVWDV SURSLHGDGHV VRQ GH OHFWXUD \ HVFULWXUD 3DUD DFFHGHU D ODV RSFLRQHV ([FHO HQ OD YHUVLyQ  KDJD FOLF HQ HO ERWyQ
(GLWLRQV (1,  $OO ULJKWV UHVHUYHG

0LFURVRIW 2IILFH

\ OXHJR HQ HO ERWyQ 2SFLRQHV GH ([FHO VLWXDGR HQ OD SDUWH LQIHULRU GHO FXDGUR GH GLiORJR 

3URJUDPDUHQ([FHO0DFURV\OHQJXDMH9%$



&DStWXOR D 2SFLRQHVGHODFDWHJRUtD0iVIUHFXHQWHV

1
       

3URSLHGDGHV

6KRZ6HOHFWLRQ)ORDWLHV (QDEOH/LYH3UHYLHZ 6KRZ'HY7RROV $OZD\V8VH&OHDU7\SH 6WDQGDUG)RQW 6WDQGDUG)RQW6L]H 6KHHWV,Q1HZ:RUNERRN 8VHU1DPH

9DORUHV GHYXHOWRV

%RROHDQ %RROHDQ %RROHDQ %RROHDQ (QWHUR ODUJR (QWHUR ODUJR (QWHUR ODUJR &DGHQD GH FDUDFWHUHV



9%$([FHO

2EMHWRVGH([FHO E 2SFLRQHVGHODFDWHJRUtD)yUPXODV

(GLWLRQV (1,  $OO ULJKWV UHVHUYHG

1


3URSLHGDGHV

&DOFXODWLRQ &RQVWDQWHV &DOFXODWH%HIRUH6DYH ,WHUDWLRQ 0D[,WHUDWLRQV 0D[&KDQJH

9DORUHV GHYXHOWRV [O&DOFXODWLRQ$XWRPDWLF [O&DOFXODWLRQ0DQXDO [O&DOFXODWLRQ6HPLDXWRPDWLF


%RROHDQ %RROHDQ (QWHUR ODUJR 'REOH &RQVWDQWH

   

3URJUDPDUHQ([FHO0DFURV\OHQJXDMH9%$



&DStWXOR

1


3URSLHGDGHV

5HIHUHQFH6W\OH

9DORUHV GHYXHOWRV
&RQVWDQWHV

  

'LVSOD\)RUPXOD$XWR&RPSOHWH *HQHUDWH7DEOH5HIV *HQHUDWH*HW3LYRW'DWD

[O$ [O5&

[O*HQHUDWH7DEOH5HI6WUXFW [O*HQHUDWH7DEOH5HI$
%RROHDQ

%RROHDQ &RQVWDQWHV

2SFLRQHVGHFRPSUREDFLyQGHHUURUHV

/DV VLJXLHQWHV SURSLHGDGHV GHSHQGHQ GH OD SURSLHGDG (UURU&KHFNLQJ2SWLRQV GHO REMHWR $SSOLFDWLRQ (VWD SURSLHGDG GHYXHOYH XQ REMHWR (UURU&KHFNLQJ2SWLRQV TXH UHSUHVHQWD ODV RSFLRQHV GH FRPSUREDFLyQ GH HUURUHV SDUD XQD DSOLFDFLyQ

          

3URSLHGDGHV

%DFNJURXQG&KHFNLQJ ,QGLFDWRU&RORU,QGH[ (YDOXDWH7R(UURU ,QFRQVLVWHQW7DEOH)RUPXOD 7H[W'DWH 1XPEHU$V7H[W ,QFRQVLVWHQW)RUPXOD 2PLWWHG&HOOV 8QORFNHG)RUPXOD&HOOV (PSW\&HOO5HIHUHQFHV /LVW'DWD9DOLGDWLRQ

%RROHDQ &RQVWDQWH ;O&RORU,QGH[ %RROHDQ %RROHDQ %RROHDQ %RROHDQ %RROHDQ %RROHDQ %RROHDQ %RROHDQ %RROHDQ

9DORUHV GHYXHOWRV



9%$([FHO

2EMHWRVGH([FHO F 2SFLRQHVGHODFDWHJRUtD5HYLVLyQ

2SFLRQHVGHUHYLVLyQRUWRJUiILFD

/DV VLJXLHQWHV SURSLHGDGHV GHSHQGHQ GH OD SURSLHGDG 6SHOOLQJ2SWLRQV GHO REMHWR $SSOLFDWLRQ (VWD SURSLHGDG GHYXHOYH XQ REMHWR 6SHOOLQJ2SWLRQV TXH UHSUHVHQWD ODV
(GLWLRQV (1,  $OO ULJKWV UHVHUYHG

RSFLRQHV GH UHYLVLyQ RUWRJUiILFD SDUD XQD DSOLFDFLyQ

1
      

3URSLHGDGHV

,JQRUH&DSV ,JQRUH0L[HG'LJLWV ,JQRUH)LOH1DPHV *HUPDQ3RVW5HIRUP 6XJJHVW0DLQ2QO\ $UDELF0RGHV 'LFW/DQJ

%RROHDQ %RROHDQ %RROHDQ %RROHDQ %RROHDQ &RQVWDQWH ;O$UDELF0RGHV (QWHUR ODUJR




9DORUHV GHYXHOWRV

3URJUDPDUHQ([FHO0DFURV\OHQJXDMH9%$

&DStWXOR G 2SFLRQHVGHODFDWHJRUtD*XDUGDU

1
    

3URSLHGDGHV

'HIDXOW6DYH)RUPDW $XWR5HFRYHU7LPH $XWR5HFRYHU3DWK 'HIDXOW)LOH3DWK (QDEOH$XWR5HFRYHU

9DORUHV GHYXHOWRV

&RQVWDQWH [O)LOH)RUPDW (QWHUR ODUJR &DGHQD GH FDUDFWHUHV &DGHQD GH FDUDFWHUHV %RROHDQ

/D RSFLyQ  VH DSOLFD DO OLEUR DFWLYR $SSOLFDWLRQ$FWLYH:RUNERRN 



9%$([FHO

Editions ENI

VBA Excel 2007


Aprenda a crear aplicaciones profesionales

coleccin Prcticas Tcnicas

Extracto del Libro

38

VBA Excel 2007


PRCTICAS TCNICAS

Captulo 4: Tablas
; Duracin: 1 hora 30 ; Palabras clave: declaracin,
cin, redimensionar, recorrido alcance, ndice, esttico, dinmico, lmite, inicializa-

; Objetivos
Uso de tablas para generar conjuntos de muchos elementos, generalmente del mismo tipo.

Prerrequisitos
Para comprobar los prerrequisitos necesarios, antes de encarar el TP, responda a las siguientes preguntas (ciertas preguntas admiten ms de una respuesta):

 Todos los elementos de una tabla: D tienen el mismo tipo de datos que el tipo declarado para la tabla. E pueden ser de diferente tipo si la tabla se declara de tipo Variant. F pueden ser de tipo String o Integer si la tabla se declara de tipo String.  Las tablas estticas: D tienen lmite superior e inferior. E no tienen ningn lmite. F tienen solamente lmite inferior.  Los elementos de una tabla se indexan: D de manera relativa. E secuencialmente.  El D E F
nmero de ndice por defecto del primer elemento de una tabla VBA es: -1 1 0

 Un nmero de ndice se refiere a: D un nico elemento de una tabla. E muchos elementos de una tabla.  Una tabla de tipo Variant puede contener otras tablas si es: D esttica E dinmica

Editions ENI - Reproduccin prohibida

Tablas
ENUNCIADOS DEL CAPTULO 4

39

 Una tabla declarada con la palabra clave Dim en un procedimiento es accesible: D por todos los procedimientos del mdulo. E por todos los procedimientos del proyecto. F slo en el interior de su procedimiento.  La dimensin mxima de una tabla VBA es: D 10 E 100 F 60  Se puede precisar los ndices inicial y final con la clusula: D To E For F Next  El siguiente procedimiento es incorrecto porque:
Sub ProcTest() Private TabTest(19) As String TabTest(19) = "paraso" Debug.Print "Vigsimo elemento :"; TabTest(19) End Sub

D No se indican los lmites. E Se usa Private dentro del procedimiento. F El signo de asignacin para tablas es :=.

Atencin
Todos los ejercicios se deben hacer con la opcin de base por defecto: Option base 0.

Enunciado 4.1: Declarar una tabla accesible por todos los procedimientos del proyecto
Duracin estimada: 5 minutos
Declare una tabla pblica de 100 elementos enteros. Dle el nombre TabPub.

Editions ENI - Reproduccin prohibida

40

VBA Excel 2007


PRCTICAS TCNICAS

&

Enunciado 4.2: Declarar una tabla accesible solamente por los procedimientos del mdulo
Duracin estimada: 5 minutos
Declare una tabla de fechas con 100 elementos a nivel de mdulo. Dle el nombre TabFecha.

'

Enunciado 4.3: Usar una tabla declarada en un procedimiento


Duracin estimada: 10 minutos
 Declare una tabla de palabras con 100 elementos. Esta tabla es local a un procedimiento llamado EX3. Dle el nombre TabPal.  Complete el procedimiento EX3 para que muestre los lmites inferior e superior de la tabla TabPal (enunciado 4.3). Asgnele la palabra "ocano" al primer elemento. Muestre tambin este elemento con Debug.Print.

Sugerencia
Las funciones LBound y UBound devuelven respectivamente los lmites inferior y superior de la tabla.

Atencin
Si es necesario, haga clic en Ver - Ventana inmediato para ver el resultado.

Enunciado 4.4: Usa una tabla a nivel de mdulo


Duracin estimada: 5 minutos
Use la tabla TabPub (enunciado 4.1) en un procedimiento llamado EX4. Asgnele el valor 123 al ltimo elemento. Muestre este elemento con Debug. Print.

Enunciado 4.5: Inicializar una tabla con un bucle


Duracin estimada: 5 minutos
Procedimiento EX5. Llene una tabla local llamada TabInit con 10 valores enteros aleatorios de 1 a 100. Muestre todos los valores junto con el total de la tabla.
Editions ENI - Reproduccin prohibida

Tablas
ENUNCIADOS DEL CAPTULO 4

41

Sugerencia
Use la instruccin Randomize que inicializa el generador de nmeros aleatorios y la funcin Rnd. Ejemplo:
Dim MiValor Randomize Inicializa el generador de nmeros aleatorios. Devuelve un valor aleatorio comprendido entre 1 y 6. MiValor = Int((6 * Rnd) + 1)

Use el bucle For...Next para llenar la tabla.

Enunciado 4.6: Declarar y usar una tabla de dos dimensiones


Duracin estimada: 5 minutos
Declare y use una tabla multidimensional de tipo entero con 5 filas y 5 columnas (option base por defecto). Esta tabla es local a un procedimiento llamado EX6. Dle el nombre Tab2D. Inicialice la tabla con nmeros aleatorios de 1 a 100. Muestre todos los elementos recorriendo la tabla por filas y columnas. Ejemplo:

Editions ENI - Reproduccin prohibida

42

VBA Excel 2007


PRCTICAS TCNICAS

Enunciado 4.7: Declarar y usar una tabla de ms de dos dimensiones


Duracin estimada: 10 minutos
 Declare una tabla tridimensional de tipo entero a nivel de mdulo de 10 por 10 por 50. Dle el nombre Tab3D.  Cree un procedimiento llamado EX7. Asigne el valor 777 al 5000 elemento de la tabla dimensional Tab3D (enunciado 4.7). Muestre este elemento.

Enunciado 4.8: Declarar y usar una tabla dinmica


Duracin estimada: 10 minutos
Procedimiento EX8: cree una tabla dinmica de tipo mdulo de una columna que contenga nmeros. Dle a la tabla el nombre TabDin. Muestre un cuadro de entrada para asignar al ltimo elemento segn tamao de la tabla. Muestre este elemento.

Atencin
Evite indicar un tamao demasiado grande para no saturar la memoria.

Enunciado 4.9: Agrandar una tabla dinmica, manteniendo los valores iniciales
Duracin estimada: 15 minutos
Procedimiento EX9: use la tabla dinmica TabDin (enunciado 4.8). Pregunte un primer tamao y luego otro para agrandar la tabla. Muestre los dos tamaos, asignados a los elementos correspondientes de la tabla.

Editions ENI - Reproduccin prohibida

Tablas
ENUNCIADOS DEL CAPTULO 4

43

Ejemplo con TabDin(Tamao1) = 4 y TabDin(Tamao2) = 9

Sugerencia
Use la palabra clave Preserve para conservar los primeros elementos de la tabla.

Enunciado 4.10: Mostrar los elementos de una tabla con ayuda de un bucle
Duracin estimada: 10 minutos
Escriba el procedimiento EX10 que muestra una tabla de multiplicacin segn la eleccin del operador. Ejemplo:

Editions ENI - Reproduccin prohibida

You might also like