excela
TRANSCRIPT
-
8/18/2019 excelA
1/322
Microsoft Excel conVisual Basic for Applications
Manual del Participante
-
8/18/2019 excelA
2/322
-
8/18/2019 excelA
3/322
TABLA DE CONTENIDO
Gestión de MacrosCrear una nue"a #acro
$or#as de e%ecutar una nue"a #acro
Eli#inar #acros
Grabarmacros........................................................ 5
Gra(ación a(soluta ) relati"a *
Gra(ación con referencia a celda a(soluta *
Gra(ación con la referencia de celda relati"a +Enlazar macro a un botón de comando................................................12
,e-uridad de #acros
.so de #acros en for#ularios
E%ecutar la #acro/ A(realu#nos
Asi-nar #acros a (otones en for#ularios
Asi-na r #acros a otros controles en for# ularios
Plantillas con for#ularios ) #acros
.sar plantillas predefinidas
Crear plantillas personali3adas
.tili3ar plantillas personali3adas 24
E%ercicios pr4cticos con #acros
LA $IC6A P7OG7AMADO7 &2
.NA 78PTDA VI,TA DE LO, G7.PO, DE OPCIONE, DE LA $IC6AP7OG7AMADO7
G7.PO C9DIGO
-
8/18/2019 excelA
4/322
GRUPO COMPLEMENTOS................................................................... 1
GRUPO CONTROLES........................................................................... 1
GRUPO!ML.......................................................................... 1
GRUPO MO"#$#C%R............................................................................ 1
a&Ed'tor de (')ual *a)'c. . 2b&Entrar + )al'r del ed'tor de (*%..................................................... 2
(ENT%N% "E PRO,ECTOS....................................................-
(ENT%N% "E PROP#E"%"ES..................................................
MO"UL
O* ETOS "E E!CE
L%S COLECC#ONES. /LOS O* ETOS 0OR *OO , 0OR S EET 3L#*RO , O %&.........
O* ETO R%NGE , L% PROP#E"%"ES CELLS........................... 5
PROCE"#M#ENTO
$UNC#ONE
E(ENT
CO"#GOS "E E
P%LET% "E COLORES............................................................4
SELECC#6N "E $#L%S................................................................-7
SELECC#6N "E COLUMN%S. .
#NSTRUCC#6N 0#T .C6"#GOS "E $ORM%TO..................................................................--
TR%*% %R CON L#*ROS , O %S...................................................-5
C6"#GO *8S#CO "E USO $RECUENTE9......................................../2
E ERC#C#OS PR8CT#COS CON %PL#C%C#6N "E C6"#GO "E M%CROS./
-
8/18/2019 excelA
5/322
C%P#TULO -. LENGU% E (#SU%L *%S1C "E %PL#C%C#ONES3(*%&.................................................................................... -5
-
8/18/2019 excelA
6/322
$unda#entos de Pro-ra#ación VBA
SentenciaDIM.................................................................................................... 69
Tipos de "aria(le/ 5:
Varia(le Variant 5:
Declaración de Varia(les
Di#ensionar "aria(les
.tili3ar "aria(les
Vida de las "aria(les +'
Las "aria(les est4ticas
Varia(les a ni"el de procedi#iento
Varia(les a ni"el de #ódulo
Ni"el de #ódu lo ;Pri"ado<
Ni"el de #ódu lo ;P=(lico<
Varia(les a ni"el de aplicación
El ni"el de acceso de una "aria(le - lo(al
U)ar la 'n)trucc'ón O:t'on E;:l'c't....................................................51
Constantes...................................................................................................... 81
Los Procedi#ientos 1!
Procedi#iento $unction 1'
Estructuras de pro-ra#ación
In-reso de datos/ E#plear las funciones Ms-Box> InputBox
Constantes para Ms-Box
InputBox ;Cuadro de entrada<
E%ercicios pr4cticos con e#pleo de estructuras secuenciales
-
8/18/2019 excelA
7/322
#n)trucc'ón Select....Ca)e. .
O:t'on Com:are Marco......................................................................121
%n'dac'ón.............................................................................12
Select ... Ca)e en com:arac'ón con...................#= ... T>en ... El)e. 12-
Contador......................................................................................................... 129
%cumulador. .
#n'c'al'zar lo) contadore) + acumuladore). .#n)trucc'one). .
For.. Next......................................................................... 131
La :ro:'edad O?)et. .
ForEac Next................................................................................................... 1!3
Generar 7e-ión de colores @ue e#plea VBA
Do" i#e............................................................ 1!8
"o Loo:. .
Crear $ormular'o..............................................................................1/7#n)ertar U)er$orm)....................................................................1/2Controle) del =ormular'o. .
%@ad'r controle) a un U)er$orm..........................................................1/-
%@ad'r :roced'm'ento) de control de eAento)..................................1 7Cod'Bcar el botón Cancelar..............................................................1 7
Cómo eDecutar un =ormular'o ........................................................1 1Proceso de colocar en una celda el dato in-resado
L'm:'ar el Conten'do del =ormular'o.................................................1 / TrabaDar con U)er$orm)...................................................................157
-
8/18/2019 excelA
8/322
Pro)ecto/ 7e-istro de datos en cursos
Crear el formu tario...........................................................................................................181
A-re-ar el códi-o
#n'c'al'zac'ón del =ormular'o9................................................................15
=Có#o funciona el códi-o de iniciación
ConBFurar lo) *otone) de Comando...................................................15/
Có#o funciona el códi-o del e"ento C#dIn-resar Clic
Ge)t'ón de la) ca)'lla) de Aer'Bcac'ón................................................1
-
8/18/2019 excelA
9/322
Blo@ues de control de errores ) On Error Goto
La Declaración 7esu#e
La Pri#era for#a de 7esu#e
La se-unda for#a de 7esu#e es 7esu#e Next
La tercera for#a de 7es u #e es 7esu#e la(el
Control de errores con #=ltiples procedi#ientos
DEP.7ACI9N DE P7OG7AMA, !!+
.so del editor para depurar pro-ra#as
La Aentana #nmed'ato. .......................................................................................... 22
El o(%eto De (u-
Puntos de interrupción !&2
7ecorrer procedi#ientos paso a paso
7ecorrer el códi-o
Ventana Locales !&!
Ventana de Inspección !&!
Introducción al Mane%o de Errores
En caso de error ,altar a una eti@ueta
Ir a una eti@ueta nu#erada
7eanudar el flu%o de códi-o
Tipos de error
Errores de sintaxis
Los errores en tie#po de e%ecución !''
El o(%eto Err
El n=#ero de error
El #ensa%e de error
Co#pilar #ódulos
Opti#i3ación de VBA !*+
-
8/18/2019 excelA
10/322
Acceso a celdas en un ran-o
Modo de c4lculo
Los Fndices de la colección
Constantes............................................................................. 259
Vinculación anticipada !*:
La3os $O7 EAC6 !*:
O(%eto 7an-e no O(%eto de selección
La actuali3ación de pantalla !52
O(%etos si#ples en lu-ar de O(%etos co#puestos
Declaración especFfica del tipo de o(%eto
"eclarac'one) con 0#T ..................................................................2/1
$unciones de ?o%a de c4lculo
$unciones =tiles !50
-
8/18/2019 excelA
11/322
-
8/18/2019 excelA
12/322
P4-ina 0 Pro-ra#a Nacional de Infor#4tica
Ca
Gestión de MacrosO(%eti"os/2 Gestión de #acrose .so de #acros en for# ularios
2 Plantillas con for#ularios ) #acros2 E%ercicios pr4cticos con #acros ) for# ula rios
-
8/18/2019 excelA
13/322
$i- 0/ Las Macros en Excel
Gestión de Macros,i rea l i3a una ta rea en for#a conti nua en Microsoft Excel> puede auto#ati3ar la tarea
#ediante una #acro .na #acro es una serie pasos ;$i- !< @ue inclu)e la selección deco#andos ) funciones @ue se al #acenan en una aplicación de Microsoft Visua l Basice# pleando un #ódulo ) se puede e%ecuta r cada "e3 @ue re@uiera para lle"ar a ca(ouna tarea
$i- ! / Pasos en una Macro
Crear una nue"a #acro
AI crea r una #acro> Excel al#acena la acción @ue reali3a en cada paso @ue ?aceun clic so(re un co#ando o so(re un (otón .na "e3 @ue se ?a ter# inado dedar los pasos necesa rios se de(e - ua rda r la #acro ) a contF nuación> e%ecutar la#acro para repetir> o Hreprod ucirH los co#andos ,e de(e tener #u) en cuenta@ue si co#ete un error a l -ra(ar la #acro> las correcciones reali3adas ta#(i n sere-istran co#o parte de la #acro Visual Basic al#acena el códi-o -eneradoen cada #acro en un nue"o #ódulo ad%u nto a un li(ro
-
8/18/2019 excelA
14/322
IJ K
Selecc'on ndola deuna Aa.. L%
del F ru:o Cód'Fo en la$'c>a "e)arrollador.
En la fi-ura & se #uestran lospasos @ue se pro-ra #a r4n parala presentación del for# ula riode Excel pa ra -estionar datos
en for#ato de ta(la
Pasos @ue de(en se-u irse/0 Clic en el (otón for#u tario! Clic en los (otones de
recorrido& Cl ic en el (otón Cerra r
$i- ! / Macro pa ra #ostrar el for# ulario
$or#as de e%ecutar una nue"a #acro,e puede e%ecuta r una #acro e#pleando al-una de las si-u ientes for#as/
0
$i- ' ,eleccionar #acro para E%ecutarla! Mediante una co#(inación de teclas
& Asi- nando la #acro a un (otón dela (arra de ?erra# ientas de acceso r4pido
-
8/18/2019 excelA
15/322
' Asi-nando la #acro a un Botón de co#ando u otro control de for#u la rio
a En este caso la #acro se e%ecuta a l ?acer clic en un (otón de co#ando( La #acro se asocia o enla3a al (otón de co#ando> tal co#o se #uestraen la si-uiente fi- ura *
$i- & Enla3a r #acro a Botón de co#ando
Eli#inar #acros
Las #acros @ue )a no se re@uieran se eli#inan desde el cuad ro de di4lo-o #acro;$i- 5 en la fic?a Desarrollador
$i- 5 Eli#i nar una Macro
-
8/18/2019 excelA
16/322
celdaI lo ue )'Fn 'Bca ue la) ub'cac'one)
macro )ólo =u nc'ona con la) d'recc'one)
Cuando F rabe una macro con la re=erenc'a d Qr' J J Q' Q a
Gra(ar #acrosEs i#portante @ue se ten-a definido clara#ente el procedF #iento co# pleto parareali3a r la ta rea @ue se desea auto#ati3ar> pues co#o se ?a dic?o antes> si
d urante la -ra(ación de cada uno de los pasos @ue confor#ar4n la #acro> se
co#ete error en al-u no de ellos> stos @uedar4n - ra (ados co#o parte delprocedi#iento,e de(e tener #u) presente> lo si- uiente/,i )a tiene la se-uridad de sa(er el procedi#iento Jpaso a pasoJ de la tarea aauto#ati3a r se procede a - ra(ar d ic?os pasos en una nue"a #acro
Gra(ación a(soluta ) relati"a
de celda relati"a ;$i- + las acciones- ra(adas en la #acro son relati"as a la
u(icación de la celda inicial
$i- + 7eferencias 7elati"as
Los e%e#plos si- uientes re-istran la #is#a acción con la referencia de celda
a(sol uta ) relati"a a continuación
Gra(ación con referencia a celda a(solutaPa ra - ra(ar una #acro con referencia a celda a (soluta> si-a estos pasos/0 Crea r un nue"o li(ro en Microsoft Excel )> a continuación en la 6o%a0>
seleccione la celda B! de la ?o%a de c4lculo
! En la fic?a Desarrollador> el -ru po Códi-o> ?a-a clic en el (otónGra(ar Macro ;$i- 1<
K HGra?ar acr c
$i- 1 Iniciar la -ra(ación de la Nue"a Macro
-
8/18/2019 excelA
17/322
%)Fnar rraoo a
V eóado
Guardar rraoo enW Todo) lo) documento) Xlornal. do)&"e)o':oón9
$'F. 4 "ar nombre a la Macro.
*
En el cuadro no#(re de Macro> escri (a Gra(ación A(soluta )> a
contin uación> ?a-a clic en Aceptar ;$i- :<
' En la (arra de ?erra#ientas Detener -ra (ación> co# prue(e el aspectodel (otón 7eferencia relati"as ,i aparece presionado el (otón .sa r 7eferencias relati"as> ?a-a clic pa ra desacti"ar la -ra(ación relati"a
nu$i- * $i%ar 7eferencias 7elati"as
* Eseri (a prue(a )> a conti nuación> ?a-a clic en Introducir ;la #a rca de"erificación "erde en la (a rra de fór#ulas< ;$i- t 0<
G
Prue(a
$i- 5 Aceptar el Dato
5 En la fic?a Inicio> en el -ru po Porta papeles> ?a-a clic en el(otón Copiar )> a continuación> seleccione la celda C' Lue-o> ?a-a clicen el (otón Pe-a r en el -ru po Portapa peles Pulse la tecla Esc
-
8/18/2019 excelA
18/322
Nombre de la maoo9Crabaaón %b)oluta
Cancr
Notar ue el conten'do )'em:re )e Fuarda en la celda C4I no 'm:orta donde )e ub' uRe=erenc'a %b)oluta.
En la fic?a Desarrollador> -ru po Códi-o> ?a-a clic en Detener - ra(ación ;$i- 0!<
$i- + Detener la Gra(ación de la Macro
+ Para e%ecuta r la #acro - ra(ada> (orre los conten idos de las celdas B! )
C' 6a-a clic en otra celda> l ue-o> en la fic?a Desa rrollador> (otónMacros del - rupo Códi-o> en la Iista No#(re de Macro> ?a-a clic enGra (ación A(sol uta )> a conti nuación> ?a-a cl ic en E%ecutar ;$i- 0&<
$i- 1 E%ecutar la Macro
Gra(ación con la referencia de celda relati"a
-
8/18/2019 excelA
19/322
Pa ra -ra (a r una #acro con la referencia de celda relati"a> si-aestos pasos /
-
8/18/2019 excelA
20/322
Crea r un nue"o li(ro en Microsoft Excel )> a continuación en la6o%a0> seleccione la celda B! de la ?o%a de c4lculoEn la fic?a Desa rrollador> el -ru po Códi-o> ?a-a clic en el(otón Gra(a r Macro ;$i- 0'<
n
& En el cuadro no#(re de Macro> escri(a Gra(ación 7elati"a )> acontinuación> ?a-a clic en Aceptar
4. En la (arra de ?erra# ientas Detener -ra (ación> co#prue(e elaspecto del (otón 7eferencia relati"as ,i aparece presionado el(otón 7eferencia relati"as> ?a-a clic para desacti"ar la -ra(ación
relati"a ;$i- 0*<
u
Escri(a Prue(a )> a continuación> ?a-a clic en Introducir ;la #arcade "erificación "erde en la (arra de fór#u las< ;$i- 05<
/. En la fic?a Inicio> en el - rupo Portapapeles> ?a-a clic en el (otónCopiar )> a continuación> seleccione la celda C' Lue-o> ?a-a clic enel (otón Pe-a r en el -ru po Portapapeles Pu Ise la tecla Esc
+ En la fic?a Desarrollador> -ru po Códi-o> ?a-a clic en Detener - ra(ación ;$i- +<
5. Pa ra "er e%ecutar la #acro -ra (ada> Borre los contenidos de lasceldas B! ) C' 6a-a clic en al- una otra celda> Iue-o> en la fic?a
-
8/18/2019 excelA
21/322
9b R .
Mano) en9 E)te l'bro
Cancelar Y
Desarrollador> en el (otón Macros del -rupo Códi-o )> acontinuación> en la Iista no#(re de Macro> ?a-a clic enGra(ación 7elati"a )> a continuación> ?a-a clic en E%ecutar ;$i-01<
$i- 01 E%ecuta r la Macro
Notar4 @ue el contenido sie#pre se -uarda en la celda @ue se encuentraa la derec?a ) dos celdas de(a%o de la celda ori-en> no i#porta dondese u(i@ue la celda ori-en Esto es por el efecto de la 7eferencia 7elati"a
Acti"idad 0/ Crear un nue"a #acro para -enerar los #eses del aQo
-
8/18/2019 excelA
22/322
-
8/18/2019 excelA
23/322
RSu pasos se de(en reali3ar,e de(en reali3ar los si-uientes pasos/0 ,eleccionar Celda Inicial! Escri(ir Enero en la celda seleccionada
& Arrastrar ?asta -enera r el #es de Dicie#(re' Clic en la celda del #es de Enero
Todas estas acciones se de(en - uardar en un #acro con un no#(re @ue la identifi@ue
Procedi#iento de -ra(ación
0 ,eleccione lafic?a
Pr T Unual r
! En el -ru po Códi-o> realice lo si- uiente ;$i- 0:
-
8/18/2019 excelA
24/322
1 Enero
%rra)tre de)de e)ta e) u'na >a)ta la celda %12
P4-ina 00 Pro-ra#a Nacional de Infor#4tica
En este #o#ento e#pe3ar4a -ra(ar toda occión @uese realice ;Ten-a cuidado<
$i- 00 Inicio de la -ra(ación de la Macro
-. Selecc'one la Celda %1./. E)tando act'Aa la celda %#9 E)cr'ba Enero 3$'F. 22&.
. %rra)tre >a)ta la celda %12.
$i- !! Celda de Inicio de la Macro
En la fi-ura !& se #uestra la for#a en @ue de(e desa rrolla r la #acro/a< ,e #uestra el #es de Enero ) a l a rrastra r se "an presentando los si-u ienes
#eses> ?asta @ue se Ile-a a l #es de Dicie#(re(< El ran-o se @ueda seleccionado> por ello de(e ?acer cl ic en la celda AI
t Enero $e(rero
Mar3o' A(ril* Ma)o
Q uniou Iio
A-osto,eptie#(re
IOOctu(ret t No"ie#(re t! Dicie#(re
$i- 0! Generación de los Meses
1 Clic en la celda AI : Deten-a la -ra(ación ;$i- !'
-
8/18/2019 excelA
25/322
Mano .
Nomtve de la maoo:me)e)
$i- 0& Detener la Gra (ación
Enla3ar #acro a un (otón de co#ando.na "e3 @ue se ?a creado la #acro de(e e%ecutarla> se puede reali3ar desdeun (otón de co#ando Desde la $ic?a Desarrollador> - rupo Controles> clic en elco#ando Inserta r> Controles de for# ulario ) Clic en Botón0 Inserte un Botón en la celda EI! AI Ter#inar de tra3ar el rect4n-ulo so(re la celda>& ,e #uestra el cuadro de di4lo-o de la $i- !* /
' 6a-a clic en la #acro #eses* $inal#ente clic en el (otón de co#ando Aceptar
$i- 0' Asi-nar el No#(re de la Macro Meses
5 ,e #uestra el (otón con un texto predeter#inado/ Botón 0> proceda a ca #(iar el contenido ;$i- !5
-
8/18/2019 excelA
26/322
Genera Me)e)
P4-ina 0& Pro-ra#a Nacional de Infor#4tica
+ 6a-a clic so(re el texto1 Escri(a Genera #eses ;$i- !+<
E $
$i- 0* Nue"o Contenido
: 7esu Itado $inal/ E
Genera Meses
$i- 05 Nue"o Texto en el (otón de co#ando
02 6a-a clic en cual@uier celda "acFa ) Iue-o clic en el (otón Genera #eses ,e#uestran los #eses del aQo a partir de la celda seleccionada
,e-uridad de #acros
La se-uridad es un te#a i#portante cuando se tra(a%a con Excel !202 #acros ,ia(re las ?o%as de c4lculo @ue contienen #acros de fuentes externas> estas #acrospueden ser per%udiciales para su e@uipo De for#a predeter#inada> Excel leprote-e de la e%ecución de #acros> pero si "a a crear sus propias #acros> espro(a(le @ue desee ca#(iar la confi-uración de se-uridad de protección,i-a estos pasos para "er ) esta(lecer el ni"el de se-uridad de #acros en Excel!202/0 En la fic?a Desarrollador> ?a-a clic en el (otón ,e-uridad de #acroa ;$i-
!:< en el -ru po Códi-o
WX YY Y Gra(ar #acroVisual
$i- 0+ ,e-uridad de #acros
En el cuadro de di4lo-o Centro de confian3a seleccione Confi-uración de#acros ;$i- &2
-
8/18/2019 excelA
27/322
$i- 01 Centro de ConQan3a
! Esta(leciendo un ni"el de se-uridad/K Des?a(ilitan todas las #acros sin notificación/ Per#ite e%ecutar sólo
las #acros al#acenadas en una u(icación de confian3a 6a-a clic en laconfi-uración de u(icaciones de confian3a en el panel i3@uierdo para#ane%ar estas u(icaciones de confian3a Ade#4s> dado @ue las #acrosse des?a(ilitan auto#4tica#ente> esta opción desacti"a las alertas dese-uridad
K Dea?a(ilitar todaa laa #acros con notificación/ Muestra una alerta dese-uridad cuando un li(ro con #acros se a(re A continuación> puededecidir si desea ?a(ilitar las #acros asociadas con el li(ro Esta es laconfi-uración por defecto de Excel
K Des?a(ilitan todas las #acros excepto las fir#adasdi-ital#ente/ Puede e%ecutar sólo las #acros @ue est4n fir#adosdi-ital#ente
K 6a(ilitar todas las #acros/ Per#ite la e%ecución de #acros sinnotificación Esto puede ser =til si usted tiene un #ontón de #acros> pero
ser conscientes del ries-o al utili3ar #acros de fuentes desconocidas
& 6a-a clic en Aceptar.na fir#a di-ital es un sello electrónico cifrado> es una autenticación se-ura de o(tener de una autoridad de certificación co#ercial
-
8/18/2019 excelA
28/322
*+,ina )5 Pro-ra#a Nacional de Infor#4tica
.so de #acros en for#ularios
Excel proporciona una for#a sencilla de introducir datos en una (ase de datos deExcel En estos for#u larios personali3ados se insertar4n los controles deZindo[s @ue un usuario usa de for#a diaria al operar el siste#a operati"oZindo[s El uso #4s pr4ctico ) sencillo es preparar un for#ulario @ue sólo ten-acontroles de for#ulario co#o/ Cuad ros de texto> eti@uetas ) (otones deco#ando @ue facilita el in-reso de datos Va#os a ad#inistrar datos de alu#nos>cursos ) profesores #ediante un for#u lario de inicio ) controles de for#u larioEl for#ulario de inicio tendr4 la si-uiente apariencia ;$i- &0< /
H B E
!
$i- 0 : 6o%a de inicio de la auto#ati3ación
a< ,e e#plean & Botones de co#ando(< Cada (otón de co#ando> HLla#ar4J a los datos correspondientes> #ediante el
uso del for#ulario de Excel,e de(e contar con el (otón $or#ulario en la Barra dede Acceso r4pidoLos datos a e#plear son los si-uientes/
J "ato) de lo) %lu mno).J "ato) de lo) Cur)o).J "ato) de lo) Pro=e)ore).
?erra#ientas
-
8/18/2019 excelA
29/322
A B D E
2 Datos de los Alu#nos
Datos de los Alu# nos
B D
! DATO, DE LO, C.7,O,', Datos de los Cursos5 ;$i- &&<
+1
D E
Datos de los Profesores ;$i- &'<
,e re@uieren de & #acros/Macro 0/
A(rir for#ulario de Alu#nos> #acro de no#(re/ a(realu#nos
Macro 00/ A(rir for#ulario de Cursos> #acro de no#(re/ a(recursos
C5di-o ApelI/Z 6orarioC 022 Zindo[s 21 22 02 &2C 020 or C ]2! Zord 02&2 0&22C 02& Excel 2122 02&2
02 &2 0& 220+22 0:&221 2502&&02&2 0&220+22 0:&2
-
8/18/2019 excelA
30/322
Grabar macro
Nombre de la maoo9abrealurnno)Y
NZtodo abreA'ado9
Guardar maoo en9E)te l'bro
P4-ina 0+ Pro-ra#a Nacional de Infor#4tica
Macro III/ A(rir for# ula rio de Profesores> #acro de no#(re/ a ( rea profesores
Acti"idad !/ (t acro para a(rir for#ulario de Alu#nos
,i-a los si- uientes pasos /
I A(rF r el arc?i"o/ $or#ulariosl xlsx> @ue se encuentra en la ca rpeta E%ercicios>
capFtulo 0
! ,eleccionar la ?o%a Inicio& Clic en la celda AI' 6a-a clic en el co#ando Gra(ar #acro> del -ru po Códi-o> fic?a Desarrollador
* En cuadro de di4lo-o/ Gra(ar #acro> escri (a co#o No#(re de la #acro/ A(realu#nos ) Iue-o> clic en el (otón Aceptar ;$i- & *<
$i- !2 No#(re de la #acro 0
Haga clic en el botón Formulario““
de la barra de herramientas de Acceso rápido.Luego, clic en la pestaña de la Hoja A íumnos, Iuego, clic en la celda
!. "lic en el botón detener grabación.
-
8/18/2019 excelA
31/322
E%ecutar la #acro/ A(realu#nos
Asi-nar #acros a (otones en for# ularios
En el proceso de -estión de las #acros> stas se de(en e%ecuta r ) una delas for#as es asi-narlas a (otones de co#ando> de esta #anera se tiene la
faci lidad de e%ecutarlas tan solo ?aciendo un cl ic so(re el (otón0 En el li(ro / $or#ulariosl> seleccione la ?o%a Inicio! Esco%a el (otón de co#ando / Alu#nos de la ?o%a inicio& 6a-a clic derec?o> se #uestra el si- uiente #en= contextua l ;$i- &5<
$i- &5 Asi- nar la #acro al (otón de co#ando
$i- !0 Macro A(real u#nos
-
8/18/2019 excelA
32/322
Pro=e)ore)
5 Clic en el (otón de co#ando Aceptar+ 6a-a clic en otra celda de la ?o%a Inicio1 AI apu ntar so(re el (otón de co#ando AI u#nos ;$i- &1 se #uestra
el puntero de enlace a l for# ulario de Excel con los datos de los a l
u#nosK B 2 L
$i- &1 Acti"ar la e%ecución de la #acro
se "a a #ostra r los datos de los AI u#nos Estando en la ?o%a AI u#nos> de(e crea r una #acro pa ra retorna r a la
?o%a Inicio ) de(e asocian a a un (otón de co#ando/ 7etornar ;$i-
7etornar
$i- !! Macro de 7etorno en el (otón 7etorna r
a< De(e crear las otras dos #acros para acti"ar el for#ulario @ue#uestren los datos de los cursos ) alu#nos con sus respecti"osretorno) a Ya >oDa #nYcYo.
(< Guarde todo el contenido en una nue"a "ersión de no#(re /$or#ula riola xls#
7ecuerde @ue se est4 - ra(ando una #acro ) co#o tal re@uiere @ue
se -uarde co#o /
Li(ro de Excel ?a(ilitado para #acros ;^ xIs#
-
8/18/2019 excelA
33/322
O Rojo
O Wzerde
Asi-nar #acros a otros controles en for#ulariosEs posi(le asi-nar #acros a otros controles de un for# ulario> tales co#o casillasde "erificación> (otones de opción ,e asi-nar4 una #acro a cada uno de los(otones de opción pa ra per#itir ca#(iar el color de (orde de un ran-o de celdas
Los colores a ca #(iar ser4n / 7o%o> Verde ) A3ul El for#u lario #odelo es elsi- uiente ;$i- '2< /
_ $ 2 $ 6-
$i- !& Asi-nar #acros a otros controles
Acti"idad &/ ,t acro para ca#(iar de color a un ran-o de celdas
I A(rFr el arc?i"o / $or#ularioll xlsx! 6a-a clic derec?o so(re el (otón de opción eti@uetado co#o 7o%o& En el #en= contextual #ostrado ;$i- '0<
' Clic en el co#ando Asi-nar #acro* ,e #uestran las #acros ?a (ilitadas> asi- ne la #acro/ 7o%o ;$i- '!
-
8/18/2019 excelA
34/322
P4-ina !0 Pro-ra#a Nacional de Infor#4tica
$i- !* Asi- na r la #acro 7o%o
5 Lue-o> clic en el (otón Aceptar+ Proceda de la #is#a for#a para asi-nar las #acros a los (otones de opción Verde )
A3ul1 E%ecute las #acros ?aciendo clic en cada (otón de opción ) se da r4 cuenta @ue el
ran-o de celdas B&/6:> ca# (ia de color de (orde> acuerdo a l (otón de opciónpulsado
Plantillas con for#ularios ) #acrosLas plantillas ?o%as de c4lculo pre"ia#ente or-ani3adas de acuerdo a una utilidaddeter#i nada En el @ue?acer d iario una e# presa p=(lica o pri"ada tiene procesos
est4nda r o de uso co# =n> ra3ón por la cual Microsoft ?a prepa rado un pool deplantillas de uso li(re ;$i- '&<
l6#ero
$i- !5 Modelos de plantillas
-
8/18/2019 excelA
35/322
Estas plantillas se pueden asociar a #acros de acuerdo a los re@ueri#ientos delusuario
.sar plantillas predefinidas
Pa ra encontrarlas> si-a los si-u ientes pasos /0 A(ra un nue"o a rc?i"o! Clic en la fic?a Arc?i"o& Clic en el (otón Nue"o ;$i- ''<
I ue"o
$i- !+ Nue"a plantilla
' ,e #uestra un -ru po de #odelos ;$i- '*<
Jr
$i- !1 Modelos de plantillas
* 6a-a clic en la plantilla Calculadora de la ?ipoteca> Iue-o> cl ic en el (otónCrear > se #uestra el contenido de la plantilla ;$i- '5<
$i- !: Plantilla Calcu ladora de la ?ipoteca
-
8/18/2019 excelA
36/322
Encue)ta de l(lercado
P4-ina !& Pro-ra#a Nacional de Infor#4tica
En este caso ?a) @ue adoptar el si- no de soles co#o #oneda> rea lice lo si- uiente/a ,eleccione toda la ?o%a( In-rese a for#ato de celdac ,eleccione la cate-orFa #oneda> lue-o en sF#(olo/
De este #odo> de(e seleccionar el #odelo @ue desee
A la plantilla anterior se le puede crear una #acro para insertar el espacio de fi lapa ra un nue"o re-istro de -astos
Crear plantillas personali3adas
a< El usuario ta# (i n puede crear sus propias plantillas persona l i3adas(< AI ser personal i3adas> el usuario crear4 o solicitar4 a un especia Iista lanue"a #acro Por e%e#plo> se re@uiere -ua rda r los datos de personas @ue ?ansido entre"istadas so(re un curso de ca pacitación
c< De(e crear una plantilla co#o la si-uiente ;$i- '+< /
Encuesta de Mercado
$i- &2 Modelo de la nue"a planti lla personal i3ada
d< Cada "e3 @ue se re@uiera> de(e insertar una nue"a fi la en (lanco para re-istrar los datos de un nue"o entre"istado
e< La #acro se de(e en la3ar a un (otón de co#ando u(icado en la celda 0 ;$i-'1<
$i- & t Botón para insertar nue"os 7e-istros de datos
-
8/18/2019 excelA
37/322
Crabar m ro
tK arK a
>aFa cl'c derec>o.
.tili3ar plantillas personali3adas$inali3ado el for#u Iario ) la #acro;s< correspondientes> se de(e pro(ar sudese#peQoPa ra el caso de la encuesta> se de(e ?acer clic en el (otón de co#ando Nue"o
7e-istro pa ra in-resa r los datos de un nue"o entre"istado
Pa ra resol"er la Macros> realice el si- uiente procedi #iento /0 Teniendo a (ierta la ?o%a de la encuesta de Mercado> ?a-a clic en la fic?a
Desarrollador> el co#ando Gra(ar #acro> del - rupo Códi-o! En el cuad ro #ostrado> escri (a nue"o entre"istado ;$i- ':<
$i- &! Nue"a #acro / nue"o entre"istado
& Clic en el (otón de co#ando Aceptar ` `' A?ora> apunte al selector de la fila * )
D
Encuesta
-
8/18/2019 excelA
38/322
-
8/18/2019 excelA
39/322
Pro-ra#a Nacional de Infor#4tica P4-ina !5
* Clic en el co#ando Insertar5 6a-a clic en la celda C,+ Clic en el co#ando Detener
-ra(ación
1 Apunte so(re el (otónco#ando Asi-nar #acro
$i- &' Asi- na r nue"a#acro
Nue"o P J
: ,eleccione la #acro nue"o entre"istado ;$i- *!<
_
$ - & s - n c ( tón d c nd
02 6a-a cl ic en otra celda para desacti"ar el #odo de diseQo00 Esco%a el (otón de co#ando Nue"o 7e-istro
,ie#pre se inserta una nue"a fila a partir de la fila *> con lo cual se puedenin-resa r nue"os datos de un entre"istado
-
8/18/2019 excelA
40/322
Encue)ta ')t o nc o
E%erciciospr4cticos con #acrosDiri-idos/
En este caso e#plear4 el arc?i"o $or#ularioIV xlsx> el cual tiene dos 6o%as ;$i-
$i- &5 6o%as Encuesta e 6istórico
ba se cuenta con la #acro para insertar Nue"os re-istros> se crea r4 una nue"a
#acro @ue per#itir4 ir pasando a un ?istórFco los datos de los entre"istadosLa ?o%a 6istórico ;$i- *' )a cuenta con un enca (e3ado inicial /
$i- &+ La 6o%a ?istórico
La ?o%a Encuesta ;$i- ** tiene la si- uiente a pariencia / r
Encue)ta de Mercado
$i- &1 La 6o%a Encuesta
a Los datos del nue"o entre"istado se insertan en la f la *( Mediante la a)uda de una #acro> los datos de este nue"o entre"istado se
a-re-ar4n a partir de la fila &> en la ?o%a 6istórico
En la >oDa Encue)ta real'ce el )'Fu'ente :roced'm'ento91. E)cr'ba a :art'r de la celda CS lo) dato) de un nueAo entreA')tado
3$'F. -/&9
Encue)ta de MercadoO›nrüo Provnc m Se o
$i- &: Nue"os datos desde la celda C,
-
8/18/2019 excelA
41/322
P4-ina !+ Pro-ra#a Nacional de Infor#4tica
j soldadura
! En la fic?a Desarrollador> el - rupoCódi-o> ?a-a clic en el(otón Gra(ar Macro ;$i- *+<
& Escri(a el no#(re de la#acro/ 6istórico> clic en el(otón de co#ando Aceptar
' Lue-o> clic en la ?o%a 6istórico* Apunte a la fila &> ?a-a clic
derec?o> ) Iue-o> seleccione elco#ando Insertar ;$i- *1<
5 Lue-o> clic en la celda A&+ Va)a a la ?o%a Encuesta
dJGto
1 Clic en la celda C* ) seleccione el ran-o ?asta la celda * ;$i- *:< Clic en el (otón Copiar> en la fic?a Inicio
-
Encuesta de lVlercado
$i- '0 ,elección del 7an-o
02 CIic en la ?o%a 6istórico00 ,eleccione el (otón Pe-ar> en la fic?a Inicio
I! ,e ?a insertado los nue"os datos en la ?o%a 6istórico0& Ta I co#o se #uestra en la fi-ura 52
-
8/18/2019 excelA
42/322
Apel! dos Nomdes Dom›o!!o D› n › o Pov›sra &e×oa/0a an 4a& 8 6 e/ ado r ma 7
*an8a a%)os C4a& Ms te‹x do &ma 1
$i- '! Nue"o 7e-istro insertado
0' Contin =e ?aciendo clic en la ?o%a Encuesta0* Pulse la tecla Esc05 En la fic?a Desarrollador> -rupo Códi-o> ?a-a clic en Detener -ra(ación
;$i- 50<0+ $inal#ente> enlace la #acro ?istórico al (otón de co#ando/ A ?istórico
.sar referenciasrelati"as
g,e-un da le i acros
M -
$i- '& Detener - ra(ación de la #acro
-
8/18/2019 excelA
43/322
Ca
La Macro el Códi-o
O(%eti"os/
o La fic?a Desa rrollador
e Entorno de pro-ra#acióno O(%etos de Excel e
E"entos
-
8/18/2019 excelA
44/322
Pro-ra#a Nacional de Infor#4tica P4-ina &2
La #acro ) el códi-oLa fic?a Desarrollador
La fic?a Desarrollador per#ite aQadir partes de códi-o a la ?o%a de Excel>ta#(i n es una -ran #anera de acceder a las distintas opciones para la creaciónde una aplicaciónPuede utili3ar sus ?a(ilidades de pro-ra#ación para auto#ati3ar las tareas enExcel
.na r4pida "ista de los Grupos de Opciones de la $ic?a
DesarrolladorLa fic?a Desarrollador contiene diferentes opciones =tiles para losdesarrolladores Todas las opciones disponi(les de la fic?a Desarrollador seclasiQcan en los si- uientes cinco -rupos/K Códi-oK Co#ple#entosK ControlesK hMLK Modificar
Grupo Códi-o
El -rupo Códi-o contiene diferentes opciones/K La opción Visual Basic per#ite iniciar el Editor de Visual BasicK Macros #uestra la Iista de todas las #acros creadas -ra(adasK Gra(ar #acro per#ite crear una nue"a #acroK La se-uridad de #acros per#ite confi-ura r los aspectos de se-uridad de la
#acro ;$i- 5!<
Gra(ar #acro
Visual MacrosBasic A ,e-uridad de
#acros Códi-o$i- 0 Grupo Códi-o
-
8/18/2019 excelA
45/322
Grupo Co# Ple#entos
El - rupo Co#ple#entos per#ite ?a (ilitar enExcel Co#ple#entos co#o ,ol"er> COM
A#(as ?erra#ientas son =tiles para los
desarrolladores> )a @ue a)udan la escritura#odelos de co#unes de o(%etos ;$i- 5&<
Co#ple#entos Co#ple#entosCOM
Grupo Controles
Inclu)e funcionalidad para a-re-ar controles a una interfa3 de usuario>por e%e#plo controles Acti"eh para la?o%a de c4lculo Excel Puede Ver códi-o ) entrar al Modo de diseQo>
Insertar ModoDiseQo
Propiedades Si Ver códi-oj E%ecutar cuadro de di4lo-o
Controles
se pueden #odificar las Propiedadesdel control ) E%ecutar cuadro dedi4lo-o ;$i- 5'<
Grupo h(f L
El -rupo hBk L contiene opciones=tiles para la codificación h$0L enExcel Ofrece opciones para escri(ir elcódi-o fuente hML> i#portar )exportar arc?i"os hl`lL> ) actuali3ar los datos hML ;$i- 5*<
Grupo **odificar
$i- ! Grupo Controles
Eg Actua li a r dato
hML$i- & Grupo hML
El -rupo Nlodificar contiene el Panel de Docu#entos co#o=nica opción ;$i- 55<
Panel dedocu#entos
Modificar $i- ' Grupo
Nodificar
Entorno de pro-ra#aciónLas #acros son de -ran utilidad para el usuario @ue le per#ite reali3ar procesos con #4srapide3 ) a?orro de tie#po Pero ?a) @ue sa(er @ue ellas est4n asociadas o est4 n(asadas en un len-ua%e de pro-ra#ación/ El Visual Basic para Aplicaciones o Ila#adoVBA Todo reunido en un entorno de pro-ra#ación @ue tiene co#o co#ponentes un /
-
8/18/2019 excelA
46/322
a< Edito r de Visua l BasicEste editor de Visual Basic nos "a a
acción con la incorporación deinstrucciones @ue nos per# iten pro-ra #a r con #4s propiedad $i- 5+ Acceso a la "entana de códi-o
(< Entra r ) sa lir del edito r de VBAPara Entrar a l Editor de Visual Basic
i 6a-a clic en la $ic?a Desarrollador> - rupo Códi-o> ) seleccione VisualBasic ;$i- 5+<
ii Ta#(i n puede acceder utili3ando la co#(inación de teclas Alt $I0
iii La "entana del Editor de Visua I Basic ;$i- 5: presenta /0< La Barra de Men=!< La Barra de ?erra#ientas&< La "entana del Explorador de pro)ectos'< La "entana de Propiedades*< 8rea de edición de Códi-o
-
8/18/2019 excelA
47/322
P F'na 2
-
8/18/2019 excelA
48/322
Pro-ra#a Nacional de Infor#4tica P4-ina &'
:ro:'edade) )e encuentran en la colu n'na de laerda + lo) Aalore) a con@Furar )e 'nFre)an en la col umna de la derec>a. 3$'F &
Para ,a l i r del Editor de Visual Basic> puede ?acerlo de las si- uientes for#as/E ,alir del Editor de Visual Basic sin cerra r la "entana de Pro-ra#ación
$i- +2 ,alir de la "entana de códi-o
$i- 5 Cerrar ) "ol"er al Excel
Ventana de Pro)ectosEn esta "entana se #uestra una Iista %er4 r@uica
de los pro)ectos ) todos los ele#entoscontenidos en los #is#os ) a los @ue se ?ace _ C ódi
referencia en cada uno de ellos Cada li(ro en )r >#"sKrnoExcel Ile"a asociado un pro)ecto de VBA .n l TGH
n=#ero ar(itra rio de #ódulos de códi-o )de #serForms. ;$i- +!<
A!temarcspens
Ventana de Propiedades
$i- + Ventana de Pro)ectos
$i- +& Ventana de Propiedades
-
8/18/2019 excelA
49/322
Wrr;)or [r; a \ AK] ^ K] e
Módulos
en Visual Basic @ue posterior#ente se JGmJHJHJH J
e%ecutar4 6a) tres tipos de #ódulosde códi-o /K Est4 ndar>K Clase )K $or#ulario
$i- +' Ventana de Módulos
Cada uno de los cua les posee una acción especFfica Pa ra los pro)ectos @ue sedesa rrollarón en este #anual se e#plear4 n los #ódulos est4nda r
Ta#(i n se #enciona/
K Ventana .ser$or# Esta "entana contiene un #serForm $Formulario del usuario % , con el cual se pueden insertar controles para su uso en los pro-ra#as de VBAMediante un #serForm ) los controles Ac& i'eA del cuadro de ?erra#ientas sepodr4 constru ir cual@uier cuad ro de dió lo-o persona li3ado> adaptado a losre@ueri#ientos del usua rio
$i- 1 Ventana del .ser $or#
KCuadro de ?erra#ientas ,e acti"a %unto con el#serForm ) es el contenedor de loscontroles Actí'e(, los @ue pueden ser seleccionados ) a rrastrados ?acia el #serForrn.
K Exa#inador de o(%etos Per#ite recorrer los o(%etos> # todos> propiedades )e"entos relacionados con un control Acti"eh o una aplicación de Excel Mediante elExa#inador de o(%etos se si#plifica la for#a de pro-ra#a r un o(%eto
-
8/18/2019 excelA
50/322
Pro-ra#a Nacional de Infor#4tica P4-ina &5
K VentanaIn#ediato En esta "entana se puede in-resar ) e%ecutar una lFnea de
códi-o en Visual Basic> ) "er de in#ediato el resultado @ue se o(tend rFa Por tanto> seutili3ar4 a la ?ora de depura r códi-o de Visua l Basic ;$i- ++<
$'F. 17 (entana #nmed'ato.
O(%etos de ExcelVisual Basic es un entorno de pro-ra#ación orientado a o(%etos =Su si- nificaorientado a o(%etos ,i- nifica @ue en el entorno de Visual Basic> se pro-ra #a todo lo
relacionado a un o(%eto en otras pa la(ras> si se tiene un (otón> se puede pro-ra #ar @ue ocurre con l cuando se ?ace JclicH o Jdo(le clicH o sólo se pasa el punteropor enci#a o se pu Isa el (otón derec?o del #ouse Es decir> @ue a cada o(%eto lecorresponden e"entos ;la acción so(re el o(%eto<Excel facil ita una %erar@uFa de o(%etos @ue si r"en para auto#ati3a r o persona l i3a r el
tra(a%o d iario
Los O(%etos se encuentran listados de acuerdo a la %era r@uFa @ue tienen /K El o(%eto Application es el o(%eto su perior ) representa a la aplicación Excel K Elo(%eto Zor Boo se representa a los disti ntos l i(ros a(iertos dentro de la
a plicación Excel Depende del o(%eto ApplicationK El o(%eto Zor ,?eet es el con% unto de ?o%as de un li(ro Depende de un o(%eto
Acti"eZor BooK El o(%eto 7an-e se refiere a una celda o a un ran-o de celdas Nor#al #ente depende
de un o(%eto Zor ,?eet
-
8/18/2019 excelA
51/322
Por lo cual> se puede decir @ue un o(%eto Application puede contener "arios Li(ros
;Zor Boo s @ue estos a su "e3 contienen ?o%as ;Zor ,?eets @ue a su "e3contienen otros o(%etos ;por e%e#plo 7an-e<,e pueden #odifica r o conocer las caracterFsticas de cada uno de estos o(%etos>
accediendo a las propiedades de los #is#os
Para el o(%eto 7an-e se tienen las si-uientes propiedades /
K Value> contiene el "alor de la celda ;su contenido< K Colu#n ) 7o[> contienen respecti"a#ente los datos de la fila ) la col u#na @ue se
refieren con la celda
K $ont> contiene el tipo de fuente de los ca racteres @ue se #uestran las celdas ;Arial>Courier> Ti#es Ne[ 7o#an> etc<
Ta #(i n es posi(le lle"ara
ca(o acciones so(re los o(%etos @ue facilita Excel Cada unade estas acciones reci(e el no#(re de # todos Por e%e#plo para el o(%eto 7an-e setienen los si- uientes # todos /K Acti"ate> acti"a una celda deter#i nada> es decir> coloca el cursor ;el foco< so(re ellaK Clear> (orra el contenido de una celda o ran-o de celdas ;los "alores @ue contienen<K Cop)> copia el contenido de la celda o ran-o de celdas en el porta pa peles
Las Coleccionesa< .na colección es un - rupo de o(%etos de la #is#a clase
(< Los #4s utili3ados en la pro-ra#ación de o(%etos de Excel VBA son Li(ro> ?o%ade c4lcu lo ) ran-o ;Zor (oo > Zor s?eet> ) 7an-e<
c< Zor (oo s es una colección de todos los o(%etos Zor (ood< Zor s?eets es una colección de o(%etos de Zor s?eete< El o(%eto Zor (oo representa un li(ro de tra(a%o> el o(%eto Zor s?eets
representa una 6o%a> ) el o(%eto 7an-e representa un ran-o de celdasf< En la fi-ura +1 se #uestran todos los o(%etos #encionados/
K El li(ro de tra(a%o ;Zor (oo < es actual #ente Li(ro0 xlsxK La ?o%a de c4lculo ;Zor s?eet< actual es 6o%a0 co#o se indica en la fic?a
6o%aK Dos ran-os se seleccionan ran-o B! ) B5/BIO
-
8/18/2019 excelA
52/322
_ta e) la >oDa1
P4-ina &+ Pro-ra#a Nacional de Infor#4tica
$i- 00 Colecciones de una 6o%a
Los O(%etos Zor (oo ) Zor s?eet ;Li(ro ) ?o%a<.n Zor (oo es el #is#o a rc?i"o de Excel La colección Zor (oo contienetodos los li(ros @ue est4 n a(iertos actual #ente .n li(ro de tra(a%o contiene por lo #enos una Zor s?eet En VBA> se puede ?acer referencia una ?o%a de c4lculode la si-u iente #anera /
Zor s?eets ; H6o%a 0H<
Zor s?eets ;H6o%a IH< es la ?o%a de c4lculo @ue el no# (re H6o%a IH
Otra for#a de ?acer referencia a una ?o%a de tra(a%o es utili3ar el n=#ero deFndice co#o si-ue/
Zor s?eets ; 0<
Lo anterior se refiere a la pri#era ?o%a de la colección
7ecuerde @ue Zor s?eets ; 0< no es necesa ria#ente la #is#a ?o%a @ue
Zor s?eets ;H6o%a 0H<Zor (oo s;HLi(roIH< Zor s?eets;H6o%a0H< Zor (oo s;HLi(ro!H< Zor s?eets;H6o%a0H<
La eti@ueta de la ?o%a #uestra @u la ?o%a est4 acti"a> la ?o%a acti"a es H6o%a&H ,e #uestra en ne-rita ) fondo (lanco ;$i- +:<
$i- 0! 6o%a acti"a
-
8/18/2019 excelA
53/322
O(%eto 7an-e ) la Propiedades Cells7an-e representa una celda> una fi la> una colu nina> una selección de las celdas @uecontienen uno o #4s (lo@ues conti-uos de celdas A continuación se #uestran al- unose%e#plos de có#o el o(%eto 7an-e puede ser utili3ado
El si- uiente e%e# plo coloca el texto H: PH en el ran-o AE/ B,> en la 6o%a!;$i- 12<
Zor s?eets; H6o%a!H< 7an-e;HAI / B*H< H! PH
B
P
$i- 0& Asi-nar un "alor a un 7an-o
Ten-a en cuenta @ue>Zor s?eets 7an-e;HAIH>HB,H< H PHdar4 el #is#o resultado@ue el e%e# plo anterior
El si-uiente texto H PH en las celdas AI> A& ) A, en 6o%a !Zor s?eets;H 6 o%a!H A&> A*H< H PH
Ejemplo
P
$i- 0' Asi-nar un "alor en for#a alterna
a< El O(%eto 7an-e tiene una propiedad Cells(< La propiedad Cells to#a uno o dos Fndices co#o sus pa r4#etros Por e%e#plo>
Cells; nc ex co)umn*
Donde/K Index es la dirección o referencia de la celdaK 7o[ es el Fndice de fila ) cofurr3n es el Fndice de la colu nina
-
8/18/2019 excelA
54/322
Los si-u ientes tres for#atos son si#iliares/0 Acti"e,?eet 7an-e Cells ;0>0<! 7an-e CelIs ;0>0<& CelIs;0>0<
El si-uiente códi-o de"uel"e el #is#o resultado/
7an-e ;HAIH< t !& ) Cells; 0>0< 0!&
Procedi#ientos,on las estructuras @ue per#iten escri (ir las instrucciones @ue el usuario in-resa o el
códi-o @ue se -enera de for#a auto#4tica cuando se crea una #acro
Sueda definido entre las expresiones/,u( b End ,u (
El for#ato a utili3a r es el si-uiente/
,u( No#(re Procedi#iento; <
End ,u (
El No#(re Procedi#iento lo asi- na el usua rio ) se crea dentro de un#ódulo est4 ndar,e tienen dos tipos de procedFa ientos ,u(/a< Generales )(< De E"ento
a< Procedi#ientos GeneralesLos procedi #ientos -enerales son creados pa ra rea l i3ar un c4lculo o una operacióndonde no participe el usuario.n e%e# plo con códi-o serFa el si-uiente /
Pri"ate ,u ( De#o I;<
7an-e;HAI H< Value JEsta es la Celda AI H End ,u(
-
8/18/2019 excelA
55/322
(< Procedi#ientos de E"entoLos procedi# ientos de e"ento son los @ue responden ante una acción reali3ada por el usuario co#o / Clic> clic derec?o> Pulsar la tecla Enter> etc.n e%e# plo con códi-o serFa el si-uiente/
Pri"ate ,u( c#dsal udos Clic ;<Me I(l,aIudo Caption Hi Buen dFa A# i-os gHMe Caption Hi Listos para iniciar con VBAgH
End ,u(
En este caso el no#(re del procedi#iento es c#d,aludos Clic
Este tipo de procedi# ientos se asocian o enla3an con los controles de for# u Iario>por e%e#plo un (otón de co#ando Al ?acer clic so(re el (otón de co#ando> see%ecutar4 todo el códi-o @ue est4 contenido en el procedi#iento
Pri"ate ,u( c#dsal udos Clic ;<
Me I(I,aIudo CaptF on Hi Buen dFa A# i-os gHMe Caption H iListos pa ra iniciar con VBAgH
End ,u(
$unciones
Las funciones son pe@ueQos pro-ra#as ?ec?os en códi-o VBA @ue le per#iten al usuarioe# plearlos pa ra @ue rea licen la (oresespecFficas El for#ato es/
$unction No#(re $u nción ;Ar- u#entos< No#(re $unción Valor a de"ol"er
End function
E"entos
Los e"entos en VBA per#iten -estionar las acciones @ue rea li3an los usua rios so(relos controles> de esta #anera es posi(le controla r la acción a to#ar cuando el usuario?ace al-o definido en la ?o%a> con la celda o con a l-=n o(%eto
Al- unos e%e# pios de e"entos en VBA son los si-uientes/K Zor (oo open El usuario a(re un li(ro de ExcelK Zor (oo Acti"ate El usua rio acti"a un li(ro de ExcelK ,electionC?an-e El usuario ca# (ia la selección de celdas en una ?o%a
-
8/18/2019 excelA
56/322
P4-ina '0 Pro-ra#a Nacional de Infor#4tica
E#pleando el Exa#inador de O(%etos se pueden o(ser"a r los e"entos Los o(%etos seu(ican en el panel i3@uierdo ) las propiedades> # todos ) e"entos en el panelderec?o> tal co#o se indica en fi-ura 1!
$i- 0* Los e"entos en VBA
Acti"idad '/ Acti"ar una ?o%a #ostrando un cuadro de di4lo-o
AI acti"ar la 6o%a & se presenta un Cuadro de Mensa%e con el texto/ Tra(a%ando enla 6o%a0
,i-a los si- uientes pasos /
I En un nue"o li(ro> in-rese al Editor de Visual Basic
! En la "entana de Pro)ectos> ?a-a do(le cl ic en la 6o%a && En la "entana de códi-o> en el Panel de O(%etos> donde se #uestra General
,eleccione Zor s?eet Ta l co#o se #uestra en la fi- ura 1&
$i- 05 El Zor s?eet
-
8/18/2019 excelA
57/322
Pro-ra#a Nacional de Infor#4tica P4-ina '!
Esta acción selecciona de for#a in#ediata el procedi#iento para el e"ento,electionC?an-e
-
8/18/2019 excelA
58/322
Frivzze Sub Works eec_Lcc ivun e()
$9'Azne Sub Works:ee n_5elecn icn an!e(" # $ai %ar!e n &s Ran!e)
/r.9l SVuE
A`
' 6a-a clic en el (otón del cuadro co#(inado ) seleccione de la Iista el e"ento / Acti"ate ;$i- 1'<
$i- 0+ E"ento Acti"ate
De esta for#a se crea el procedi# iento del e"ento Acti"ate
* Escri (a el si- uiente el códi-o en el proced i#iento / Zor s?eet Acti"ate;<
$i- 1* Códi-o del procedi#iento Zot s?eet Acti"ate
5 7e-rese a la ?o%a de c4lcu lo+ 6a-a clic en la 6o%a&
La fu nción #s-(ox -enera el cuad ro de #ensa%e ;$i- 15<
$i- 01 7esultado de acti"ar la 6o%a
-
8/18/2019 excelA
59/322
U)c $o m$dodu
Ezd 5uk
\
Pro-ra#a Nacional de Infor#4tica P4-ina ''
1 Guarde el li(ro con #acros ;$i- 1+<
Acti"idad */ Escri(ir un texto en la celda B!
,e utili3ar4 el Editor de VBA para escrF (ir el texto / Esto) en la celda B!
,i-a los si- uientes pasos /
I En un nue"o li(ro> in-rese al Editor de Visual Basic
! En la (arra de #en=> co#ando Insertar> inserte un nue"o Módulo ;$i- 11< /
$i- !2 Inserta r Nue"o Módulo
& 6a-a do(le clic en el (0ódulo0 ) En la "entana de códi-o> a- re-ue un nue"o
procedi #iento ,u(/ Texto
d
K _
$i- !0 Nue"o Procedi#iento ,u(
' AI escri(ir 7an-e;JB!J< El editor #uestra un panel de a)uda con las propiedades )# todos @ue se a plican al o(%eto 7an-e ;$i- :2
-
8/18/2019 excelA
60/322
-@e;ro3&Ran!e('" ') v
$'F. 2 Cód'Fo del :roced'm'ento.
$i- !! Panel de a)uda
* Co#plete la instrucción de la si- uiente #anera
Para e%ecutar el procedi#iento puede reali3ar lo si- u iente /
a< Clic en el (otón E%ecutar ó Pu Isar la tecla $, ;$i- :!<$or#ato Depuración E%ecutar $
b& Se mue)tra la >oDa 1I u)ted notar ue )e >a e)cr'to el te;to en la celda*2.
\ 5 o t O W[
-
8/18/2019 excelA
61/322
-
8/18/2019 excelA
62/322
Sur c e* u o()Ran!e('% ') +alu e ',sto# en % - 5 tte*to (.5:L
/nd 5 Wl0123
Q
Pro-ra#a Nacional de Infor#4tica
Acti"idad 5/ Escri(ir un texto en la celda B'> con %erar@uFa de o(%etos
.tilice el Editor de VBA para escri(F r el texto / Esto) en la celda B'
,i-a los si- uientes pasos /I En el li(ro actual> in-rese a l Editor de Visual Basic! ,eleccione le Módulo I) a(ra la "entana de Códi-o& 6a-a do(le clic en Módulot ) En la "entana de códi-o> a-re-ue un nue"o
procedi #iento ,u ( / Texto! ;$i- :'<
$i- !* Nue"o Procedi# iento texto!
!. Escri(a /
Zor r,Aeets & Aan-e;H5' H t+af3re HEsta es fa Celda B' de fa Ao)a &H
En el espacio @ue ?a) entre ,u( ) End ,u( AI escri(ir Zor ,?eets;&< 7an-e;HB'H< ,e indica la referencia a la celda B' de la?o%a &
E%ecute el procedi# iento ) co#prue(e los resultados6a-a el nue"o procedi #iento/ Texto& ) escri (a /
Acti"eZor (oo Zor ,?eets;E< 7an-e;HB5H< Value HEstaes la Celda B'de la ?o%a0 del li(ro0H
En el espacio @ue ?a) entre ,u( ) End ,u( AI escri(ir Acti"e V_or (oo r> seest4 refiriendo a l li(ro acti"o E%ecuteelprocedi# iento ) co# prue(e los resultados
:
-
8/18/2019 excelA
63/322
5 A?ora> ela(ore el nue"o procedi#iento/ Texto' ) escri(a/ /
Application Acti"eZor (oo Zor ,?eets; E< 7an-e;HB1H< Value T HEsta es la Celda B1 de la ?o%a 0 del li(rot ;%era r@uFa co#pleta asF co#o filas o col u#nasEl o(%eto 7an-e> es la unidad (4sica para referirse a los o(%etos de edición en Excel
,u uso a(a rca a /K A un con% unto de celdasK A una sola celdaK A toda una fila o colu ninaK A celdas de otras ?o%as
Co#o propiedades el o(%eto 7an-e tiene las si- uientes/
K Acti"eCell> representa la pri#era celda acti"a de la "entana acti"a ;[indo[acti"e<K Areas> todos los ran-os de una selección #=ltiple
K Cells> representa a una celda o colección de ellasK Colu#ns> representa las colu#nas de la ?o%a acti"a> o un ran-o deter#inadoK Entire colu#n ro[> la col unina fila entera dentro del ran-oK End> la celda situada al final del ran-o especificadoK Offset> la celda despla3ada se-=n un n=#ero especFfico de fila ó colu#na
Códi-os pa ra -estiona r/
Celda
,eleccionar
7an-e;HAIH< ,elect
AI ,elect
CelIs;0> 0< ,elect
Copiar Pe-a r 7an-e;HAIH< Cop) 7an-e;HB!H<
No#(ra r 7an-e;HC'H< Na#e HModelosH
Ne-rita 7an-e;HB'H< $ont Bold True
#tGlca 7an-e;HB'H< $ont Italic True
Ta#a Qo 7an-e;HB'H< $ont ,i3e 0'
-
8/18/2019 excelA
64/322
Color 7 Color 7Color 1
C7l7 t 2
21 /
Color 1<Color oColor 27
Color I1Color \W2
Color 1
P4-ina '+ Pro-ra#a Nacional de Infor#4tica
Celda
Colorindex 7an-e;HB'H< $ont CoIorIndex & Color 7o%o
Borrar co#entarios 7an-e;HCIH< CIearCo##entsBorra r for#atos B' Clear$or#ats
Paleta de colores
Acti"idad + / Aplicación de 7an-e en Celda
0 En un nue"o Ii(ro> in-rese al Editor de Visual Basic
! En la (arra de #en=> en el co#ando Insertar> inserte un nue"o Módulo& 6a-a do(le clic en (tódulo E ) en la "entana de códi-o> a-re-ar un nue"o
procedi#iento ,u( / Celdas' Escri(a el si-u iente cód i-o/
,u( "eldas$*+Formas de !elección de la "elda
-ange$ /*. !elect 0 1%.ielect
"eIIs$ , *.!elect
+ingresa el nombre 2ulio en la celda 1
"eIIs$ , *. 3alue 45 2ulio
-
8/18/2019 excelA
65/322
+"opia el contenido de la celda a la celda 6
-ange$/ 1 *. "op7 -ange$/61 /*
+8n la oe da , se aplica 9egrita, Itálica, co orro%o) ta#ar o '
-ange$/ 1/*. Font. old 44
:rue -ange$/ 1 *. Font.italic 54 :rue
-ange$“ *.Font. "olorlnde; 45 < _Color-ojo-ange$/ /*. Font.!i=e 44 >?
+Asigna el nombre Ilodelos a la celda 1
-ange$/ 1 /*.I@iame55/Ilodelos /
End ,u(
* Guarde el li(ro con #acros / Celdas xls#
7an-os
,eleccionar
7an-e;HAI / A,H< ,elect
AI/ A, ,elect
7an-e;HBI>C!> D'H< ,elect
Copiar Pe-a r 7an-e;HAI / A*H< Cop) 7an-e;HB!H<
No# (ra r 7an-e;HC'/ D,H< Na #e HDatosH
Ne-rita 7an-e;HB'/ B1H< $ont Bold True
7an-e;HB'/ B1H< $ont Italic T True
T 7an-e;HB'/ B1H< $ont ,i3e 0'
7an-e;HB'/ B1H< $ont CoIorIndex * Color A3ul
Borra r re-ión de datos 7an-o;HB&H< Current7e-ion Clear
Acti"idad 1/ Aplicación de 7an-e en 7an-oa
En esta acti"idad se #uestra la for#a de a plicar 7an-e en un ran-o de celdas0 En un nue"o li(ro> in-rese al Editor de Visual Basic
! En la (arra de #en=> en el co#ando Insertar> inserte un nue"o (tódulo& 6a-a do(le clic en (lóduloE ) En la "entana de códi-o> a- re-a r un
nue"o procedi# iento ,u ( / 7an-osEscri(a el si- uiente códi-o /
-
8/18/2019 excelA
66/322
,u( 7an-os;<Formas de !elección del -ango .+
B -ange$/ . B /*.!elect
0 .+ B%.!elect
8scribe contenido en el -ango
-anpe$/" . C5 H\ 3alue 45 !enati/ "opia el contenido del rango C! "B a la celda 8
-ange$/"1.5"B /*. "op7 -ange$/8 /*’En el rango CóWC/I )e aplica X Xe?+Asigna el nombre Mo e osal rango ce laCh/ "B -ange$/"1E"B /*.9ame /ICIodeIos /
End ,u(
' Guarde el li(ro con #acros / 7an-os xls#
Caso especial/ ,eleccionar todos los datos de un ran-o de datos
Cuando se re@uiere seleccionar un ran-o del @ue no se conoce su alcance ,e de(e tener en cuenta @ue estos "an ca #(iando Por e%e# plo cuando se tiene una lista de "entas enla cual se a-re-an nue"os re-istros La instrucción Current7e- ion per#ite selecciona r todo este ran-o de "entas> aun cuando no se cono3ca el ta#aQo
Acti"idad :/ ,elección de un 7an-o de Celdas
I A(rF r el arc?i"o Ventas xlsx> i n-rese a l Editor de Visual Basic
! En la (arra de #en=> en el co#ando Insertar> inserte un nue"o Nlódulo& 6a-a do(le clic en Nlódulo0 ) En la "entana de códi-o> a-re-a r un nue"o
'
procedi# iento ,u ( / ,eleccionarEscri (a el si- uiente códi-o /
-
8/18/2019 excelA
67/322
,u( ,elecciona r ;<_,e ecc onala región actual
!election. "urrent-egion. !elect
End ,u(
* Guarde el li(ro con #acros/ Ventas xls#
,elección de $ilas
$ilas
,eleccionar
.na sola 7o[s; H!/ !H< ,elect Ad)acentes 7o[s; H * /:H< ,elect Alternas 7an-e;H&/ &>+/ +> 02/ 02H< ,electNixtas 7an-e;H0 / 0>*/ *> 00/ 00>0*/ 0*H< ,elect
Insertar .na Ro^)32& #n)e
A' Entire7o[ inserts 7o[s; H02/ 0*H< insert
Eli#inar "acFasn 7o[s;'< Delete
Va rias7o[s;H&/ *H< ,elect,election Entire7o[ Delete
Eli#inar contenido 7o[s;&< Clear Borra r for#ato 7oZs; H !/ !H< CIea r$or#ats
Acti"idad 02/ ,elección de $ilas
t En un nue"o li(ro> in-rese al Editor de Visual Basic
! En la (arra de #en=> en el co#ando insertar> inserte un nue"o f1ódulo& 6a-a do(le clic en L lódulo0 ) En la "entana de códi-o> a- re-ar un
nue"o procedi#iento ,u(/ $ilas
Escri(a el si-uiente códi-o,u( ,elecciona$ilas ;<
,e ecciona la a'> !i)a G 7 de la &ila>> hasta la &ila *-ange$ ?.5?, G.CG,>>.C>D“*.!elect
End ,u(
' Guarde el li(ro con #acros/ ,eleccionafilas xls#
-
8/18/2019 excelA
68/322
P4-ina *0 Pro-ra#a Nacional de Infor#4tica
,elección de Colu#nas
Colu#nas
,eleccionar
.na sola 7o[s; HB/ BH< ,elect Ad)acentes 7oZs; HC/ $J< ,elect Alternas 7an-e;HE/ E>G/ G> / H< ,electNixtas 7an-e;HC/ C> E/ E>6/ 6> / MH< ,elect
#n)ertar.na
CoIu#ns; HC/ CH< insertD0 EntireColu inn insert
s 7an-e;HCI / EI2H< EntireCol u#n insert
Eli#inar "acFasn Col u#ns;HB/ BH< ,elect
VariasCol u#ns;HB/ CH< ,elect,election EntireColu inn Delete
Eli#inar contenido CoIu#ns;&< Clear Borra r for#ato Col u#ns;HD/ DH< Clea r$or#ats
Acti"idad 00/ ,elección de Colu#nas
I En un nue"o li(ro> in-rese al Editor de Visual Basic
! En la (arra de #en=> en el co#ando Insertar> inserte un nue"o Nlódulo& 6a-a do(le clic en Nlódulo0 ) En la "entana de códi-o> a- re-a r un nue"o
procedi #iento ,u(/ ,eleccionacolu#nas
' Escri (a el si- uiente códi-o /
,u( ,eleccionacolu#nas ;<,e eccionala "olumna C>la co u#na8, Co u#na ) de la
Range(”C.‘ C,E .’ E, H .‘ H, .’ ! ” ". #ielec#t
End Sub
* Guarde el li(ro con #acros/ ,eleccionacolu#nas xls#
-
8/18/2019 excelA
69/322
En la si- uiente ta (la se resu#e un -ru po "a riado de operaciones @ue es posi
(le tra(a%ar con los ran-os/
Operación E%e#plos
Co:'ar
$ Copia la cel%a El
Range(”C1 &". Copy $Copia la cel%a '1 , e te )or*ato ta*+i n e -óli%o./10. Cop
’Copia la ceXoWaC (la pri*era :o)'c'ón ea + la )e Transpose/True+"on'ertir columna en la7an-e;HB& / B+H< Cop)7an-e;HD!H< Paste,pecial Paste/ xlPasteAll> Transpose/True
Instrucción Zit?,e e#plea cuando se tiene un con%unto de propiedades aplicadas a un #is#oo(%eto Esto per#ite ?acer referencia a "arias propiedades de un #is#o o(%eto
E EMPLO 0 ,e tiene este - rupo de propiedades aplicadas a l ran-o/ C!/C5
+8nel ranpo " . "B, se aplica 9egrita, Itólica, color A=ul 7 0amaño >? -ange$/"1.M "B/*. 3alue 44 /6atos /
-ange$/"1.5"B/ *.Font. oId 44 :rue
Aanpe$/" ) "B /*. "ont.ltaIic 54 :rue-anpe$/" )"B/).Font. Co or nc ex45 D_Color A=ul 7an-e;JC!/C5 HFont. D)=e >?+Asignael nombre I?odeIos al rango celda "1 ."B -ange$/" E"B/*. 9ame 54 /IIodeIos
-
8/18/2019 excelA
70/322
P4-ina *& Pro-ra#a Nacional de Infor#4tica
Puede escri (ir este cód i-o #ediante Zit? End Zit?/
,u( $or#atos ;<_Enel rango " E "B, se aplica 9egrita, tó ca>color A=ul ) ta#aQo>?
NitEh -ange$/"1.C"B /*
. 3alue 55/6atos /
.Font. old 45 :rue
.Font.italic 45 :rue
.Font. "olorlnde; 44 D+"olor A=ul
.Font. !i=e 54 >?
$A igna el no*+re !o%elo al rango cel%a C3 .’ C7
.9ame J fo /le osJ
End Zit?
End ,u(
E: EMPLO ! Considere @ue desea a plicar el si- uiente for#ato a una fila / Ne-rita> do(lesu(ra)ado> fuente - rande ) color especial
El códi-o podrFa ser el si-uiente/
-ange$O . 61/*. !PeIect
!election. Font. oId 45:rue
!election. Font.!i=e 45> !election. Font. "oIorinde;44D !election. Font. #nderIine54;I#nderIine!t7Ie6oubIeAccounting
Puede escri(ir el códi-o usando Zit? End Zit? Ten-a en cuenta @ue pa ra ?acer referencia a l o(%eto de(e e# pe3a r con un punto /
NítEh -ange $/ .+6 /*. FontE
. old 44 :rue
.!í=e 5> Co orIndex qq5. #nderIine 45;I#nderIine!t7Ie6oubleAccounting
-
8/18/2019 excelA
71/322
EV " E
E: EMPLO & .so de Zit? para (orra r for#atos ) otros ele#entos
,u( Borrar ;<Zit? 7an-e; HC!H<
ClearCo##ents Borra co#entariosClearContents Borra contenidosClear$or#ats Borra for#atos ClearNotes Borra notasClear Borra tod o lo anterior
End Zit? End ,u(
E EMPLO ' .so de Zit? para ordena r datosConsidere estos datos para aplica r el ordena#iento ;$i- :*<
"ato)42 M J 72 MU 72M4 ; 72 " MOSLE M ;722 M ;722 M ; 72Ma;722 "dto) - Ma;72 Ma;722Ma;72 " to) 1 Ma;172 Ma;72Max02!Max!2!
Max!2! Max!2! Max02!Max!2!
$i- !5 Datos pa ordena r
Este códi-o per#ite ordenar los datos @ue se #uestran en la fi-ura anterior
,u( ordenar; <Zit? B! Current7e-ion
B&Current7e- ion podrFaser 7an-e; B&/ f' !: < ,ort e)0 / 7an-e;HG02HOrder0/ xIAscendF n->6eader/ xIGuess,ort e)0 / 7an-e; H$'H Order0 / xIDescendin-> 6eader/ xIGuess,ort
e)0 / 7an-e; HB& H Order0 /xlAscendin-> e)! / 7an-e; HC!HOrder!/ xlAscendin-> e)& /7an-e;HD!H Order& / xlAscendin->6eader/ xIGuess
End Zit?End ,u(
-
8/18/2019 excelA
72/322
Pro-ra#a Nacional de Infor#4tica
Códi-os de for#atoCon este códi-o es posi(le ca# (ia r la a pariencia del contenido de una ?o%a En elsi- uiente e%e# plo se proceder4 a ca# (iar el for#ato a la fila acti"a
E: EMPLO 0En un nue"o li(ro> inserte un nue"o #ódulo> escrF (a el si-uiente procedi#iento/
,u( for#atofila; < Acti"eCellEntire7o[ ,elect
Zit? ,election $ontNa #e HCali(riH,i3e T 0',tri et?rou-? $a lse
,uperscript $alse,u(script $alseOutIine$ont $a lse,?ado[ $alse
. nderline xl. nderline,t)leNoneT?e#eCoIor xlT?e#eColorLi-?t0TintAnd,?ade 2T?e#e$ont xlT?e#e$ontMinor
End Zit?
,election $ont Bold True Zit? ,election Interior
Pattern xI,oIidPatternCoIorIndex xlAuto#aticT?e#eColor xlT?e#eColorAccent0TintAnd,?ade 2 &:::+**1* 0:!' 0:PatternTintAnd,?ade 2
End Zit?End ,u(
^ ,on dos e%e#plos el 0` se refiere a toda la fila el !` a una celda
-
8/18/2019 excelA
73/322
E: EMPLO ! El procedi#iento per#ite a plica r for#ato a la celda acti"a ;$i- :5<
$i- !+ Aplicar for#ato a celdas
En un nue"o li(ro> en un nue"o #ódulo inserte el si- uiente procedi#iento/
,u( $or#atoE;<,election $ont BoIdTrue Zit? ,election $ont
Na#e HBernard MTCondensed J ,i3e 00 ,tri et?rou-? $alse,u perscript $a lse,u (script $a lseOutline$ont $alse,?ado[ T $a lse. .nderline xl.nderline,t)leNone
T?e#eCoIor xlT?e#eColorLi-?t0TintAnd,?ade 2T?e#e$ont xlT?e#e$ontNone
End Zit?,election $ont ,i3e !2 Zit? ,election $ont
Color '05*5&!TintAnd,?ade 2
End Zit?
,election $ont ltalic TrueZit? ,election6ori3ontalAli-n#ent xlCenter V erticaIAIi-n#ent xlBotto#Z ra pText $alse
-
8/18/2019 excelA
74/322
Med
Pa-ina *+ Pro-ra#a Nacional de Infor#4tica
Orientation 2AddIndent $alse
IndentLe"el 2,? rin To$it $alse7eadin-order xlContextMer-eCells $alse
End Zit?
,election Borders;xIDia-onaIDo[n< Line,t)le xlNone,election Borders;xIDia-onaI. p< Linest)le xlNoneZit? ,election Borders;xIEd-eLeft<
Line,t)le T xlConti nuous
Colorlndex 2TintAnd,?ade 2Zei-?t xlMediu#
End Zit?Zit? ,election Borders;xIEd-eTop<
Line,t)le xlContinuousColortndex 2TintAnd,?ade 2 Zei@?t xlMediu #
End Zit?
,election Borders;xIEd-eBotto#
-
8/18/2019 excelA
75/322
Pro-ra#a Nacional de Infor#4tica P4-ina *1
-
8/18/2019 excelA
76/322
Tra(a%ar con li(ros ) ?o%asEn los si- uientes procedi #ientos> se #ostrar4 n las operaciones @ue se puedenreali3a r a ni"el de Li(ros
A(rir
,u( A(rir; <6im 9ombre As !tring
9ombreLibro 44 /". @ oIetas.;Is;/ +!e 'alida la e;istencia del libro, se muestra un mensaje de a'iso
IF 6ir$ 9ombreLibro* 45 :hen
9sg o; 9ombreLibro / no se 8;isteQ 8lse
NorRbooRs.Jpen File9ame.+ 449ombreLibro, updateLinRs.+44False
8nd i&
6im Libro AsNorRbooR
brr
!et Libro 44 NorRbooRs. Jpen$Filename. 44 /". @ IaniIIas@ oletas.;Is;/, ass
Sord.+54 /angeles /, Nrite-es assSord. 54 /Riara/*br
Application. 8nable8'ents 45 :rue
NorRbooRs.Jpen Filename.+44 /c.C@ lanillas@ oletas.;ls;/, #pdateLinRs .554
False End ,u(
Cerrar
Application Displa)Alerts $alse Acti"eZor (oo CIose
-
8/18/2019 excelA
77/322
Pro-ra#a Nacional de Infor#4tica P4-ina 52
Guardar
,u( Guardar; <Jn 8rror -esume Ile;t
_OnErro r 7esu #e Next>usado co#o control de error/ ,e e"itar elerror deri"ado de una celda "acFa ) ocon un ca racter con el @ue excel no per#ite - uarda r un li(ro
Acti'e NorRbooR.!a'eAs 0A>%.3alue
_Es si#ilar a considerar G Acti"eZ or (oo ,a"eAs $ilena #e / 7an-e; AI < VaIue
End ,u(
Borrar
,u ( BorrarLi(ro ; <NorRbooRs$/". @9o'edades.;Is; *. 6elete
End ,u (
Crear
,u( Nue"oLi(ro; <
NorRbooRs.Add
End ,u (d
,u( DosLF(ros;<
NorRbooRs.Add
NorRbooRs.Add
End ,u(
En los si-u ientes procedi#ientos> se #ostrar4 n las operaciones @ue se pueden
reali3ar a ni"el de 6o%as
-
8/18/2019 excelA
78/322
Insert/a nue"a ?o%a
,u( Insertar6o%a; < Acti"eZor (oo Zor s?eets Add
End ,u(
Es posi(le ta#(i n aplicar/
,u( In:ertar6o%a;<
Di# 6o%a As Zor s?eet
,et 6o%a Zor s?eets Add End ,u(
,elecciona r
,u( ,eleccionar; <
_pa ra selecciona r la pri#era ?o%adel l i(ro acti"o
Acti'e NorRbooR.!heets$2*.!elect
Gpa ra selecciona r la se- unda ?o%adel l i (ro acti"o
Acti'e NorRbooR.!heets$ *.!elect _ no rn ol ecr i r nn r l n to res ra l o%adel l i(ro acti"o
Acti-e i8eet (2 ". ielect n/ tu
NnrRnheeLn&/Hn ia lCIn'e alter.C NorRsheets$/HojaD *
End ,u(Caso aue el li(ro te no a & ? o%as>estando la ?o%a! acti"a
G Pa ra #o"er la ?o a ! del a nte de la ?o%a0,u( #o"er6oia f ] Di# 6o%a As Zor s?eet
,et 6o a Actí'e!heet 9o 'e 45!heets$> *
!et HoTa 45 !heets$>*
Ho ja. IClo'e 44!heets$!heets. "ount*
-
8/18/2019 excelA
79/322
-
8/18/2019 excelA
80/322
Co:
Set o'a \ %ct'AeS>eet
ofa \ S>eet)31
Pro-ra#a Nacional de Infor#4ticaP4-ina 50
Borrar
,u( Borrar6o%a;<!heets$/Hoja> /*.6elete
End ,u (
Casode eli#ina r ?o%asin #ostra r confir#ación,u( (orrar6o%a;<
Application. 6ispla7Alerts
False !heets$/Hoja> /*.6elete
Application. 6ispla7Alerts :rue
End ,u (
,u( Nue"oLi(ro;<NorRbooRs. Add End,u(
Casodos li(ros ,u( Nue"oLi(ro;< NorRbooRs.Add
En ,u
’ Copia*o la Ho9a1 %e puó %e la Ho9a2:Hnr; 8e
-
8/18/2019 excelA
81/322
7eno#(rar
Sub Renombrar3 &8eet (1". Ba*e 4C =Drecio ”
End Sub
Nota / No se distin-uen Ma)=scu las de #in=scu las,?eets;H PreciosH< select,?eets;H PreciO,H< select,?eets;H preciosH< select
,u( ColorEti@ueta;<
Acti'eNorRbooR. !heets$ Hoja> /*.:ab. Colorlndex D End ,u (
Pa ra sa(er el n=#ero @ue corresponde a l color> realicelo si-uiente/
>. C cderecho sobre la etiUueta de haja.
3. Elige la opción CoXorge Eti ueta ”.
?. Aceotar.
D. 8n la 'entana inmediato del editor 3 A escribe.
K0 t ? r +a( Co or ndeW
Códioo (4sico de uso frecuente/e $entrnr tnxtn
on6nri3nntalAl @ n#ent xlCenter
-
8/18/2019 excelA
82/322
P4-ina 5& Pro-ra#a Nacional de Infor#4tica
( Alinear a la i3@uierda
Zit? ,election6ori3ontaIAIi-n#ent xlLeft
End Zit?
c Alinear a la derec?a
Zit? ,election6ori3ontalAlF -n#ent xl7i- ?t
End Zit?
d $uente
Zit? ,election $ontNa#e JArialH
End Zit?
e Ta#aQo de letra
Zit? ,election $ont,i3e
02 End Zit?
f Borra toda la infor#ación del ran-o actual usado> co#en3ando desdeB&
7an-o; HB&H se e#plea códi-o para con"ertir un texto @ue se encuentraen #in=sculas a #a)=sculas0 En un nue"o li(ro> inserte un nue"o #ódulo> escri(a el si-
uiente procedi#iento/
-
8/18/2019 excelA
83/322
`
5:t ;Ia? Dim ) .r s Icn,
w o! "elect cnFor )Cnr @ ': Ac #$$
!%eplace C >)C.r?B ase> C )C.rFF
oq B
! En una celda escri(a un texto en #in=scula pa ra con"ertirlo a MAbX,C.LA,C D E
& E%ecute la #acro
No#(re de la r aoo/ ANa)usculaY
,e o(tiene el texto en MAbX,C.LA,
-
8/18/2019 excelA
84/322
Los si-u ientes e%ercicios de(en esta r codificados en #ódulos ta l co#o se indica /
,u( Cuenta$ilas;<Cant$ilas ,election 7o[s Count _Ca# (ia r 7o[s por Col u # ns pa ra
conta r colu# nasMs-BoxCant$ilas HCeldas ,elecccionadasJEnd ,u (,u( Cuenta6o%as;<#)count Application ,?eets CountMs-Box HElli(ro tiene H #)count H6o%asHEnd ,u (,u( Cuenta;<
Contador 7an-e;Ha 0H< 0
7an-e;Ha 0H< Contador End ,u (,u( MiPosicion;<$ila Acti"eCell 7o[Colu#na Acti"eCellColuinnMs- Box H.(icación de la celda / $ila/ H $ la H>Colu#na / H Colu#naEnd ,u (
_Asi-na r no# (re persona l i3ado a 7an-o de cel das
,u,u rAN ?re7n n@o;
Application Goto HVentasH
,uOcultat6o %as;<
,?eet0 Visi?le xl,?eetVer"6i rlen _,i ocu lta sus ?ot as de esta #an e ra> los usua rios no ser4 n ca paces de
ostra ro# os en_,ól o el uso de códiaos VB ser4 caoa3 de "isuali3a r las ?o%asd e nue"o
,uOcu $ rel
AopIication Visi(le $a lse _Pued e ocu ltar la a o ficación Excel con esta #a cro Esto desacti"a los #en =srte $ x rel
(
Pro-ra#a Nacional de Infor#4tica
-
8/18/2019 excelA
85/322
Pro-ra#a Nacional de Infor#4tica P4-ina 55
End ,u (,u( Insert$ilas;<Di# 7n-
7n- InputBox;HEscri(ael n=#ero de filas re@uerido H<
7an-e;Acti"eCeIl Offset;2> 2 Acti"eCelI Offset;7n- I> 2en la pa rte su perior de la pantalla
Arti"er i coi Arti"ereY 7n[
End ' t(
-
8/18/2019 excelA
86/322
P4-ina 5+ Pro-ra#a Nacional de Infor#4tica
,u
-
8/18/2019 excelA
87/322
Ca
Len-ua%e Visual Basicde Aplicaciones
O(%eti"os/
: $unda #entos de Pro- ra#ación VBA: Varia(les
' Estructuras de pro-ra#ación' In-reso datos: E%ercicios pr4cticos con e#pleo de estructuras
secuenciales
-
8/18/2019 excelA
88/322
P4-ina 5: Pro-ra#a Nacional de Infor#4tica
Len-ua%e Visual Basic de Aplicaciones ;VBA<
$unda#entos de Pro- ra#ación VBA
Este capFtulo es para usuarios @ue @uieren o(tener el #4xi#o rendi#iento deExcel VBA La Pro-ra#ación en Excel VBA no es difFcil> pero es necesarioconocer las pala (ras cla"es utili3adas en Excel VBACon el propósito de tener la capacidad de/a Desarrollar soluciones personali3adas> auto#ati3ar tareas ) au#entar el
rendi#iento #ediante VBA( Aplicar los #odelos de o(%etos para pro-ra#ar de #anera efecti"a en el
siste#a Microsoft Officec Explotar los controles Acti"eh para crear interfaces de usuario funcionales )
fa# iliard ,olución de pro(le#as de códi-o usando las ?erra#ientas de depuración de
VBA
6a) siete fases distintas en el desarrollo de una aplicación de Excel ;al-unasaplicaciones pueden ser pro-ra#adas en otras fases o #ientras @ue al-unaspuede no ser necesa rio< /a An4lisis/ La co# prensión de los re@uisitos de una aplicación de Excel( Interacción/ Traducir ideas preli#inares so(re los re@ueri#ientos a tra" s de
la interacción con el usuario final para -aranti3ar @ue las acti"idades est n(ien alineadas con las expectati"as del usuario final
c Codificación/ La escritura de códi-o ) desarrollo de ele#entos - róficos deinterfa3 de usua rio pa ra transfor#a r las ideas en un for#u la rio de tra (a%o
d Docu#entación/ Ela(oración de docu#entación para proporcionar infor#ación so(re las caracterFsticas de la aplicación
e E#(ala%e/ El desarrollo de un pa@uete de instalación para la aplicacióncuando la aplicación lo re@uiera pa ra su distri(ución
f ,e-uridad/ El desa rrollo e incorporación de procedi# ientos de se- uridad enla aplicación cuando la aplicación est4 disponi(le a tra" s de licencias o suuso est4 restrin-ido
-
8/18/2019 excelA
89/322
- Entrena#iento/ Proporcionar una for#ación pr4ctica a los usuarios @ue"an a tra(a%ar en el uso de la aplicación
,entencia DOMEn la creación de sol uciones a un re@ueri# iento se necesitan -uardar "alores@ue en un #o#ento oportuno ser4n necesarios Estos "a lores pueden ser in-resados desde teclado o son -enerados por una expresión o fór#ulaPa ra ello se re@uiere de o(%etos lla#ados Varia(lesLa "a ria (le reser"a un espacio en #e#oria para -uardar el "alor a procesa rPa ra poder e# plea rla de(e declara rta ) de(e ?acerlo con la sentencia/ Di# ;Di#es la a(re"iatura de Di#ensión<Di#> declara ) asi-na espacio para al#acenar una o #4s "aria(les.na "a ria (le @ueda definida cuando se especifica/
a El no#(re de la "a ria(le( El tipo de dato al @ue a puntac El 4#(ito en el @ue es "isi(le
Tipos de "aria(le/El tipo de dato a - uardar defi ne el tipo de "aria(le a crear ,e tienen lossi- uientes ti pos de datos/
a Nu# ricos( Booleanosc $ec?a 6orad De texto ;cadenas<e Va riantf De o(%eto
- 7e-istros de datos defin idos por el usuario
Varia(le Variant
El ti po Variant es un ti po de dato @ue puede contener pr4ctica#ente cual@uier
tipo de datos El prefi%o @ue se suele utili3ar para identificar una "aria(le Variantes "ar6a) excepciones> por e%e# plo no puede contener una cadena de lon-itud
Cuando se declara una "a ria(le o se escri(e la ca (ecera de una función sinespecifica r el tipo @ue "a a contener ó de"ol"er> i#plFcita #ente se est4declarando co#o de tipo Variant
-
8/18/2019 excelA
90/322
P4-ina +0 Pro-ra#a Nacional de Infor#4tica
De(e recorda r @ue si se declara una "aria(le sin especifica r su tipo>i#plFcita#ente la declara co#o VariantLa =lti#a declaración serFa e@ui"alente a
Di# "arM iVaria(le
Declaración de Varia(les
,e de(en decla rar todas las "aria(les @ue se utili3an en un pro-ra #a para indica
r al co# pilador de Visual Basic el tipo de datos de la "aria(le ) otrainfor#ación> por e%e# plo @u códi-o puede tener acceso a la #is#a
Pa ra decla rar "a ria(les se podrFa ?acer a I-o asF/Di# Precio As Currenc) Decla ra la "a ria (le Precio de tipo MonedaDi# No#(re As ,trin- Decla ra la "aria(le no# (re de tipo texto
Entonces de(e indica r una decla ración en este orden /0 La sentencia Di#! El no#(re de la "a rFa (le& La pala(ra reser"ada As' El ti po de dato a -ua rda r
Los ti pos de datos se identifican co#o si- ue /
a Datos nu# ricosExisten dos fa #ilias de datos nu# ricosK Datos nu# ricos de n=#ero enteroK Datos nu# ricos de co#a flotante
Co#o datos enteros se tienen los si-uientes ti pos /
No#(re del Tipo Ta#aQo Valor inferior Valor ,uperior ,ufi%o Prefi%oBt0B!(
I t ! B &! +5 &! 5 v iii
B ! 0 + & 5 ! 0'+ '1& + n-
-
8/18/2019 excelA
91/322
S'n le 4 *+te)
dbl
Por ,ufi%o se entiende @ue es un car4cter de definición de tipo @ue se puedeaQadir a la Varia(le o Constante> pa ra definir el tipo al @ue pertenecePor e%e# plo Di# Va lorLon- declara i#plFcita #ente la "aria(le ValorLon- co#o
Lon-
Esta decla ración e@ui"a le a la si-u iente /
Di# ValorLon- As Lon-
( N=#eros de Co#a $lotanteLos n=#eros de co#a flotante son unos tipos de datos @ue ad#iten "aloresno enterosPor e%e#plo estos son "alores de co#a flotante/K & 0'0*:!5*&*1:+:K ! +01!101!1'*:2*K '**5! 0wK 5 22M
Co#o datos de co#a flotante se tienen los si-u ientes tipos/
No#(re Ta#aQoNe-ati"os Positi"os ,ufi
-
8/18/2019 excelA
92/322
#
Pro-ra#a Nacional de Infor#4tica P4-ina +!
.n cuad ro resu#en /
E%e#plos/
a Declarar una "aria(le para -uardar el sueldo de una persona
Di# sn-aueldo As ,in-le
Declarar una "aria(le para -uardar la cantidad de PC de cierta
e#presa
Di# intCantidad Pc A Ass Inte-er
Declarar una "aria(le para -uardar el no#(re de un paFs
Di# strNo#(rePais As ,trin-
d Declarar una "aria(le para -uardar la fec?a de in-reso a una
e#presa
Di# dat$ec?a0n-res As Date
e. Declarar una "aria(le para -uardar la fec?a de in-reso a una
e#presaDi# (lnEstado,alida As Boolean
-
8/18/2019 excelA
93/322
Di#ensionar "aria(lesI#plica la reser"ación de un espacio en la #e#oria> a este espacio se le identifica#ediante un no#(re ) est4 disponi(le pa ra @ue per#ita -ua rda r los "alores enfor#a te#poral d urante la e%ecución del pro-ra#a Asf es co#o se di#ensiona
una "aria(le/
Di# identificador As tipo
RPor@u es i#portante di#ensionar una "aria (le La diferencia ocurre a ni"elfFsico Puesto @ue al definir la "aria(le se define el tipo de dato @ue "a a -uardar,i no se di#ensiona la "aria(le sta en for#a auto#4tica ser4 de tipo Variant>este tipo de "aria(le esta preparado para reci(ir tanto n=#eros enteros>deci#a les o ta #(i n letras
AI di#ensiona rse co#o Variant ) to#a un espacio en la #e#oria ) se preparapara @ue -ua rda r tanta "ariedad de datos co#o sea posi(le Esto ?ace @uese J7eser"eH #as espacio en ella> si se co#para con una "aria(le solo ?ec?apara al#acenar un tipo de dato Por lo tanto> si sa(e @ue la "aria(le solocontendr4 letras> pa la (ras o ca racteres no nu# ricos seria #e%or di#ensionar esa "aria(le co#o ,trin-> esta clase de "aria(les solo aceptan letras> pala(ras ocaracteres no nu# ricosDe(e entonces di#ensionar correcta#ente la "aria(le de acuerdo al tipo de dato@ue se e# plear4 a lo la r-o del pro-ra#a
.tili3ar "aria(lesEs i#portante @ue las "aria(les @ueden de(ida#ente definidas antes dee#plea rlas
Ta#(i n puede declara r una "aria (le escri (iendo #enos códi-o
Por e%e#plo ca #(iando As Inte-er por K+o
A continuación se #uestran los si# (olos para a (re"ia r/
Di# nro as Inte-er A(re"iatura / Di# nroDi# nro as Lon- A(re"iatura / Di# nroDi# nro as ,in- le A(re"iatura/ Di# nrogDi# nro as Dou(le A(re"iatura/ Di# nrowDi# no# as ,trin- A(re"iatura/ Di# no#sDi# no# as Variant A(re"iatura/ Di# no#
-
8/18/2019 excelA
94/322
La "a ria (le tipo ,trin- per#ite confi-urar el ta#aQo deseado del si- uiente #odoDi# "aria(le as ,trin- ^ Cantidad de caracteres deseados
Vea la diferencia /
Caso Gen rico Caso Confi-urado
Di# saludo as ,trin- Di# sal udo as ,trin- ^02sa ludo H6ola a #i-y H sal udo H6ola a# i-y H
Vida de las "aria(lesEl tie#po de "ida de una "aria(le per#ite sa(er ?asta cuando una "aria(le ser4"4lida durante la e%ecución de un pro-ra#a .na "aria(le puede tener unaduración li#itada por el tie#po de e%ecución de una lla #ada de procedi#ientoOtras "aria(les pueden durar desde su creación ?asta el final de la e%ecución
del pro-ra#aNor#a l #ente> todas las "aria(les declaradas a ni"el de un #ódulo tend r4 nla duración de acuerdo a la "ida de una a plicación ) las "a ria(les declaradasdentro de un procedi#iento sólo existen #ientras @ue el procedi#iento seest4 e%ecutando,e de(en considera r> al- unas excepciones a la re-la -eneralK Las "aria(les est4ticas Las "a ria(les est4ticas conser"an sus "a lores
entre lla#adas a procedi#ientos .n uso co#=n de "aria(les est4ticas esco#o indicadores de control para e"ita r la recursión ili#itada> Losindicadores de control para la confi-uración de una propiedad solo seescri(en una "e3
K Módulos de clase Las "aria(les decla radas a ni"el de #ódulo de claseexisten durante toda la "ida =til de los o(%etos de clase
K Módulos de for#ulario Las "aria(les declaradas en los #ódulos defor#ulario existen desde @ue se crea la instancia del for#ulario ,ine#(ar-o> Visual Basic Applications trata #ódulos de for#a a I-o particular )crea r4 auto#4tica#ente una instancia de un for#u tario en lo @ue se ?acereferencia a al-una de sus propiedades
.na "aria (le local ,tatic tiene un perFodo de duración #4s lar-o @ue el delprocedi#iento en el @ue se declara Los lF#ites de la duración de la "aria(ledependen de dónde se declare el procedi#iento ) si est4 o no ,?ared
-
8/18/2019 excelA
95/322
ProFrama Nac'onal de #n=orm t'ca
Declaración deprocedi#iento
La "aria(le se iniciali3a La "aria(le de%a de existir
En un #ódulo La pri#era "e3 @ue se lla#a al procedi#ientoCuando el pro-ra#a finali3ala e%ecución
En una clase o estructura>,?ared
La pri#era "e3 @ue se lla#a al procedi#iento en una instancia especFfica o en la propia clase o estructura
Cuando el pro-ra#a finali3ala e%ecución
En una clase o estructura>nos?a red
La ri#era "e3 @ue se lla#aal procedi#iento en unai neta ncia especFfica
Cuando la instancia se li(era para la recolección de ele#entos no utili3ados
Las "aria(les est4ticasNor#a l #ente> cuando un procedi#iento pone fin a todas las "aria (les seresta(lecen Las "aria(les est4ticas son un caso especial> )a @ue conser"an su"alor aun cuando el procedi#iento ter#ina Las "aria (les est4ticas se declaran ani"el de proced i#iento .na "aria(le est4tica puede ser =til si se necesita
#antener un se-u i#iento del n=#ero de "eces @ue se e%ecuta un procedi#iento,e puede declarar una "a ria (le est4tica ) se incre#enta r4 cada "e3 @ue se
e%ecuta el procedi#iento En el si-uiente e%e# plo/
,u( M),u( ; <
,tatic Contador As Inte-er Di# Mensa%e As ,tri n-
Contador Contador 0Mensa%e HEl n=#ero de e%ecuciones/ H Contador Ms-Box Mensa%e
End ,u (
A pesar de @ue el "alor de una "aria(le declarada co#o est4tica es retenidadespu s de la finali3ación del proced i#iento> d ic?a "a ria (le no est4 disponi (le
para otros procedi#ientos En el e%e#plo anterior> la "aria(le de contador sóloest4 disponi(le en el procedi# iento $l),u( En otras pa la (ras> es una "a ria(le
de ni"el de procedi#iento
Varia(les a ni"el de procedi#iento.na "aria(le local o de procedi#iento se decla ra dentro de un procedi# ientoindi"idual o función ) no es "isi(le fuera de esa su (rutinaLas "a ria(les Iocales sólo se pueden utili3a r en el procedi# iento en el @ue
se decla ran
-
8/18/2019 excelA
96/322
P4-ina +5Pro-ra#a Nacional de Infor#4tica
Cuando el procedi# iento o la función ter#ina la "a ria(le se eli#inaauto#4tica#ente ) la #e#oria es li(eradaPuede utili3ar la instrucción Di#> ,tatic o Pri"ate dentro de una su (rutina o
función
La for#a #4s co#= n de declara r una "aria(le local es utili3ar la instrucciónDi# entre las instrucciones ,u( ) End ,u(.na de las -randes "enta%as de las "aria(les locales es @ue puede utili3ar el#is#o no#(re en diferentes su(rutinas sin nin-=n conflicto
Pu(lic ,u ( procedure na #e ; <Di# slocal"aria(le As ,tri n-
End ,u (
.na de las "enta%as de las "aria(les locales es @ue se puede utili3ar el #is#ono#(re en diferentes su (rutinas sin nin-=n conflicto
Varia(les a ni"el de #óduloNi"el de #ódulo ;Pri"ado<.na "aria(le de ni"el de #ódulo se declara en la sección de declaraciones de un#ódulo de códi-o ;est4 ndar> de clase o .ser$or#<Las "a ria (les de ni"el de #ódu lo pueden tener dos "alores )a sea p=(lica o
pri"ada .na "a ria (le de ni"el de #ódulo pri"ado es "isi(le sólo en el #ódulo @ue sedecla ra
,i se decla ra una "aria(le de ni"el de #ódulo con la instrucción Di# esto ese@ui"alente a utili3ar la instrucción pri"ada
Pri"ate s(toduleLe"el As ,trin-Di# sModuleLe"el As ,trin-
Pu(lic ,u( Procedure na#e ;<
End ,u (
-
8/18/2019 excelA
97/322
Ni"el de #ódulo ;P=(lico<.na "aria(le de ni"el de #ódulo p=(lica es "isi(le para todos los #ódu los delpro)ectozstos ta #(i n se conocen co#o ni"el de pro)ecto o "aria (les -lo(alesDe(e insertar estas declaraciones en la parte superior de los #ódulos> antes decual@uier procedi#iento o funcionesLas "aria(les del alcance del pro)ecto ta#(i n de(en ser decla radas en un#ódulo de códi-o est4nda r ) no en un #ódulo de for# u Iario de usua rio o clase
P=(l ico sPro%ectLe"el As ,trin-
Pu(lic ,u ( procedure na#e ;<
End ,u(
Varia(le de ni"el de #ód ulo p=(lica ;o - lo(al< de(e estar precedido de una H-H
K Varia(les de ni"el de #ódu lo pri"ado de(en ?a(er sido precedidode un H#H
Varia(les a ni"el de aplicaciónEn este ni"el> las "a ria (les declaradas se les conocen co#o "a ria (les -lo(ales
.na "a ria (le -lo(a l es conocida en toda la aplicación o pro)ecto
.na "a ria (le -lo(a l es una "aria (le declarada fuera del ,u( Na#e ) los End ,u (Tal "aria (le nor#a l#ente se declara en la sección su perior de la a plicación Vea este e%e# plo/
Option Expl icit
Di# Apellido As ,tri n-
,u( E%ercicio;<
End ,u(
-
8/18/2019 excelA
98/322
Despu s de decla ra r una "aria(le - lo(al> se puede acceder a l