Вы находитесь на странице: 1из 4

Practico Computing | Curso (y IV)

Curso de programacin de macros en Excel 2007


Funciones a medida
En este captulo final del curso aprenders cmo es posible usar las tcnicas de programacin de macros
para crear nuevas funciones que se pueden usar en una hoja de Excel como si se tratara de cualquiera
de las funciones ya incluidas en el programa.
Cap. 1 Tus primeras macros
La ficha Pr ogr amaci n El grabador de macros.
El cdigo de una macro. El ciclo Por... Next. Macros
de impresin sencillas.
Cap. 2 Macros de impresin
Combinar correspondencia. Refinamientos. Los
ciclos Do While y Do Until. Macros interactivas.
MsgBox e InputBox. El juego de las veinte
preguntas. Cuadros de dilogo estndares.
Cap. 3 Macros automticas
Libros con contraseas. Contrasea con vencimiento
Manejo de archivos de texto. Registro de usuarios.
Otras formas de ejecutar una macro.
Cap. 4 Funciones a medida
Funcin CILINDRO. El cdigo de las funciones.
Calcular la fecha de pascua y el signo del zodiaco.
El juego de Master Mind. Gua de recursos tiles.
Proteccin de macros
S
egn se explicaba en La primera entrega
de este curso sobre la programacin de
macros en Excel, una macro es un pro-
grama escrito en el lenguaje de programacin
Visual Basic para Aplicaciones. Lo que te ex-
plicamos en este ltimo captulo es que en el
-mismo lenguaig^-effp*learao tcnicas-simila-
res, jaueies- crear un tipp..especial de macro:_.se
-traa de las \ u o dones definidas por el usuario.
Estas-sorTf unciones como-SUMA, SI o BUS-
CARV, pero que hacen cosas que no estn
previstas en Excel. Lo interesante es que son
funciones'que hacen lp,.qtte^quieres
"gan, segn las-netesidades que te-strrgan en
cada momento y los ccules que tengas que.-~
hacer, como averigu'r en qu da caer'e 15
de julio del ao 2011 o cul es el volumen de
un cilindro.
Clculos muy concretos
1
I
El volumen
de un cilindro
Sabes cmo se calcula el volumen de un
recipiente cilindrico? Debes multiplicar el n-
mero TT (3,14-159...) por el cuadrado del radio
y luego por la altura. Si el radio y la altura
estn inicialmente en sendas celdas de una
hoja de clculo, puedes escribir La frmula en
otra celda. Por ejemplo, si el radio est en B1
y la altura en B2, calculas la capacidad con
Inicio Insertar Diseo de pgina
1
2
:
* Anal
J
Pegar w
- J
83
A
Radio
Altura
Volumen
"I" ' A" A* "
s _ - >- A- m
fuente
f* =n'31"31-92
8 C
10
25
7853,982!
134
=PIO*BrB1*B2. Pero puedes hacer algo mejor y
crear una funcin que hace este clculo traba-
jando como si fuera una macro.
Abre el editor de Visual Basic y crea un nuevo
mdulo. En la ventana del mdulo escribe el si-
guiente cdigo:
Function Cilindro(radio, altura)
Pi = 3.1415926
Cilindro = Pi * radio * radio * altura
End Function
Como puedes ver, el cdigo de estas funciones se
parece bastante al de las macros. En primer lugar,
el cdigo comienza con la palabra clave Function,
seguida del nombre elegido para la funcin. A
continuacin, entre parntesis, se indican Los
datos que debe recibir la funcin para hacer el
clculo. El cdigo termina con End Function (as
como las macros terminan con EndSub). En el
medio se detallan todos los clculos propiamente
dichos. El resultado del clculo, lo que deseas que
calcule la funcin, debe asignarse al nombre de la
funcin mediante un signo igual.
41 Functonesjdsm
(General} ""*] I ctedra
~ - - - - - - - - Cilindro (radio, altura)
Pi - 3.1415926
Ci.la.ndzo - Pi * radio * radio altura
End Tunction
Las funciones que creas en el editor de Visual
Basic se emplean en una hoja de clculo como
cualquier otra funcin de Excel. Por ejemplo,
escribe un nmero que represente el radio de un
cilindro en Bl y otro que represente la altura en
B2. En B3 escribe =CILINDRO(B1;B2). Obtendrs
el volumen del cilindro.
1.2
Una fecha determinada
Podras decir la fecha del domingo de Pascua
para el ao 2012? Los fabricantes de calendarios
lo saben. Hay un procedimiento matemtico
para calcularlo:
c u r s o ( y iv) | Computing Prctico
Sea A el ao , s e r es ta A-1900. Sea B el res u ltado .
Se di v i de B entr e el nmer o 19. Sea C el r es to
de la di v i s i n.
Se di v i de 7 C ms 1 entr e 19. Sea D el c o c i en-
te, s i n tener en c u enta lo s dec i males .
Se div ide 11 C meno s D ms 4 entr e 29. Sea E
el resto .
Se div ide B entr e 4. Sea F el r es to .
Se div ide B ms F meno s E ms 31 entr e 7. Sea
G el r es to .
La fec ha del do mi ngo de Pas c u a es 25 meno s E
meno s G , c o ntando a par ti r del pr i mer o de abril.
Si el r es u ltado anter i o r es c er o , la fec ha es el 31
de mar zo ; s i es -1, es el 30 y as s u c es i v amente.
Es te c lc u lo fu nc i o na par a c u alqu i er ao entr e
1901 y 2099. Si tr adu c es es tas i ns tr u c c i o nes a
Vi s u al Bas i c pu edes c r ear u na fu nc i n PASCUA
qu e, c o no c i do el ao , c alc u le la fec ha del do mi n-
go de Pas c u a. El c di go s er a el s i gu i ente:
Function PASCUA(a)
b = a - 1900
c = b Mod 19
d = lnt{(7 * c + 1) / 19)
e = til * c - d + 4) Mod 29
f = Intlb / 4)
g = (b + - a + 31) Mod 7
PASCUA = 25 - g -
End Punotion
a + DateSerial(a, 3, 31)
Es ta fu nc i n hac e lo s
c lc u lo s expli c ado s ms
ar r i ba. La fu nc i n Mod
( en r eali dad, es u n o pe-
r ado r c o mo el ms ( +)
o el por (*)) cal cul a el
r es to qu e s e o btiene al
div idir el v alo r qu e es t
a s u i zqu i er da entr e el
qu e es t a s u der ec ha
( equ i v ale a la fu nc i n
RESIDUO de Exc el) .
La fu nc i n Int c alc u la
la par te enter a de u n
v alo r ( c o mo la fu nc i n
ENTERO). En la ltima
i ns tr u c c i n s e u s a la fu nc i n DateSerial par a
c alc u lar la fec ha c o r r es po ndi ente al 31 de mar -
zo del ao pedi do .
Aho r a pu edes es c r i bi r *PASCUA(2012) en u na
c elda y c o no c er la fec ha del do mi ngo de Pas c u a
par a es e ao . A la c elda le debes apli c ar u n fo r -
mato de fec ha.
Averigua el signo
zodiaco
Function ZODIACO(fec ha )
f = DateSeriaKO, Month(fec ha ) , Da y( fe c ha ) )
ZODIACO = "Capricornio"
If
If
If
If
If
If
If
If
If
If
If
If
f
f
f
f

