excela

Upload: gonzalo-ap

Post on 07-Jul-2018

215 views

Category:

Documents


0 download

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