Vous êtes sur la page 1sur 10

Editions ENI

VBA Excel 2007


Programar en Excel: Macros y Lenguaje VBA

coleccin Recursos Informticos

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

       

3URSLHGDGHV

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

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

9DORUHV GHYXHOWRV



9%$([FHO

2EMHWRVGH([FHO E 2SFLRQHVGHODFDWHJRUtD)yUPXODV

(GLWLRQV (1,  $OO ULJKWV UHVHUYHG

1


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

3URSLHGDGHV

   

[O&DOFXODWLRQ$XWRPDWLF [O&DOFXODWLRQ0DQXDO [O&DOFXODWLRQ6HPLDXWRPDWLF


%RROHDQ %RROHDQ (QWHUR ODUJR 'REOH

&RQVWDQWH

9DORUHV GHYXHOWRV

3URJUDPDUHQ([FHO0DFURV\OHQJXDMH9%$



&DStWXOR

1


5HIHUHQFH6W\OH

3URSLHGDGHV

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

Editions ENI

VBA Excel 2007


Aprenda a crear aplicaciones profesionales

coleccin Prcticas Tcnicas

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

 Un nmero de ndice se refiere a: , un nico elemento de una tabla. - muchos elementos de una tabla.  Una tabla de tipo Variant puede contener otras tablas si es: , esttica - 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 E F







No se indican los lmites. Se usa Private dentro del procedimiento. 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