f :
f :
f :
f :
f ;
f :
f ;
= DateSerial (0,
= DateSerial (0,
= DateSerial (0,
= DateSerial (0,
= DateSerial (0,
= DateSeriaKO,
= DateSerial {0,
= DateSerial { 0 ,
= DateSerial {0,
= DateSeriaKO,
= DateSeriaKO,
= DateSeriaKO,
1,
2,
3,
4,
5,
6,
7,
3,
9,
10,
11,
12,
20)
20)
21)
21)
22)
22)
23)
23)
23)
24)
23)
22)
Then
Then
Then
Then
Then
Then
Then
Then
Then
Then
Then
Then
ZODIACO =
ZODIACO =
ZODIACO =
ZODIACO =
ZODIACO B
ZODIACO =
ZODIACO =
ZODIACO =
ZODIACO =
ZODIACO =
ZODIACO =
SODIACO = '
"Acuario"
"Pisis"
"Aries"
"Tauro"
"Gminis"
"Cncer"
"Leo"
"Virgo"
"Libro"
"Escorpio"
"Sagitario"
Capricornio"
End Function
Co mpr o bar s qu e es te es o tr o ejemplo i nter e-
s ante. Calc u la, par a u na fec ha de nac i mi ento , el
s i gno zo di ac al c o r r es po ndi ente:
Es ta fu nc i n c alc u la u na fec ha qu e c o i nc i de en
mes y ao c o n la de nac i mi ento dada, per o par a el
ao 0. Es te ao Os er el de r efer enc ia. La fu nc i n
s u po ne qu e el s igno bu s c ado es Capr i c o r ni o . Lu ego
c o mi enza a pr egu ntar s i la fec ha de r efer enc i a es
po s ter i o r a la fec ha de inic io de c ada s igno . Si lo
es , as i gna el s i gno c o r r es po ndi ente.
foiriUr Oi i fg 3t pagina FmuJll
Fecha de nac imiento
Signo del zodiaco I Escorpio
28/10/1967
2 Juega a Master Mind
Has ju gado algu na v ez al Mas ter Mind? Segu r a-
mente s i ( au nqu e tal v ez no s abias qu e s e er a
s u no mbr e) . Es u n ju ego de adiv inar nmer o s en
el qu e tu r i v al pi ens a u n nmer o de c u atr o c ifr as
y t tr atas de adiv inar lo . Po r ejemplo , di gamo s
qu e el nmer o a adi v i nar es 7.239. Ento nc es t
ar r i es gas "es el 7.962?", y tu r iv al dir "u no bien
y do s regu lar". Qu iere dec i r qu e u no de Lo s dgito s
del nmer o qu e t dijis te s e enc u entr a tambi n en
el qu e l pens , y en la mi s ma po s i c i n ( el 7) y
qu e o tr o s do s dgi to s ( el 2 y el 9) tambi n es tn
en s u nmer o , per o en dis tinta po s i c i n. No no s
dic e c u les s o n es o s dgito s , s o lamente ev ala
nu es tr o intento en tr mi no s de "bien" y "regu lar".
E8
C D
JM
7] 1234
3 5678
7j 9012
9078
3 9378
9478
8 9468[]
. =o 5^AS1;DSS
E
Bien
0
V
2
2
3
4]
F
Regular
1
1
0
0
0
0
0
Co n es a i nfo r mac i n, y tr as s u c es i v o s i ntento s ,
debes dedu c ir el nmer o qu e l ha pens ado . Aho r a
pr epar ar s u n s i s tema de mac r o s y fu nc i o nes par a
ju gar c o ntr a Exc el a Mas ter Mind.
2. 1Genera el nmero
La ho ja par a ju gar a Mas ter Mind debe hac er do s
c o s as : gener ar el nmer o qu e t tr atar s de dedu -
c ir y ev alu ar lo s i ntento s en tr mi no s de bien y
r egu lar . Par a lo pr i mer o , es c r i be lo s nmer o s del
O al 9 en el r ango A3:A12. En B3 es c r i be la fu n-
c i n =ALEATORIOO y exti ndela has ta B12. Si
aho r a o r denas es ta tabla s egn el c o nteni do de la
c o lu mna B el r es u ltado s er , en r ealidad, des o r -
denar la lis ta de dgi to s . Si lees lo s nmer o s del
r ango A3:A6 o btendr s u n nmer o de c u atr o dgi-
to s qu e c ambi a aleato r i amente c ada v ez qu e o r -
denas la lis ta. Par a c alc u lar es te nmer o , es c r i be
en Al la fr mu la =A3*1000+M*100+A5"10+A6.
Ya ti enes el nmer o .
2
Generacin
automtica
feieo Insertar Di s eo de pgina
*"
OM e n er o1 at o i Ac tu ali zar
exter no s to do
Co neno r
1
2
3
4
5
6
7
B
10
11
12
13
14
Al
A
5
Frmulas Dato s Rentar Vi s ta
i 1 A Zi "~J
1 Ordenar Filtro ^ Ieto en
Jf/ Abanadas c o lu mnas
l^Or denar y fi ltr ar
'". =A3*1KXM
R C
O Hrf
9466)
9
4
6
8
7
5
3
0
1
2
0,6455
0,8559
0,0224
0,8749
0,1157
0,0834
0,0489
0,6134
0,9569
0,0879

Ordenar
Inicia e! c u adr o de dialo go Or denar par
o r denar t o s dato s bas ado s en v ano s c r tter i o i S
la v ez.
.._
_
-
e Fl para obtener ay u da.
Personal
Par a o r denar la lis ta c ada v ez qu e qu i er as gener ar
u n nu ev o nmer o emplear s la s igu iente mac r o :
Sub MasterMindO
Do
Range("A3:B12").Sort Keyl:=Range("B3")
Loop ntil [A3] >0
End Sub
Es ta mac r o o r dena la
tabla de A3:B12 s egn
el c o nteni do de B3. La
i ns tr u c c i n c o r r es po n-
di ente al o r denami ento
la pu edes av er igu ar c o n
el gr abado r , per o u na
v ez s i mpli fi c ada qu eda
c o mo la v es en el c di -
go . El o r denami ento s e
r epi te en u n c i c lo has ta
qu e el v alo r de A3s ea
may o r qu e c er o . Es to
es po r qu e A3 s er el
pr i mer dgi to del nme-
r o a adi v i nar y s te no
pu ede c o menzar c o n 0.
As i gna es ta mac r o a u na
c o mbi nac i n de tec las
( o a u n bo tn) y v er i fi -
c a qu e fu nc i o na c o r r ec -
tamente. Lu ego o c u lta
las c o lu mnas A y B par a
qu e no pu edas v er el
nmer o a adi v i nar .
135
Prctico
Computing | Curso (y IV)
2.3Lafuncin BIEN
Ahora debes crear funciones para evaluar tus
intentos, comparando cada dgito del nmero a
adivinar (el "objetivo") con el que t piensas (el
"palpito"). Por ejemplo, un dgito se considera
"bien" cuando ocupa la misma posicin en el
objetivo y en el palpito. La funcin que haga
este anlisis debe descomponer ambos nmeros
en sus dgitos y compararlos cifra por cifra. Si La
comparacin es satisfactoria, contar ese dgito
como "bien". EL cdigo de la funcin capaz de
hacer todo esto es:
Function BIENobjetivo, palpito)
For i = 1 To 4
If Midlobjetiva, i, 1) * Midipalpito, i
Next
End Function
1
2
3
i
i
A 5
1 462
1 0,0258
4 0,9842
6 0,2223
^ntSUWj
C " E F
_Bien_ Regular
1 4061 2] 1
del tercero). Si La comparacin es exitosa, la fun-
cin BIEN suma una unidad a La puntuacin.
!
funcin REGULAR
La funcin REGULAR es parecida a La anterior,
pero debe comparar todos Los dgitos del palpito
con todos los d-
gitos del objetivo,
independiente-
mente de su posi-
cin. El cdigo es
el siguiente:
1) Then BIEN = BIEN + 1
Para separar cada nmero
en sus dgitos se usa La
funcin Mid.Su sintaxis es
Mid(nmero, comienzo,
cantidad). Esta funcin
separa, dentro de nmero,
tantos dgitos como indi-
que cantidad a partir de
la posicin indicada por comienzo. Por ejemplo
Mid(75698.3,2) es igual a 69 (dos dgitos a partir
Function REGLAR(objetivo, palpito)
For i = 1 To 4
For j = 1 To 4
If Midfobjetivo, i, 1) = Mid(palpito, j,
i o j Then REGULAR = REGULAR + 1
Next
Next
End Function
1) And
Esta funcin compara todos Los dgitos del ob-
jetivo con todos Los dgitos del palpito. Si la
comparacin es exitosa, solamente cuenta el
dgito como "regular" si se encuentran en distinta
posicin (si estuvieran en la misma posicin, no
correspondera contarlo como "regular" sino como
"bien"). Como la comparacin tiene un cdigo un
poco largo, se ha separado en dos renglones con
un guin bajo.
Ahora debes incorporar estas dos funciones a la
hoja del juego. Por ejemplo, escribirs tus palpitos
en la columna D, a partir de D2. Entonces escribe
=BIEN(A$1 :D2) en E2 y =REGULAR(A$1 ;D2> en
F2. Extiende estas dos frmulas hacia abajo, hasta
la fila 1 1 , para evaluar diez intentos (deberan ser
suficientes). Verifica que las funciones muestren
los valores correctos.
fetos LmitUr
Otritntf data* Aduairur
itf\u f oagms Ffroulu M;: Rttuw Vl"
"
=; * .I... Jfe: =*}'1 000*"'D(HA5'1 0**
A
i 1 462 * L
* *l
_i *g
3 1 0
i n P"
* 4
6 6 0 ihc
6 2 0 Bo
9 Qy t
a 3 0 .5
9 8 0 Q <
1 0 0 0 1 3
1 1 5 0,1 2
1 2 7 0,4789
len Regular
: 2 1
ida ESDEcnl...
0 0
.r conten.*, 0 0
oa^ 0 0
ho de tolunni-r 0 0
^ 0 0
0 0
3 Trucos y tcnicas para tus macros
En los ejemplos explicados durante este curso
aprendiste los grandes conceptos de la progra-
macin de macros: la estructura general de una
macro, el uso de variables y celdas, los distintos
ciclos, la instruccin condicional, cmo crear
funciones, etc. Para terminar, aqu tienes un
conjunto de trucos y tcnicas que te permitirn
escribir macros y funciones mejores, ms rpidas
y ms elegantes. Cualquiera de estas herramien-
tas la puedes aplicar a los ejemplos que ya viste.
3.1 Comentarios
Cuando miras el cdigo de una macro no siempre es
fcil entender lo que la macro hace o el porqu de
cada instruccin. Esto es especialmente importante
cuando tienes que modificar una macro y debes
saber exactamente cmo la modificacin afectar a
la macro. Una forma de hacer macros ms simples y
fciles de entender es mediante la inclusin de co-
mentarios que expliquen una instruccin compleja.
Un comentario es una lnea de texto precedida por
un apstrofo. Estos comentarios no forman parte
realmente del cdigo y sern ignorados cuando la
macro se ejecute. AL mirar el cdigo, las lneas de
comentarios se ven de color verde.
O O Referencias
en3 D
Una celda de un libro de
Excel se identifica me-
diante tres coordenadas:
una, la hoja a la que
pertenece; otra, la fila y;
por ltimo, La columna.
Dentro de una macro estas
tres coordenadas se indi-
can de la siguiente forma:
Sheets(hoja).Cells(fila,
columna), donde Hoja
es el nombre de la hoja,
escrito entre comillas o
su nmero de orden den-
tro del libro. Fila es el
nmero de fila y columna
es el nmero de columna
(1 para la A, 2 para la B,
etc.) o la letra escrita en-
tre comillas. Por ejemplo
5heets("Hoja1").Cells(3,
"A") corresponde a la cel-
da 3 de la hoja Hoja!.
Mdute (C
jfGenet!)
Sub HtscerHiadO
'Desordena los nuciereis de la columna B
' Hasta obtener er. ur. nnera que no comience con cero
Do
Rsng*"A3:B12-|-Sorc Key
Loop 'Jr.cil :3; > O
End Sub
tt,Ayuda d**i
-i -V
niil' y r
Cano: Hacer referencia a celdas utifcanxJo nmeros de ndice
Puede u*w la prooBKiad Cd*oata hacer refirenos a uro sola crida ululando >osnmowt Ha ydecoUm*.
Esta owrtad devudw: un objeto Range que representa una sola crida. Sn el agente ejemoto, Clli ( , 1 1
devulvela ::e Mdela ho]a Sheetl. Entonces, la propiedad Vatue se establece en 1 0.
Sub EnterValueO
MoEltslieecsi-Shcetl-)-Cells(6, 1) .Valu - 10
End Sub
Le propiedad CeBfaraona bien para ejecutor budw sn un rango de celdas, ya que oued* sustituir ls viriWe
por los nmeros de rtdce, como se muestra en el siguiente ejemplo,
Sub CycleThrough()
Din Coancer Aa Intecjer
For Counter - 1 To 20
Horfesheets("Sheeel").Celia(Counter, 3J.Valu - Councer
N e x c Councer
End Sub
J Not
& dse* cambar las propedades de un rango de celdas al mismo bemoo (o eplcsriw un mtodo), uttoela
proc<e<)d Ranffe, Para obtenef ms nfemaon, vea Hacer reterenoa a cetas y rangos utfasndo la notacin
06 MCTtwoft CwporatKKi, Resen,-ados todos los detedit.
vea tambii ^^
' Bucles en un rango de celdas
Como Hacer telerenaa a celdas en reJaan con otras celdas
Ayuda de! piogtamador sin conexin
Depuracin
Cuando la macro no funciona y no hace
lo que debe hacer, hay que trabajar mu-
cho para descubrir qu es lo que anda
mal. Hay un par de tcnicas que hacen
ms simple esta tarea. Por ejemplo, si
dentro del editor de Visual Basic pulsas
la tecla F8 comenzar a ejecutarse la macro ac-
tual pero paso a paso, es decir, una instruccin
por vez. Entre paso y paso puedes controlar
qu est haciendo la macro. Por ejemplo, si
apoyas el puntero del ratn sobre el nombre de
una variable, aparecer un cartel con el valor
actual de la variable. Tambin puedes incluir en
medio del cdigo la instruccin Stop para dete-
ner la ejecucin de la macro en un punto dado
136
C u r s o ( y iv) |Computing
Prctico
Es pu taci n Ijecu^r enamientas
C o mpijar V BAP r o ject
1 Pas o a pas e po r ins tr u ccio nes
LjJ Pas o a pas o po r pr gce*mi entes
*1 Pas o apas o par a s ali r
1 Ejecu tar bas ta el cursor
Agr egar i ns pecci n...
Mo dificar i ns pecci n...
-> Ins peccin jpida...
C o mplemento s VenUn
FB
C tr i+May !*F8
Ctr!*F 8
C tr l-W
Miy s *F9
Alter nar pu nto einter r u pcin F 9
gofrir todos los puntos de inter r u pcin C tr l-May S+F9
Es tablecer ins tr u ccins i gu i ente
Motrai lains tru ccins igu iente
C tr !-F9
If Hid(objetivo, i, lj - MieUp
e i nv es ti gar lo qu e la macr o es t haci endo .
C o n la macr o deteni da pu edes co nti nu ar pas o
a pas o co n la tecla F8 o r eanu dar la ejecu ci n
no r mal co n La tecla F5.
Macro discreta
Pu ede s er qu e u na macr o mu eva y co pie dato s
po r to da la ho ja, s e mu ev a de ho ja en ho ja, etc.
Si i nclu y es en el cdi go la i ns tr u cci n Applica-
tio n.Scr eenUpdating = Fals e la macr o fu nci o na-
r no r malmente, per o s in qu e el r es u ltado des u s
acci o nes s e v ea en La pantalla. Elimina el "r efr es -
co de pantalla", co mo s e di ce tcni camente. Gr a-
ci as a es to la macr o no s lo fu nci o nar "en s ilen-
ci o " s ino qu e tambi n s er ms r pi da. Si des eas
Sub CartasO
A IveSheec. ParjeSetup. PrintArea
i - 2
Applieacion.j
Do While.
Calis
Celia
Celia
Accivt
Loop
End Sub
A SendKej-s
* SharePoinWersion
P Sheets
& SheetsInNewWorkbook
r es tablecer el "r efr es co de pantalla, i nclu y e la
i ns tr u cci n Appli cati o n.Scr eenUpdati ng =Tr u e
en el pu nto adecu ado . El r efr es co s e r es tablece
en fo r ma au to mti ca al ter mi nar la macr o .
Ayudas
C u ando es cr i bes u na i ns tr u cci n en el cdi go de
u na macr o s u ele apar ecer u n cu adr i to de gu a.
Po r ejemplo , al es cr i bi r La i ns tr u cci n Appli -
cati o n.Di alo gs ( s e des cu elga u na lis ta co n Lo s
ar gu mento s v li do s ) . Par a qu e es ta ay u da apa-
La seguridad
C u ando abr es u n ar chiv o co n macr o s pu ede
s er qu eno pas e nada es pecial, es po s iblequ e
apar ezca u n cu adr o qu ete pr egu nte s i des eas
habilitar las macr o s o pu edes er qu e Excel te
i nfo r me dequ e las macr o s han s ido des habi li -
tadas au to mti camente. Su ceder u na dees tas
co s as dependi endo del nivel des egu r idad qu e
tengas es tableci do en Excel. Par a es tablecer es te
nivel des egu r i dad pu ls a en el bo tn Segu ridad
de macro s , dentr o dela fi cha Pr o gr amado r ( en
las v er s i o nes anter i o r es deExcel pu ls a en las
o pci o nes Herramientas . Macr o . Segu r idad). A
co nti nu aci n, apar ecer u n cu adr o co n lo s di s ti n-
to s niv eles des egu r idad. En el ms bajo . Excel
habilita au to mti camente cu alqu ier macr o qu e
pu eda haber en el libr o qu ees ts abr i endo . Es te
niv el es el ms peli gr o s o po r -
qu e hay v i r u s qu e s e es cr iben
co mo macr o s . En el s i gu i ente
niv el, Excel habi li ta s lo las
macr o s qu e cu enten co n u na
fir ma digital qu ecer tifiqu es u
o r igen s egu r o . Lo s cer ti fi cado s
digitales s e o bti enen a tr av s
de ci er to s o r gani s mo s de cer ti -
ficacin co mer cial, po r ejemplo .
www.ver is ign.co m. El ter cer
niv el ( Des habilitar to das tas
macr o s co n no tificacin) es el
ms r eco mendado y hacequ e
Excel, en pr i nci pi o , des habilite
las macr o s , per o te d La o po r -
tu nidad dehabi li tar las t mi s mo . Par a es o pu ls a
en el bo tn Opcio nes qu eaco mpaa al mens aje
de no ti fi caci n, s eleccio na La o pci n Habilitar es te
co ntenido y lu ego en Aceptar . En el mxi mo niv el
de s egu r i dad Excel des habi li ta to das las macr o s y
no te av is a qu e lo ha hecho .
En Excel 2003 tambin hay cu atr o niv eles de
s egu r i dad. En el ms bajo ( no r eco mendado )
Excel habilita to das las macr o s . en el Medio te
pr egu nta s i des eas habilitar o no las macr o s ,
en el Alto s ehabilitan s o lamente las macr o s de
s egu r i dad cer ti fi cada, y en el niv el Mu y alto s o la-
mente s e pu eden ejecu tar macr o s ins taladas en
u bicacio nes deco nfi anza. En Excel XP y las v er -
s i o nes anter io r es , hay s o lamente tr es niv eles de
s egu r i dad: Bajo . Medio y Alto .
Ini ci o
Vi s u al Macr o s
Bas ic
622
~A
1 No mbre
2 Amo nio Pe
3 C ar lo s Gar
4 Migu el Ru i:
Ins er tar Di s eo depgina
"""I Gr abar macr o
jj|Us ar r efer encias r elativ as "^
Ins ertar
J^Segu ndad demacr o s
C digo w
Segu ndad demacr o s
Per s o naliza la co nfigu r acin de s egu r
la macr o .
r> Presio ne Fl par a o btener ay u da.
T . Pas eo de la Reina 101
Fr mu las
Mo do
Dis eo 3
dad de
"OO
Eje
,
3
3
r ezca efecti v amente debes pu ls ar en las o pci o nes
Herramientas, Opciones y , en La fi cha Editor,
mar car las o pci o nes Lista de miembros autom-
tica e Informacin rpida automtica.
3.6 B arra de progreso
Sub
Do
Positivo ()
Edito r j Fo r mato del edito r j General |Aco plar f
Opci o nes del cdigo
I? C o Qpr o bacin des intaxis au to mtica
? Requ er i r eda ao n de var iables
1* Sano jia au to mtica
fincho de tabu lacin!
:* Info r macin rpida au to mtica
Opcindela ventana
fi? Mo dificar texto mediante "ar r as tr ar y co lo car "
v Vi s ta co mpleta predeterminada del mo du lo
f? Ss par ado r depr o cecbwento s
Es te es u n tr u co mu y i nter es ante. C u ando u na
macr o tr abaja du r ante mu cho ti empo , co nv i e-
ne inclu ir en algn s itio algn i ndi cado r del
av ance de la macr o . Es -
peci almente s i u s as te la
i ns tr u cci n Application.
ScreenUpdating = F alse
qu e "co ngela" la panta-
lla y hace qu e par ezca
qu e el s i s tema dej de
fu nci o nar . Pu edes inclu ir
u n i ndi cado r de es te
tipo en la bar r a de es tado . Es te tr u co s i r v e
cu ando ti enes algu na fo r ma
de calcu lar el av ance de la
macr o . Po r ejemplo , s i en
la macr o hay u n ci clo Fo r
i = 1 To 1000, el co ci ente
i/1000 da u na medi da del
po r centaje de av ance de
la macr o . En es te cas o ,
i nclu y e en el cdi go , antes
del Next qu e ci er r a el ci clo ,
la i ns tr u cci n Application.
StatusB ar = F ormato /
1000,-0.00%'). Par a r es ti -
tu ir la bar r a de es tado es -
tndar debes inclu ir al fi nal
de la macr o la i ns tr u cci n
Pers o nal
Application.StatusB ar F alse. Es te i ndi cado r
de av ance fu nci o na au nqu e hay as des acti v ado
el r efr es co de pantalla.
3.7Validar respuestas
C o n La ins tr u ccin Inpu tBo x haces qu e u na macr o
te pida u n dato . Si es i mpo r tante qu e La r es pu es -
ta s ea de u n tipo adecu ado , pu edes v ali dar es a
r es pu es ta. Po r ejemplo :
Su gerencias de dato s au to mticas
valor = Val(InputBox("Indiijue un nmero mayor que cero"))
Loop Dntil valor > O
MsgBoxfSu nmero es el " & valor)
End Sub
Es ta macr o pide u n v alo r nu mr i co po s i ti v o . Es
decir , may o r qu e cer o . El ci clo co nti na has ta
qu e el v alo r i ngr es ado cu mpla co n la co ndi -
ci n. Y, de pas o , v er s qu e ti enes o tr o ejemplo
del ci clo Until.
Microsoft *cel
Indique un nmero mayor que cero
Aho r a ha Llegado tu tu r no . C o n es te cu r s o de
pr o gr amaci n de macr o s en Excel y a ti enes lo s
elemento s s u fi ci entes par a cr ear tu s pr o pi as
macr o s y fu nci o nes . Mu cha s u er te!
137

Вам также может понравиться