Sunteți pe pagina 1din 73

Edicin N1 Lugar de Edicin INACAP Capacitacin Revisin N0 Fecha de Revisin JULIO DE 2007 INACAP SEDE LA SE ENA

Pgina 2 de 35

REA ADMINISTRACIN Y NEGOCIOS

N
CONTENIDOS

E
PGINA

CAP T!"O I INTROD!CCIN


COORDENADAS RELATIVAS COORDENADAS ABSOLUTAS

0#

CAP T!"O II F!NCIONES


FUNCIONES LGICAS FUNCIONES SI LGICAS FUNCIONES LGICAS ANIDADAS FORMATO CONDICIONAL FUNCIONES ESTADSTICAS FUNCIN BUSCARV Y BUSCARH

0$

CAP T!"O III TA%"AS DINMICAS


ASISTENTE PARA CREAR TABLAS DINMICAS ACTUALIZAR TABLAS DINMICAS ELIMINAR TABLAS DINMICAS

1$

CAP T!"O I& MACROS


EJECUCUIN DE UNA MACRO OBJETOS UTILIDADES PROGRAMACIN DE UNA MACRO

#'

Pgina 2 de 35

CAP!"ULO I # IN"

UDUCCI$N

Las hojas de clculo de Microsoft Excel permiten una gran cantidad de funciones divididas en categoras, quiere decir que permite hacer clculos financieros, manipulamiento de fechas y horas, realizar operaciones matemticas y trigonomtricas, como tam in hacer estadsticas, realizar !squedas de datos en las hojas, manejar ases de datos y por !ltimo tratamiento de textos, funciones l"gicas y o tener informaci"n de las celdas#

COORDENADAS RELATIVAS Y ABSOLUTAS


Direccin Relativa $ %orresponde a las coordenadas que se indican en f"rmulas&funciones y aparece solo la columna y fila '()*# (l copiar esta celda a un rango ella varia con respecto a la fila '(+,(-,(.,(/,etc* Direccin Absoluta $ %orresponde a las coordenadas que se indican en f"rmulas&funciones y aparecen indicadas la columna y fila entre sm olos 0 '0(0)* Coordenadas Relativas 1on coordenadas que en una f"rmula se utiliza para ser copiada, sta va variando su fila de ) en )# Ej#$ (/ %oordenada con direcci"n relativa#

%opia con direcci"n relativa#

Pgina 2 de 35

Coordenadas Absolutas %orresponden a aquellas en que las coordenadas al ser utilizada en una f"rmula no varia, queda fila al ser copiada, sta coordenada para que no vare de e tener la siguiente forma$ 0( 0/

Nota! una forma fcil de dejar la coordenada en direcci"n a soluta, es una vez digitada, presionar la tecla 2.#

CAP!"ULO II # %UNCIONES
Las funciones de la planilla Excel son herramientas especiales que permiten efectuar clculos complejos en forma rpida y sencilla# Las funciones se ingresan en una celda y es en la misma en donde entrega el resultado# Excel dispone de diversas categoras de funciones las que pueden ser invocadas desde la 3arra de 4erramientas ajo el icono fx# El formato de toda funci"n de Excel es#$ El sm olo 5 $ 6ermite interpretar el ingreso como funci"n y no como texto# El nom re de la funci"n $ %orresponde a la funci"n que se desea realizar#

Los argumentos $ 1on opcionales y depende de la funci"n que se est utilizando, stos pueden ir separados por un 7,8 o por 7$8 dependiendo de la funci"n# Los argumentos pueden ser n!meros, referencias de celdas, texto, condiciones, nom re de celdas, etc#

"UNCI#N L#$ICA

Pgina 2 de 35

%onsiste en utilizar condiciones l"gicas en una planilla, utilizando la funci"n l"gica llamada 19# Existen los llamados 19 simples que permiten comparar, utilizando condiciones l"gicas# 6ara estas funciones se utilizan los llamados operadores l"gicos que son los siguientes#$

O%ERACI#N Mayor que Menor que Mayor o igual que Menor o igual que <istinto a 9gual a

O%ERADOR : ; :5 ;5 ;: 5

La condici"n l"gica corresponde a una pregunta l"gica, que al ser evaluada toma + resultados posi les que son, =E><(<E>? o 2(L1?# 1i la condici"n l"gica es =E><(<E>?, se realiza el argumento @, en caso contrario, es decir si es 2(L1?, se realiza el argumento A# Los argumentos @ e A pueden ser valores, f"rmulas, funciones o texto los que de en aparecer entre comillas# Ej#$

En la celda E+, ira la siguiente funci"n l"gica &Si'D()*+++++,D(-.+/,D(-0/1 Es decir en la columna E, hay un impuesto a co rar a

todos los productos que tienen un valor mayor a BCC#CCC# el impuesto es de un )CD si es so re 0BCC#CCC, en caso contrario es de /D#

"uncin Si

Pgina 2 de 35

2unci"n l"gica que devuelve un valor determinado si la condici"n que ponemos es verdadera o devuelve otro valor si la condici"n es falsa, la estructura de los parmetros es diferente al de la funci"n 1uma, para empezar ejecutemos Insertar -> Funcin, e el cuadro de Categora seleccionar Lgicas y en el cuadro de la derecha seleccionar la funci"n SI, aparecer una ventana parecida a la siguiente$

En la primera celda se de e poner la condici"n que se compone de mnimo dos valores lo cuales se comparan mediante signos de igualaci"n, mayor que, menor que, etc# 6ara empezar se crear una condici"n de solo dos valores, los valores pueden ser explcitamente n!meros o texto, pero tam in pueden ser celdas o el resultado de otra funci"n, la condici"n que aparece en la ventana anterior significa E1i el valor de 3)) es mayor que CE, a continuaci"n se de e introducir el valor que se quiera que aparezca cuando esta condici"n sea verdadera, y en la tercera celda se pondr el valor que aparecer cuando la condici"n sea falsa# Este ejemplo se puede ver en el archivo de ejemplos que ajaste anteriormente en la hoja llamada E19E #

"unciones anidadas

Pgina 2 de 35

Una funcin anidada quiere decir que contiene otra funcin dentro de s misma, tambin utiliza cuando se tienen tres o mas alternativas de proceso.
19FG(@91 &SI'condici"n , instrucci"n ) , SI'condici"n , instrucci"n + ,SI' condici"n , instrucci"n - ,
2 = 2 v

111

Condicionalidad con uso de conectores 1e utiliza cuando se requiere definir procesos alternativos ajo la verdad o falsedad de dos o mas condiciones# %?FE%G?>E1 19FG(@91

519'Y'condicin 1;condicin 21, operacin 1;operacin 2*


A ? A l"gico H l"gico

519'O'condicin 1;condicin 21,operacin 1;operacin 2*

Gam in se puede utilizar otras funciones anidadas, dentro de la misma condici"n, como por ejemplo$

Pgina 2 de 35

En la ventana anterior se tiene dos funciones que intervienen, la funci"n 19 y 6>?ME<9?, tiene como o jetivo informar con un mensaje al usuario el promedio de los valores de un conjunto de celdas de la hoja 1uma# 6ara hacer esto primero de e ir a Insertar > Funcin y luego seleccionar la funci"n 19, de e de aparecer una ventana como la anterior pero sin nada en las celdas, despus en la celda de Prue a!lgica clic para luego insertar all la funci"n 6>?ME<9?, para ello seleccionamos se despliega la lista que aparece a la izquierda de la arra de f"rmulas y seleccionamos la funci"n 6>?ME<9?#

Luego de esto aparecer la ventana correspondiente a la funci"n 6>?ME<9?, donde se tiene que indicar a cuales celdas se le calcular el promedio, en este caso ser a el rango de (I a <I de la hoja 1uma, para hacer esto se puede digitar manualmente lo que sale en la celda "u#ero1 o hacer clic en el ot"n que aparece a la derecha de sta y a continuaci"n ir a la hoja Su#a y seleccionar dichas celdas y por !ltimo presionar $"%$&# 4asta aqu la funci"n 6>?ME<9? estar concluida, ahora solo se presiona el funci"n 19# ot"n aceptar para regresar a la

Pgina 2 de 35

(hora muestra una ventana parecida a la siguiente, con la funci"n 6>?ME<9? dentro de la celda Prue a!lgica de la funci"n SI# 6ero para que la condici"n est completa hay que comparar el valor que devolver la funci"n 6>?ME<9? con otro valor en este caso .CC, quiere decir que Esi el valor que devuelve la funci"n 6>?ME<9? es mayor o igual que .CCE#

6or !ltimo falta escri ir los valores que la funci"n 19 devolver en caso de que la condici"n sea 2(L1( o =E><(<E>(# 4asta aqu todo quedar como la ventana que muestra al principio# Esto explica la forma de anidar funci"n pero no precisamente se tiene que limitar a solo dos

Pgina 2 de 35

funciones pueden ser ms, adems tam in se pueden agregar ms funciones en las celdas 'alor!si!verdadero y 'alor!si!falso(

"OR2ATO CONDICIONAL El formato condicional permite determinar el formato de una celda en funci"n de su contenido# 6or ejemplo, se puede presentar la informaci"n so re las ventas de este aJo en azul y negritas si son ms altas que las del aJo pasado y en rojo y cursiva si son ms ajas# 6ara aplicar un formato condicional se de e$ )# 1eleccionar la celda o rango a la que se aplicar el formato# ( Elegir el comando "or3ato Condicional del men! "OR2ATO# selecci"n# 4 4acer clic en el ot"n "or3ato para configurar las caractersticas que tendrn las celdas que cumplan la condici"n# F?G($ 1e pueden -# Esta lecer dentro del cuadro de dilogo las condiciones que definirn el criterio de

esta lecer hasta tres condiciones# El formato condicional solo funciona si se introducen los datos manualmente o si son el resultado de una f"rmula# Fo funcionan si se copia un dato a esa celda#

Pgina 2 de 35

"UNCIONES ESTAD5STICAS )* 5%?FG(>'rango* $ 6ermite conta ilizar la cantidad de celdas numricas especificadas en el argumento# 1ntaxis$ 5%?FG(>'>ango* 5%?FG(>('>ango* El primero cuenta las veces que aparece un elemento numrico en una lista y el segundo elementos de texto# +* 5%?FG(>('rango* $ Entrega la cantidad de celdas no vacas en un rango# -* 56>?ME<9?'rango* $ <etermina la media aritmtica de un conjunto de celdas numricas# 1ntaxis$ 56>?ME<9?'F!mero),F!mero+,###* 2unci"n que devolver la media aritmtica de los n!meros o el rango encerrado entre parntesis# Ejemplo$ 56>?ME<9?')+,)+,)-* devolver )+,----56>?ME<9?'()$<)-* devolver el promedio del rango ()$<).* 5M(@'rango* $ 6ermite o tener el valor ms alto de un conjunto de celdas numricas# 1ntaxis$ 5M(@'F!meros* n!meros# Ejemplo$ 5M9F'F!meros*

Estas funciones devuelven los valores mximo y mnimo respectivamente de una lista de

Pgina 2 de 35

/* 5M9F'rango* $ 6ermite o tener el valor ms ajo de un conjunto de celdas numricas#

"UNCION BUSCARV ' 1 Examina la columna extrema izquierda de una matriz en devuelve el valor en la celda indicada# 1u sintaxis es$ uscarv 'valorK uscado, matrizK uscarKen, indicadorKcolumna, ordenado* <onde 7valorK uscado8 es el valor a uscar en la primera columna de la matriz# 6uede ser un valor, una referencia o una cadena de texto entre comillas#7matrizK uscarKen8 es la matriz de informaci"n donde se uscan los datos# La !squeda siempre es con ase a la primera columna de esta matriz#7indicadorKcolumna8 es el n!mero de columna en 7matrizK uscarKen8 desde la cual de er devolver el valor coincidente# 1i 7indicadorKcolumna8 es ), devolver el valor de la primera columna de 7matrizK uscarKen8, si es + devolver el valor de la segunda columna y as sucesivamente# El argumento 7ordenado8 es opcional y se refiere a lo siguiente$ 1i est puesto como 2(L1?, significa que la !squeda en la 7matrizK uscarKen8 va a usca de un valor especfico y

efectuarse con valores coincidentes 'iguales* 6or lo anterior, puede estar alterada la primera columna de la matriz, pero el valor coincidente de e de existir, de lo contrario marcar un error# 1i no est puesto el argumento 7opcional8 o si est puesto como =E><(<E>? ' %&)$*, significa que la !squeda se va a efectuar por rangos, por lo que de e estar ordenada la primera columna de 7matrizK uscarKen8#

Pgina 2 de 35

Fota$ 1i uscarv ' * no encuentra el valor uscado, utilizar el mayor valor que sea menor que 7valorK uscado8

Ejemplo$ 1uponga que se tiene una lista larga de artculos$ ? serva que en la parte superior hemos preparado tres casillas de colorines# Estas celdas servirn para este prop"sito# En la celda %+ se colocar la f"rmula$ &BUSCARV'C.,A6!C.0,(1 %on esto se escri ir un c"digo de artculo en la celda c)'amarilla* y Excel har que aparezca automticamente la descripci"n y la cantidad disponi le en las dos celdas inferiores# Este tipo de hojas va perfecto para hacer una consulta a un listado# La f"rmula mirar lo que hay en la celda c) y lo uscar en el rango ()L$%)/# Mna vez que lo encuentre, 'lo encontrar en la primera columna*, mostrar lo que hay en las dos columnas a su derecha 'contndose ella*, es decir, la descripci"n del producto#

Nota! 1i la lista de artculos, est escrita en otra hoja de clculo, llamada por ejemplo 4oja), entonces la f"rmula sera la siguiente$

Pgina 2 de 35

&BUSCARV'C.,7o8a.9A6!C.0,(1 La funci"n BUSCAR7'Celda,Ran:o,"ila1, es similar a la anterior, pero con la diferencia de que usca el valor de una celda en un rango de celdas de una fila, es decir, de forma horizontal#

CAP!"ULO III # "A&LAS DIN'(ICAS


Es una planilla que muestra exactamente la informaci"n que se le puso# Fi ms ni menos, y muestra la planilla de una forma ordenada donde se pueden consultar y analizar datos o tenidos de una 3ase de <atos, realizada en Excel# La planilla de la siguiente 2igura es un listado de pagos realizados a distintos proveedores, en diferentes meses e imputa les a distintas o ras#

$sta lista de gastos puede anali*arse desde diferentes puntos de vista#

Pgina 2 de 35

6or lo que puede verse, la informaci"n fue cargada en la planilla de forma completamente desordenada# 1era interesante sa er cuanto se le pag" a cada proveedor, o por cada o ra, o que monto se le pag" a un determinado proveedor en concepto de tra ajos realizados en una o ra especfica# Lo que se est uscando es, por ejemplo, una ta la como la de la 2igura que se muestra a continuaci"n#

$n esta ta la se puede organi*ar la infor#acin de la planilla de la "i:ura Anterior de #odo +ue resulta #,s -til( En cierta forma las dos planillas contienen la misma informaci"n# 6ero la segunda esta organizada en forma tal que resulta ms !til# La ta la de la "i:ura anterior es lo que se llama una ta la dinmica, la cual se o tiene con ayuda de un asistente#

Crear una tabla din;3ica < El Asistente La creaci"n de una ta la dinmica se hace con la ayuda de un asistente, y comprende varias etapas# 6rimero hay que llamar al asistente $ %olocar el cursor en cualquier celda de la ta la a analizar 'la de la %ri3era "i:ura* 1e a re la opci"n Datos=In>or3e de tablas ? :r;>icos din;3icos # (parece el cuadro de la "i:ura si:uiente#

Pgina 2 de 35

$ste cuadro de di,logo es el pri#er paso del .sistente para crear una ta la din,#ica# Este cuadro de dilogo pregunta de donde saldrn los datos que se desea analizar, se marca Lista o ase de datos de Microsoft Excel y se da un clic en Si:uiente #

$l segundo paso del asistente( .+u se de e indicar el rango donde est, la lista a anali*ar# En el siguiente cuadro de dilogo el asistente pregunta por el rango ocupado por los datos a analizar# Formalmente, Excel identifica el rango en forma automtica# En cualquier caso $

Pgina 2 de 35

1e selecciona, arrastrando el mouse, el rango de la ta la# <e e incluir la fila de ttulos, 1e hace clic en Si:uiente#

El paso siguiente es indicar la estructura de la ta la que se desea# 1e hace de la siguiente forma$ (l dar el clic en Si:uiente en el paso anterior aparece el cuadro de la "i:ura que se muestra a continuaci"n $

$n este cuadro se /ar#a0 la ta la u icando cada ca#po en el lugar +ue se desea( )# +# -# .# 1e lleva el pequeJo rectngulo que dice Obra a donde dice Colu3na# 1e lleva el pequeJo rectngulo que dice Conce@to a donde dice "ila# 1e lleva el pequeJo rectngulo que dice I3@orte a donde dice Datos# (l final el cuadro de e quedar como se muestra en la "i:ura si:uiente#

Pgina 2 de 35

/#

1e da un clic en Si:uiente#

Ca3@os de >ila muestra los datos verticalmente, un elemento por fila# Ca3@os de colu3na muestra los datos horizontalmente, un elemento en cada columna# Ca3@os de @;:ina muestra los datos como pginas, agrupando o separando los elementos de los datos que coloque aqu# Ele3entos de datos es donde se muestran numricos# y resumen los datos

>ecuerde que el asistente le mostrar una nueva rea de hoja de clculo que contiene todo lo necesario para diseJar una vista de ta la dinmica con sus datos$ la lista de ca3@os de tabla din;3ica de la que arrastrar los campos y un rea de diseJo# 1u tra ajo consiste en arrastrar los campos seleccionados en la lista hasta las cuatro opciones disponi les en el rea de diseJo, las reas de$ fila, columna, datos o pgina# (l dar el clic en 1iguiente, aparece el cuadro que se muestra a continuaci"n$

Pgina 2 de 35

$l .sistente pregunta donde se desea u icar la ta la din,#ica, si en una 1o2a nueva o en la #is#a 1o2a( $n este caso le indica#os una 1o2a de c,lculo nueva# La Ga la dinmica aparecer en una hoja de clculo nueva, como se muestra en la "i:ura si:uiente#

La ta la din,#ica ter#inada, ta# i3n aparece ta# i3n una arra de 1erra#ientas especial# Esta ta la se puede mejorar dndole un formato ms adecuado a los datos, como se muestra en la 2igura que se muestra a continuaci"n#

Corresponde a los datos de la Figura anterior, slo +ue se le ca# i el for#ato para per#itir verlos #e2or 4so re todo si se van a presentar a la 5erencia6# %omo era de esperar, la ta la de la 2igura de ms arri a muestra informaci"n que no se poda visualizar con los datos de la lista original# 6or ejemplo, ahora nos podemos dar cuenta que no hu o pagos al electricista por la o ra de 1an 9gnacio )C.), tam in se dispone de los

Pgina 2 de 35

su totales por concepto y por o ra# (dems, se puede o servar que el mayor gasto corresponde al electricista y que la o ra que produjo un mayor gasto es la de 3rasil NLB# ActualiAar la tabla %ontra lo que sugiere su nom re, la ta la de la 2igura anterior no es verdaderamente dinmica, en el sentido de que no se actualiza automticamente cuando se cam ia alg!n dato en la lista original# 6ero se puede hacer de la siguiente forma $ 1e cam ia alg!n dato en la lista original 'la de la primera figura*# 1e da un clic en el ot"n actualizar datos, en la arra de herramientas de que apareci" con la ta la 2igura de ms arri a# El ot"n ActualiAar datos es el que tiene el signo de exclamaci"n en color rojo# 1i la ta la de herramientas no existe se puede o tener con Ver=Barras de 7erra3ientas=Tablas Din;3icas#

)n clic en el otn actuali*ar datos 4el del signo de e7cla#acin en color ro2o6 actuali*a la ta la din,#ica luego de #odificar alg-n dato en la lista original# El ot"n de la 2igura anterior, hace lo mismo que la opci"n Datos=ActualiAar datos del men! de Excel# Ganto el ot"n como la opci"n aparecen desactivados si no est el cursor colocado so re la ta la# Ca3biar la o@eracin

Pgina 2 de 35

La ta la dinmica que se o tuvo totaliza los importes pagados en cada concepto y o ra# Es decir que usa la operaci"n de suma# 6odra ocurrir que nos interesara sa er cuantos pagos se hicieron, independientemente de sus valores# %omo en la ta la de la 2igura siguiente#

$sta ta la din,#ica indica cuantos pagos se 1icieron por cada concepto 8 o ra, independiente#ente de los i#portes# Esta ta la puede hacerse a partir de la anterior, de la siguiente forma$ 1e coloca el cursor so re la ta la dinmica inicial# 1e hace un clic en el ot"n %ampo de ta la 'es el ot"n que tiene una letra i en un crculo y es el tercero en la fila superior* dentro de la arra de herramientas Ga la dinmica# (parece en el cuadro de la 2igura anterior# Entonces aparece el cuadro de la 2igura que se muestra ms a ajo#

$l otn para ca# iar la operacin de su#ari*acin en la ta la din,#ica(

Pgina 2 de 35

$ste cuadro ofrece diversas operaciones de su#ari*acin 4C,lculos6 para la ta la din,#ica# 1e selecciona la opci"n Contar nB3eros# 1e hace clic en Ace@tar#

A@licar >iltros a la tabla din;3ica Godas las ta las o tenidas hasta el momento muestran toda la informaci"n contenida en la lista original# En cam io la ta la de 2igura siguiente muestra solamente la informaci"n del ru ro 6lomera# Es como si se hu iera filtrado la primera ta la dinmica#

$sta ta la din,#ica #uestra sola#ente la infor#acin del Concepto Plo#era( 1e coloca el mouse so re el campo %oncepto y se da un clic con el derecho del mouse, aparece un men! donde se elige Ca3@o ot"n

Pgina 2 de 35

Entonces aparece la lista de conceptos, aparte de otros elementos, como se muestra en la 2igura siguiente#

$ste cuadro de dialogo per#ite filtrar los conceptos +ue no se desean #arc,ndolos en /9cultar $le#entos0#

Pgina 2 de 35

En el cuadro de dilogo de la 2igura anterior se marcan los elementos que no se desea que aparezcan, y se da un clic en Ace@tar

(hora la ta la de er mostrar solamente la informaci"n especificada, como en la 2igura de ms arri a# >E%M6E>(> L( 9F2?>M(%9?F 6ara recuperar toda la informaci"n, simplemente se vuelve a descolgar los meses como en la "i:ura anterior y se marca la opci"n Todas# Eli3inar una tabla din;3ica En principio, una ta la dinmica se orra como cualquier otra informaci"n de la planilla $ se selecciona y se oprime la tecla Su@ri3ir 'Delete1# 6ero hay que tener en cuenta una restricci"n$ se tiene que eliminar toda la ta la# 1i se pretende orrar s"lo algunas celdas, puede aparecer un cuadro como el de la figura siguiente#

"o se puede orrar parte de una ta la din,#ica( Si se desea eli#inarla 1a8 +ue 1acerlo en su totalidad( Crear un :r;>ico a @artir de una tabla din;3ica 6ara crear un grfico a partir de una ta la dinmica, se deja activa la hoja en que est la ta la dinmica y a continuaci"n se da un clic en el ot"n de grfico de la arra de herramientas de ta las dinmicas, de inmediato aparece un grfico#

Pgina 2 de 35

Mn grfico dinmico, es la representaci"n de los datos seleccionados de una planilla de clculo, incluyendo las ca eceras de filas y columnas, donde se puede seleccionar por que tipo desee graficar# %asos @ara realiAar un :r;>ico din;3ico! )O 9r a la opci"n Datos=In>or3e de tablas ? :r;>icos din;3icos +O (parecer la siguiente pantalla$

-O Elegir la opci"n grfico dinmico y clicar .O (parecer el rango elegido o a elegir# Mna vez que se haya dado el rango clic en

/O 1aldr la siguiente pantalla$

Pgina 2 de 35

NO 9r a la opci"n DiseCo, donde podr realizar el grfico como le acomode e ir moviendo los datos tanto filas o columnas como desee, y mostrar la siguiente pantalla$

Mna vez realizado el diseJo, clic en (ceptar LO Gendr el grfico <inmico terminado y podr ver diferentes grficos de datos en un solo grfico, tal como se muestra en la 2igura siguiente#

Pgina 2 de 35

CAP!"ULO I) # (AC

OS

Mna macro es un supercomando$ un comando que hace, a travs de una sola orden, lo que normalmente requerira de varios pasos# En otras pala ras, una macro es un programa$ una lista de instrucciones u operaciones que se ejecutan cuando el usuario da la orden adecuada, y esta compuesto por$ Ob8etosD @ro@iedades ? 3Etodos Ob8eto %uando en el mundo real nos referimos a o jeto significa que se ha la de algo ms o menos a stracto que puede ser cualquier cosa# 1i se decide concretar un poco ms podemos referirnos a o jetos coche, o jetos silla, o jetos casa, etc# En ??6, la

Pgina 2 de 35

generalizaci"n 'o definici"n* de un o jeto se llama %lase, as la clase coche seria como la representante de todos los coches del mundo, mientras que un coche en un o jeto coche seria concreto# <e momento, no definiremos las clases sino que nos

concentraremos en los o jetos, tenga en cuenta pero que cualquier o jeto est definido por una clase# %uando decimos que la clase coche representa a todos los coches del mundo significa que define como es un coche, cualquier coche# <icho de otra forma y para aproximarnos a la definici"n informtica, la clase coche define algo que tiene cuatro ruedas, un motor, un chasis,### entonces, cualquier o jeto real de cuatro >uedas, un motor, un chasis,### es un o jeto de la clase coche# %ro@iedades %ualquier o jeto tiene caractersticas o propiedades como p or ejemplo el color, la forma, peso, medidas, etc# Estas propiedades se definen en la clase y luego se particularizan en cada o jeto# (s, en la clase coche se podran definir las propiedades %olor, (ncho y Largo , luego al definir un o jeto concreto como coche ya se particularizaran estas propiedades a, por ejemplo, %olor 5 >ojo, (ncho 5 + metros y Largo 5 -,/ metros# 2Etodos La mayora de o jetos tienen comportamientos o realizan acciones, por ejemplo, una acci"n evidente de un o jeto coche es el de moverse o lo que es lo mismo, trasladarse de un punto inicial a un punto final# %ualquier proceso que implica una acci"n o pauta de comportamiento por parte de un o jeto se define en su clase para que luego pueda manifestarse en cualquiera de sus o jetos# (s, en la clase coche se definiran en el mtodo mover todos los procesos necesarios para llevarlo a ca o 'los procesos para desplazar de un punto inicial a un punto final*, luego cada o jeto de la clase coche simplemente tendra que invocar este mtodo p

Pgina 2 de 35

ara trasladarse de un punto inicial a un punto final, cualesquiera que fueran esos puntos# Mn o jeto >ange est definido por una clase donde se definen sus

propiedades,

recordemos

que

una propiedad es una caracterstica, modifica le o no,

de un o jeto# Entre las propiedades de un o jeto >ange estn =alue , que contiene el valor de la casilla , %olumn y >oP que contienen respectivamente la fila y la columna de la casilla, 2ont que contiene la fuente de los caracteres que muestra la casilla, etc# >ange , como o jeto, tam in tiene mtodos, recordemos que los mtodos sirven llevar a ca o una acci"n so re un o jeto# 6or ejemplo el mtodo (ctivate, hace activa una celda determinada, %lear, orra el contenido de una celda o rango de celdas, %opy, copia el contenido de la celda o rango de celdas en el portapapeles,### Con8untos Mn conjunto es una colecci"n de o jetos del mismo tipo, para los que conozcan alg!n lenguaje de programaci"n es un array de o jetos# 6or ejemplo, dentro de un li ro de tra ajo puede existir ms de una hoja 'QorR1heet*, todas las hojas de un li ro de tra ajo forman un conjunto, el conjunto QorR1heets# %ada elemento individual de un conjunto se referencia por un ndice, de esta forma, la primera, segunda y tercera hoja de un li ro de tra ajo, se referenciarn por QorR1heets')*, QorR1heets'+* y QorR1heets'-*# Ob8etos de Ob8etos Es muy ha itual que una propiedad de un o jeto sea otro o jeto# 1iguiendo con el coche, una de las propiedades del coche es el motor, y el motor es un o jeto con propiedades como cu icaje, ca allos, n!mero de vlvulas, etc# y mtodos, como aumentarKrevoluciones, cogerKcom usti le, moverKpistones, etc# En Excel, el o jeto QorR1heets tiene la propiedad >ange que es un o jeto,

>ange tiene la propiedad 2ont que es tam in un o jeto y

2ont tiene la propiedad

Pgina 2 de 35

3old 'negrita*# 6ropiedades propiedades de

Genga un que

esto o jeto

muy que

presente sern por

ya

que utilizaremos la propiedad

frecuentemente >ange de un

tam in

? jetos# <icho de otra forma, hay

devuelven

o jetos,

ejemplo,

o jeto QorR1heet devuelve un o jeto de tipo >ange# %ro:ra3acin Orientada a Ob8etos o %ro:ra3acin Basada en Ob8etos# 4ay una sutil diferencia entre las definiciones del ttulo# 6rogramaci"n orientada a ? jetos, significa que el o jetos utilizar a partir de ya programador ellas# definidos Lo que la tra aja haremos con o jetos por fa ricados el momento, por l mismo, es decir, el programador es quien implementa las clases para luego crear nosotros, Excel ser o jetos por aplicaci"n 'QorR1heets, >ange,###*

sin implementar ni nguno de nuevo, por lo que en nuestro caso es ms correcto ha lar de programaci"n asada en o jetos# ? serve que esta es una de las grandes ventajas de la ??6, utilizar o jetos definidos por alguien sin tener que conocer nada so re su implementaci"n, s"lo de emos conocer sus propiedades y mtodos y utilizarlos de forma correcta# 1e hace de la siguiente forma $ 1e u ica en la celda donde se desea aparezca el nom re# 6or ejemplo $ ()# 1e toma las opciones 7erra3ientas=2acros=$rabar nueva 3acro# (parece el cuadro que se muestra a continuaci"n# <onde dice nom re de la macro escri a 7suKnom re8 o cualquier otro que le parezca ms adecuado, sin espacios en lanco ni caracteres especiales# < un clicR en Ace@tar#

Pgina 2 de 35

Lo que se aca a de hacer es echar a andar el gra ador de la macro, desde aFora en adelanteD Fasta Gue se o@ri3a el botn HDetener $rabacinI de la barra de Ferra3ientas de la 2acroD todo lo Gue se Fa:a se :raba en la 3acro # ( continuaci"n se muestra la arra de herramientas de la macro$

La arra de herramientas de la macro tiene dos otones, el primero de ellos de izquierda a derecha 'el que tiene el cuadro en azul* es para detener la ejecuci"n de la macro, el segundo es para darle a la macro una referencia relativa, es decir que se ejecute a partir de la celda en donde esta posicionado el cursor en el momento de la ejecuci"n# (hora de e dar un clic el ot"n de referencia relativa, una vez hecho esto contin!e con la construcci"n de la macro# Mientras usted lee esto el gra ador de la macro est funcionando, por lo tanto$ Escri a su nom re, < enter, (pague el gra ador, dando un clicR en el ot"n 7<etener Sra aci"n8 de la arra de herramientas de la macro#

Pgina 2 de 35

1i se hizo todo ien, ya est lista la macro# 6ara ejecutarla se repite el procedimiento anterior$ se coloca en cualquier celda y 1eleccione$ 4erramientas&Macro&Macros y se desplegar el cuadro de dilogo que se muestra a continuaci"n, ya mostrado donde usted selecciona la macro 7suKnom re8 y, despus, Ejecutar# Entonces aparece su nom re a partir de la celda donde se coloc" el cursor#

Un e8e3@lo 3;s interesante Aa se ha visto el los diversos ejemplos el procedimiento general para crear y ejecutar una macro, los pasos son los siguientes$ )* Echar a andar el gra ador de la macro, lo que implica poner un nom re a la macro y colocar una referencia a reviada 'si se desea*, +* ?primir el ot"n de Re>erencias Relativas, si se necesita para esa macro, -* 4acer las operaciones que se incluirn en la macro, .* (pagar el gra ador de la macro, y

/* Ejecutar la macro para pro arla)#


6or alguna raz"n a quienes hicieron excel no tomaron en cuenta hacer un comando que para nosotros es necesario, en la figura siguiente queremos que en la celda / aparezca s"lo el valor y el usuario final no vea la f"rmula que gener" ese valor, es decir, queremos dejar en la planilla s"lo el resultado de la f"rmula#

<e e tener presente que no es necesario guardar la macro, ya que cuando se guarda el li ro excel, auto3;tica3ente se :uardan las 3acros 8unto con el libro #

Pgina 2 de 35

6ara construir esta macro damos los pasos que se seJalan ms adelante, pero antes colocamos los valores, en la celda 3+ el n!mero de cuotas del prstamo, en la celda 3- el monto del prstamo y en la celda 3. la tasa de inters con el signo de porcentaje para dividirla por )CC$ )* 1e a re la opci"n$ 7erra3ientas=2acro=$rabar nueva 3acro# A aparece el cuadro que ya se ha a visto# +* <onde dice no3bre de la 3acro escri a el nom re que usted desee# -* <onde dice 2Etodo abreviado, si lo desea, coloque SFi>t J T# .* 1e da un clic en Ace@tar# %on este se inicia el gra ador de la macro# /* 1i lo desea puede dar un clic en el ot"n Re>erencias Relativas# N* Lleve el cursor a la celda %/# L* ( ra Insertar="uncin="inancieras=%a:o y aparece el siguiente cuadro de dilogo$

Pgina 2 de 35

B* En Tasa se coloca 3.D, equivale a la tasa de inters dividido por )CC, I* En N@er se coloca 3+, equivale al plazo o n!mero de perodos, )C* En VA se coloca 3-, equivale al monto del prstamo# ))* (l dar un clic en Ace@tar aparece en %/ la cuota del prstamo, como se muestra a continuaci"n$

Pgina 2 de 35

1eg!n se puede o servar en la ceda 3/ aparece el resultado, que es el valor de la cuota, y arri a aparece la f"rmula, que es lo que se quiere evitar# )+* 1e coloca el cursor en 3/, )-* 1e a re EdicinD Co@iar, ).* 1iempre con el cursor en 3/, se a re Edicin=%e:ado Es@ecial, y aparece el siguiente cuadro de dilogo,

)/* 1e da un clic en %e:ar=ValoresD tal como se muestra en el ejemplo, y luego en Ace@tar,

)N* ( continuaci"n arregla el contenido de la celda 3/, dejndola con los decimales que estime
convenientes, en este ejemplo se deja sin decimales+#
+

El manejo de los formato y n!mero de decimales se vio acuciosamente en$ Manual de Excel para Estudiantes de 9ngeniera, del mismo autor y pu licado en la pgina Pe $ PPP#laPe delprogramador#com

Pgina 2 de 35

)L* Luego se oprime la tecla ESC para vaciar el @orta@a@eles# Es por prolijidad y para que no quede la f"rmula en dicho @orta@a@eles# 1i se hizo todo correctamente, la hoja excel de e quedar de la siguiente forma$

A ya no aparece la f"rmula que se us"# )I* 6ara terminar se apaga el gra ador# E8ecucin de una 3acro 6ara ejecutar una macro se hace de la siguiente forma$ )* 1e a re la opci"n 7erra3ientas=2acros=2acro# (parece el cuadro de dilogo que muestra la lista de macros disponi les#

Pgina 2 de 35

En el cuadro de dilogo de ms arri a pueden verse una macro en este li ro de excel, ella es$ 6ago, entonces$ +* 1e hace un clic so re la macro que se desea ejecutar, y -* 1e da un clic en E8ecutar# La segunda forma de ejecutar una macro es adicionando un ot"n a la arra de herramientas# Asi:nacin de una 3acro a un botn en la barra de Ferra3ientas Las arras de herramientas son configura les, es decir, se pueden agregar otones o eliminar otones# En este caso se puede incluir un ot"n asociado a la macro 6ago# 6ara esto se hace lo siguiente$ )* 1e a re la opci"n Ver=Barras de 7erra3ientas=%ersonaliAar y se selecciona la ficha co3andos, tal como se muestra a continuaci"n#

Pgina 2 de 35

+*

En la lista de cate:orKas de la izquierda, continuaci"n$

uscamos y hacemos un clic en macros

(parecer en el lado derecho una lista de comandos disponi les, como se muestra a

Pgina 2 de 35

-*

En esta lista se toma el ot"n %ersonaliAar botn y se arrastra a donde estn las arras de herramientas# El ot"n quedar u icado donde se lo suelte#

.*

1e hace un clic en Cerrar#

El ot"n queda en la arra de herramientas tal como se muestra a continuaci"n$

%on esto se tiene un nuevo ot"n en la arra de herramientas, pero no hay ning!n comando asignado al mismo# 6ara asignarle un comando se hace lo siguiente$

Pgina 2 de 35

)* 1e hace un clic so re este

ot"n, aparece el cuadro de dilogo que se muestra a

continuaci"n, donde aparecen todas las macros asociadas a este li ro de excel 'en este caso s"lo muestra la macro 76ago8- $

+* -*

1e presiona so re la macro que se quiere asignar al ot"n# 1e da un clic en asignar#

La pr"xima vez que se de un clic en el nuevo ot"n se ejecutar la macro que se le haya asignado#

%omo se puede o servar una macro puede tener el mismo nom re que una funci"n de excel sin que haya pro lemas, ya que se ejecutan en forma diferente#

Pgina 2 de 35

Asi:nacin de una 3acro a una nueva o@cin del 2enB (s como se puede asignar una macro a un nuevo ot"n, tam in es posi le asignar una

macro a una nueva opci"n en el men!# 6or ejemplo, se va a crear una opci"n en el men! Edicin para la macro 6ago# 1e hace de la siguiente forma$ )* 1e a re la opci"n Ver=Barras de Ferra3ientas=%ersonaliAar y se selecciona la opci"n co3andos# +* -* En la lista de Cate:orKas de la izquierda se usca y se hace un clic en 2acros# En la lista de la derecha se toma la opci"n %ersonaliAar ele3ento del 3enB y se arrastra a la opci"n Edicin del Men!# 1e descolgar el su men! correspondiente# .* 1e lleva coloca la opci"n %ersonaliAar ele3ento del 3enB y se coloca donde uno lo desee, en este caso se coloc" despus de 2over o co@iar Fo8a# /* <ar un clic en cerrar#

Pgina 2 de 35

%omo en el caso del ot"n se tiene la nueva opci"n, pero no hay ninguna macro asignada a ella, para solucionar esto hacemos lo siguiente$ )* 1e a re la opci"n Edicin=%ersonaliAar ele3ento del 2enB 'es decir la nueva opci"n*, vuelve a aparecer el cuadro para asignar la macro$

Pgina 2 de 35

+* -*

1e da un clic so re la macro que queremos asignarle a la nueva opci"n# 1e da un clic en asignar#

Pgina 2 de 35

Eli3inar un botn o una o@cinD 6ara eliminar un ot"n o una opci"n se hace lo siguiente$ )* 1e elige la opci"n Ver=Barras de Ferra3ientas=%ersonaliAar, aparece el cuadro de dilogo que se muestra a continuaci"n$

Pgina 2 de 35

+*

1e toma el nuevo ot"n 'de la macro* o se descuelga la nueva opci"n, y con el mouse se le lleva al cuadro anterior# %on esto desaparece el corresponda# ot"n o la opci"n seg!n

-*

<ar un clic en Cerrar#

Editor de Visual Basic El editor de que visual sic es la aplicaci"n con los que li ros utilizaremos de para ( construir las

macros asic#

interactuaran junto

tra ajo#

continuaci"n

prepararemos un archivo en el que escri iremos las primeras instrucciones en =isual

%re@arar un arcFivo nuevo

Pgina 2 de 35

6ara entrar en el editor de =isual 3asic, ejecute los pasos siguientes# )# (ctive opci"n 4erramientas& Macro& Editor de =isual 3sic# 1e a rir la ventana

siguiente# Maximize la ventana para tra ajar ms c"modamente y procure tener activadas la ventana Explorador de proyectos y la ventana 6ropiedades '=er& Explorador de proyectos y =er& =entana propiedades*#

Insertar un nuevo 3dulo Mn m"dulo sirve para agrupar procedimientos y funciones# El procedimiento y la funci"n son entidades de programaci"n que sirven para agrupar instrucciones de c"digo que realizan una acci"n concreta# 6ara insertar un m"dulo active opci"n del men! 9nsertar& M"dulo# 1e activar una nueva ventana, si aparece demasiado pequeJa, maximcela# Insertar un @rocedi3iento Aa hemos dicho que un procedimiento es un instrucci"n 1u Fom reK6rocedimiento A termina con la instrucci"n End 1u # loque de instrucciones de c"digo que

sirven para llevar a ca o alguna tarea especfica# Mn procedimiento empieza siempre con la

Pgina 2 de 35

( continuaci"n crearemos un procedimiento para poner el texto E4olaE en la casilla ()#

Ejemplo

1u 6rimero >ange 'E()E*#=alue 5 E4olaE End 1u

? serve el c"digo# >ange 'E()E*#=alue5E4olaE En esta lnea estamos indicando que tra ajamos con un o jeto >ange# 6ara indicarle

que nos referimos a la casilla (), encerramos entre parntesis esta referencia 'ms adelante ver otra forma de referirnos a las casillas*# <e este o jeto, indicamos que queremos esta lecer un nuevo valor para la propiedad =alue, o serve que para separar el o jeto de su propiedad utilizamos la notaci"n punto# >ecuerde que el conjunto >ange es un o jeto que pende del o jeto QorR1heets, as por ejemplo el siguiente c"digo hara lo mismo que el anterior# QorR1heets ')*#>ange 'E()E*#=alue 5 E4olaE

Pgina 2 de 35

de hecho no hace lo mismo, en la primera opci"n, el texto E4olaE se pone dentro de la casilla () de la hoja activa, mientras que en el segundo es en la casilla () de primera hoja ' del conjunto de hojas*# La ocasiones se pueden omitir algunos segunda o jetos notaci"n es no ms le larga, pero tam in ms recomenda le ya que se especifican todos los o jetos# En muchas precedentes, aconsejamos hacerlo, sus programas perdern claridad y concisi"n# 1i desea hacer referencia a la hoja activa puede utilizar (ctive1heet, as, el primer ejemplo lo dejaremos de la manera siguiente#

1u 6rimero (ctive1heet#>ange 'E()E*#=alue 5 E4olaE End 1u 1i desea poner E4olaE 'o cualquier valor* en la casilla activa, puede utilizar la propiedad 'o jeto* (ctivecell de QorR1heets# (s para poner E4olaE en la casilla activa de la hoja activa seria,

1u 6rimero (ctive1heet#(ctive%ell#=alue 5 E4olaE End 1u

Pgina 2 de 35

6ara es el

terminar o jeto

con

este

primer es el

ejemplo#

QorR1heets

estn

dentro

del

? jeto

QorR3ooRs 'li ros de tra ajo* y QorR3ooRs superior,

estn dentro de (pplication# (pplication

que representa la aplicaci"n Excel# (s, el primer

ejemplo, siguiendo toda la jerarqua de o jetos quedara de la forma siguiente#

1u 6rimero (pplication#QorR3ooRs ')*#QorR1heets ')*#>ange 'E()E*#=alue 5 E4olaE End 1u

9nsistiendo piense que

con si

la

nomenclatura, los o jetos en a las partir macros

(pplication casi nunca es necesario especificarlo, de este, QorR3ooRs ser li ros necesario de tra ajo que en se tra aja con diferentes

todos archivos*,

penden

implementarlo 'diferentes

de QorR1heets, es aconseja le incluirlo en el c"digo, ver, sin em argo,

so re todo si se quiere tra ajar con diferentes hojas, muchas ocasiones no se aplica#

Ejecutar un procedimiento o funci"n# 6rue e ejecutar el primer procedimiento de ejemplo# )# 1it!e el cursor dentro del procedimiento#

Pgina 2 de 35

+#

(ctive opci"n de la arra de men!s Ejecutar& Ejecutar 1u Mserform# Gam in puede o pulsar la tecla 2/#

hacer clic so re el ot"n

6ara ejecutar el procedimiento desde la hoja de clculo# <e e estar en una hoja, no en el editor de =isual 3asic )# (ctive opci"n de la arra de men!s 4erramientas& Macro& Macros# 1e despliega una

ventana que muestra una lista donde ests todas las macros incluidas en el li ro de tra ajo# +# 1eleccione la macro de la lista y pulse so re el ot"n Ejecutar#

Ejemplo +

En este segundo ejemplo simplemente ampliaremos la funcionalidad de la macro del ejemplo )# (dems de escri ir E4olaE en la casilla () de la celda (), la pondremos en negrita y le daremos color al texto# 6ara ello utilizaremos las propiedades 3old y %olor del o jeto 2ont# 1u 1egundo (ctive1heet#>ange 'E()E*#=alue 5 E4olaE (ctive1heet#>ange 'E()E*#2ont#3old 5 Grue (ctive1heet#>ange 'E()E*#2ont#%olor 5 >S3 '+//, C,C* End 1u

True

Pgina 2 de 35

Grue, que traducido es verdadero, simplemente indica que la propiedad 3old est activada# 1i se deseara desactivar, astara con igualarla al valor 2alse#

Variables ( continuaci"n vamos a repetir el programa Ejemplo), pero en lugar de poner E4olaE en la casilla () de la hoja activa, dejaremos que el usuario entre un texto desde teclado y a continuaci"n guardaremos ese valor en esa casilla# ? serve que el valor que entre del usuario de e guardarse en alg!n lugar para poder ponerlo despus en la casilla (), pues ien, ese valor se guardar en una varia le# Mna varia le es simplemente un trozo de memoria que la funci"n o procedimineto se reserva para guardar datos, la forma general de declarar una varia le es DI2 variable AS ti@o 1iendo varia le el nom re que se asigna a la misma y Gipo el tipo de datos que se guardarn 'n!meros, texto, fecha, oleanos,###*# En nuestro ejemplo, declararemos la varia le de tipo 1tring 'tipo texto*, y lo haremos de la forma siguiente# Di3 TeLto As Strin: %on esto estamos indicando que se reserve un trozo de memoria 'el que sea*, que se llama Gexto y que el tipo de datos que se guardarn ah sern caracteres#

La "uncin In@utBoL

Pgina 2 de 35

Esta

funci"n se

muestra pulsa

una

ventana

para

que

el

usuario

pueda

teclear

datos#

%uando

so re (ceptar, los datos entrados pasan a la varia le a la que se ha

igualado la funci"n# =ea la lnea siguiente#

Gexto 5 9nput3ox 'E9ntroduzca el textoE, EEntrada de datosE*# 1i en la ventana que muestra 9nput3ox pulsa so re el ot"n (ceptar, los datos tecleados se guardarn el la varia le Gexto#

SintaLis de In@utBoL In@utBoL 'Mensaje, Gtulo, =alor por defecto, 6osici"n horizontal, 6osici"n =ertical, (rchivo ayuda, F!mero de contexto para la ayuda*# 2ensa8e! Es el mensaje que se muestra en la ventana# 1i desea poner ms de una lnea ponga %hr ')-* para cada nueva lnea, vea el ejemplo siguiente# TKtulo! Es el ttulo para la ventana 9nput3ox# Es un parmetro opcional# =alor por defecto$ Es el valor que mostrar por defecto el cuadro donde el usuario entra el valor# 6armetro opcional#

Pgina 2 de 35

%osicin

7oriAontal$ La posici"n @ de la pantalla donde se mostrar el cuadro,

concretamente es la posici"n para la parte izquierda# 1i se omite el cuadro se presenta horizontalmente centrado a la pantalla# %osicin Vertical$ La posici"n A de la pantalla donde se mostrar el cuadro, para la parte superior# 1i se omite el cuadro se

concretamente es la posici"n

presenta verticalmente centrado a la pantalla# ArcFivo A?uda! Es el archivo que contiene la ayuda para el cuadro# 6armetro opcional# NB3ero mostrar# de 1i conteLto del archivo se @ara de la ayuda, a?uda! sirve F!mero para asignado el que texto corresponde que se al

identificador

localizar

de e

especifica

este parmetro, de e especificarse o ligatoriamente el

parmetro (rchivo (yuda# Ejemplo 1u EntrarK=alor <im Gexto (s 1tring T%hr ')-* sirve para que el mensaje se muestre en dos Lneas Gexto 5 9nput3ox 'E9ntroducir un texto E U %hr ')-* U E6ara la casilla ()E, EEntrada de datosE* (ctive1heet#>ange 'E()E*#=alue 5 Gexto End 1u

Pgina 2 de 35

Este ejemplo tam in se puede hacer sin varia les# La sentencia O@tion EL@licit En visual asic no es necesario declarar las varia les, por ejemplo, en el

programa anterior se hu iera podido prescindir de las lneas <im %asilla (s 1tring <im Gexto (s 1tring ( pesar de ello, le recomendamos que siempre declare las varia les que va a utilizar, de esta forma sa r cuales utiliza el procedimiento y que tipo de datos guarda cada una, piense que a medida que vaya aprendiendo, crear procedimientos cada vez ms complicados y que requerirn el uso de ms varia les, si no declara las varia les al principio del procedimiento ocurrirn dos cosas# 6rimero, las varia les no declaradas son asumidas como tipo =ariant 'este es un tipo de datos que puede almacenar cualquier valor, n!mero, fechas, texto, etc# pero tenga en cuenta que ocupa +C 3ytes y para guardar una referencia a una casilla, la edad de alguien, etc# no son necesarios tantos ytes*, segundo, reducir considera lemente la legi ilidad de sus procedimient os ya que las varia les las ir colocando a medida que las necesite, esto, a la larga complicar la correcci"n o modificaci"n del procedimiento# 3ueno, pues toda la explicaci"n anterior es para que declare todas las varia les que va a utilizar# La sentencia ?ption Explicit al principio del m"dulo fuerza a que se declaren varia le todas sin las varia les# se 1i al ejecutar un error el y programa, no se se encuentra alguna declarar producir podr ejecutar el

programa hasta que se declare#

Pgina 2 de 35

1i todava no se

ha convencido so re la conveniencia de declarar las varia les y

utilizar ?ption Explicit, prue e el procedimiento siguiente, c"pielo tal cual 'Gexto y Gesto estn puestos adrede simulando que nos hemos equivocado al teclear*# 1u EntrarK=alor Gexto 5 9nput3ox 'E9ntroducir un texto E U %hr ')-* U E6ara la casilla ()E, EEntrada de datosE* (ctive1heet#>ange 'E()E*#=alue 5 Gesto End 1u

? serve que el programa no hace lo que se pretenda que hiciera# Efectivamente, Gexto y Gesto son dos varia les diferentes, como no se ha declarado ninguna ni se ha utilizado ?ption Explicit =isual 3asic no da ning!n tipo de error y ejecuta el programa# 6rue e el siguiente m"dulo e intente ejecutarlo#

?ption Explicit 1u EntrarK=alor <im Gexto (s 1tring Gexto 5 9nput3ox 'E9ntroducir un texto E U %hr ')-* U E6ara la casilla ()E, EEntrada de datosE* (ctive1heet#>ange 'E()E*#=alue 5 Gesto End 1u

Pgina 2 de 35

? serve que el programa no se ejecuta, al poner ?ption Explicit, forzamos a que se declaren todas las varia les# =isual 3asic detecta que la varia le cuenta del error que hemos cometido al teclear y Gesto no ha sido declarada y as lo indica mostrando Error, entonces es cuando es ms fcil darnos cam iamos Gesto por Gexto# (hora imagine que el error se produce en un programa de cientos de lneas que necesita otras tantas varia les# Gipos de datos en =isual 3asic para Excel# 'Ga la copiada de la ayuda en lnea de =isual 3asic para Excel*# GamaJo Gipo de datos 3yte 3oolean 9nteger Long'entero largo* precisi"n simple* <e almacenamiento ) yte + ytes + ytes . ytes 9ntervalo C a +// Grue o 2alse O-+#LNB a -+#LNL O+#).L#.B-#N.B a +#).L#.B-#N.L O-,.C+B+-E-B a O),.C)+IBEO./ para valores negativos, ),.C)+IBEO./ a -,.C+B+-E-B para valores <ou le 'coma flotante&B ytes precisi"n do le* positivos O),LILNI-)-.BN+-+E-CB O.,I.CN/N./B.)+.LEO-+. para valores negativos, .,I.CN/N./B.)+.LEO -+. a ),LILNI-)-.BN+-+E-CB %urrency escala* <ecimal ). ytes 'entero aB ytes positivos OI++#--L#+C-#NB/#.LL,/BCB a I++#--L#+C-#NB/#.LL,/BCL V&OLI#++B#)N+#/).#+N.#--L#/I-#/.-#I/C#--/ sin punto decimal, V&O L,I++B)N+/).+N.--L/I-/.-I/C--/ con para valores a

1ingle 'coma flotante& . ytes

Pgina 2 de 35

+B posiciones a la derecha del signo decimal, el n!mero ms pequeJo distinto de cero esV&O <ate ? ject 1tring varia le* 1tring 'longitud fija* B ytes . ytes 'longitud)C de la cadena Longitud de C,CCCCCCCCCCCCCCCCCCCCCCCCCCC) ) de enero de )CC a -) de diciem re de IIII %ualquier referencia a tipo ? ject

ytes V longitud<esde C a +#CCC millones la<esde ) a N/#.CC aproximadamente %ualquier valor numrico hasta el intervalo de un tipo

cadena =ariant'con n!meros* )N ytes

=ariant'con

++

<ou le ytes V longitudEl mismo intervalo que para un tipo 1tring de

caracteres* de cadena longitud varia le <efinido por el usuarioF!mero requeridoEl intervalo de cada elemento es el mismo 'utilizando Gype* Cbool
Cbyte Ccur "uncin

por los elementos%ualquier que el intervalo de su o tipo de datos# Boolean expresi"n de cadena numrica vlida#
B?te Currenc? Date Double C a +//# OI++#--L#+C-#NB/#.LL,/BCB a I++#--L#+C-#NB/#.LL,/BCL# %ualquier expresi"n de fecha# O.,I.CN/N./B.)+.LEO-+. para valores negativos, para valores positivos#

Ti@o devuelto

Intervalo del ar:u3ento eL@resin

2unciones de conversi"n de tipos# 'Ga la copiada de la ayuda en lnea de =isual 3asic para Excel*#
Cdate CDbl

.,I.CN/N./B.)+.LEO-+. a ),LILNI-)-.BN+-+E-CB =al '%adena*# %onvierte la cadena a un valor numrico# Cdec Deci3al V&OL,I++B)N+/).+N.--L/I-/.-I/C--/# La menor

1tr 'F!mero*# %onvierte el n!mero a una expresi"n cadena# Las siguientes funciones tienen la posici"n para un n!mero que no sea cero es C,CCCCCCCCCCCCCCCCCCCCCCCCCCC)# forma 2unci"n 'Expresi"n*#
CInt CLng CSng Inte:er Lon: Sin:le O-+#LNB a -+#LNL, las fracciones se redondean# O+#).L#.B-#N.B a +#).L#.B-#N.L, las fracciones se redondean# O-,.C+B+-E-B a O),.C)+IBEO./ para valores negativos, ),.C)+IBEO./ a -,.C+B+-E-B para valores positivos#

CVar

Variant

El mismo intervalo que <ou le para valores numricos# El mismo intervalo que 1tring para Pgina 2 de 35 valores no numricos#

CStr

Strin:

El valor de retorno de %1tr depende del argumento expresi"n#

Ob8eto Cells '>ilaD colu3na1 1irve, como el o jeto range, para referenciar una casilla o rango de casillas, pero en lugar de utilizar la referencia de la forma (), 3), @-+C,### utiliza la fila y la columna que ocupa la casilla dentro de la hoja 'o o jeto QorR1heet*# 6or ejemplo, para poner hola en la casilla () de la hoja activa seria, (ctive1heet#%ells '),)*#=alue5E4olaE UtiliAar Cells @ara re>erenciar un ran:o Esto seria el equivalente a >ange'E%asillaK9nicial$%asillaK2inalE*# La forma que se o tiene utilizando %ells es un poco ms larga, pero se ver que a veces

Pgina 2 de 35

resulta mucho ms funcional que utilizando !nicamente range# 6ara referirnos al rango ()$3B, pondremos, >ange '%ells '), )*, %ells 'B, +**#=alue 5 E4olaE ?tra forma interesante de %ells es la siguiente, >ange 'E(/$3)CE*#%ells '+, )*#=alue 5 E4olaE 6ondr en la celda (N el valor E4olaE, o serve que en este ejemplo %ells comienza a contar filas y %olumnas a partir del rango especificado en el o jeto >ange# Estructuras condicionales (hora que ya ha experimentado con unos cuantos o jetos y propiedades, nos detendremos a estudiar las estructuras condicionales#Las estructuras condicionales son instrucciones de programaci"n que permiten controlar la ejecuci"n de un fragmento de c"digo en funci"n de si se cumple o no una condici"n# Estudiaremos en primer lugar la instrucci"n if %ondici"n then##End if '1i %ondici"n Entonces###2in 1i* La estructura condicional que se construye con la instrucci"n 1i %ondici"n Entonces### 2in 1i tiene la forma siguiente# 1i %ondici"n Entonces 1entncia) 1entncia+ # 1entnciaF 2in 1i %uando el programa llega a la instrucci"n 1i %ondici"n Entonces , se eval!a la condici"n, si esta se cumple 'es cierta*, se ejecutan todas las sentencias que estn encerradas en el loque, si no se cumple la condici"n, se saltan estas sentencias# Esta estructura en =isual 3asic tiene la sintaxis siguiente,

Pgina 2 de 35

9f %ondici"n Ghen 1entncia) 1entncia+ # 1entnciaF End 9f Ejemplo# Entrar una cantidad que representa el precio de algo por el teclado con la

instrucci"n 9nput3ox y guardarlo en la celda () de la hoja activa# 1i el valor entrado desde el teclado 'y guardado en ()* es superior a )CCC, pedir descuento con otro 9nput3ox y guardarlo en la casilla (+ de la hoja activa# %alcular en (-, el precio de () menos el descuento de (+# 1u %ondicional '* (ctive1heet#>ange 'E()E*#=alue 5 C las casillas donde se guardan los valores C# (ctive1heet#>ange 'E(+E*#=alue 5 C (ctive1heet#>ange 'E(-E*#=alue 5 C (ctive1heet#>ange 'E()E*#=alue 5 =al'9nput3ox'EEntrar el precioE, EEntrarE** T1i el valor de la casilla () es mayor que )CCC, entonces, pedir descuento 9f (ctive1heet#>ange 'E()E*#=alue : )CCC Ghen (ctive1heet#>ange 'E(+E*#=alue 5 =al'9nput3ox'EEntrar <escuentoE, EEntrarE** End 9f Estructura I> Else W 6oner

Pgina 2 de 35

Esta estructura se utiliza cuando se requiere una respuesta alternativa a una condici"n# 1u estructura es la siguiente# 1i condici"n Entonces 1entencia ) 1entencia + # # 1entencia F 1ino 1entencia### 2in si ? serve que, si se cumple la condici"n, se ejecuta el por 1i %ondici"n Entonces y loque de sentencias delimitado loque

1i no se cumple la condici"n se ejecuta el

delimitado por 1ino y 2in 1i# En =isual 3asic la instrucci"n 1i %ondici"n Entonces### 1ino### 2in 1i se expresa con las instrucciones siguientes# O@eradores l:icos Estos operadores se utilizan cuando se necesitan evaluar dos o ms condiciones para decidir si se ejecutan o no determinadas acciones#

O@erador L:ico And 'Y1

Pgina 2 de 35

Mtilizaremos este operador cuando sea preciso que para ejecutar un instrucciones condiciones# Ejemplo# se

loque de

cumpla ms de una condici"n# ? serve que de ern cumplirse todas las

Entrar el Fom re, la cantidad y el precio de un producto desde el teclado y guardarlos respectivamente en (), (+ y (-# %alcular el total y guardarlo en (.# 1i el total es superior a )C#CCC y el nom re del producto es E6atatasE, pedir un escuento, calcularlo el total descuento y guardarlo en (/, luego restar el descuento del total y guardarlo en (N# 1u Ejemplo '* <im 6roducto (s 1tring <im %antidad (s 9nteger <im 6recio (s 1ingle <im Gotal (s 1ingle <im <escuento (s 1ingle <im GotalK<escuento (s 1ingle 6recio 5 C 6roducto 5 9nput3ox 'EEntrar Fom re del 6roductoE,EEntrarE* 6recio 5 =al '9nput3ox 'EEntrar el precioE, EEntrarE** 6recio 5 =al'9nput3ox'EEntrar la cantidadE, EEntrarE** Gotal 5 6recio X %antidad (ctive1heet#>ange 'E()E*#=alue 5 6roducto (ctive1heet#>ange 'E(+E*#=alue 5 6recio (ctive1heet#>ange 'E(-E*#=alue 5 %antidad (ctive1heet#>ange 'E(.E*#=alue 5 Gotal T1i total mayor que )C#CCC y el producto es 6atatas, aplicar descuento# 9f Gotal : )CCCC (nd 6roducto 5 E6atatasE Ghen <escuento 5 =al '9nput3ox 'EEntrar <escuentoE, EEntrarE** GotalK<escuento 5 Gotal X '<escuento & )CC* Gotal 5 Gotal O GotalK<escuento (ctive1heet#>ange 'E(/E*#=alue 5 GotalK<escuento (ctive1heet#>ange 'E(NE*#=alue 5 Gotal

Pgina 2 de 35

End 9f End 1u ? serve que para que se ejecute el a la vez*, no se ejecuta dicho loque# O@erador L:ico Or 'O1 Mtilizaremos este operador cuando sea preciso que para ejecutar un instrucciones se es necesario ejemplo siguiente# Ejemplo# Entrar el Fom re, la cantidad y e l precio de un producto desde el teclado y guardarlos respectivamente en (), (+ y (-# %alcular el total y guardarlo en (.# 1i el total es superior a )C#CCC o el nom re del producto el E6atatasE, pedir un descuento, calcularlo el total descuento y guardarlo en (/, luego restar el descuento del total y guardarlo en (N# 1u Ejemplo '* <im 6roducto (s 1tring <im %antidad (s 9nteger <im 6recio (s 1ingle <im Gotal (s 1ingle <im <escuento (s 1ingle <im GotalK<escuento (s 1ingle 6recio 5 C cumpla alguna que se de una alguna serie de de condiciones# ? serve cumpla loque de que s"lo loque de instrucciones entre 9f## End 9f

de en cumplirse las dos condiciones que se eval!an, si falla cualquiera de las dos 'o las dos

las condiciones que se eval!an# =ea el

Pgina 2 de 35

6roducto 5 9nput3ox 'EEntrar Fom re del 6roductoE,EEntrarE* 6recio 5 =al '9nput3ox 'EEntrar el precioE, EEntrarE** 6recio 5 =al '9nput3ox 'EEntrar la cantidadE, EEntrarE** Gotal 5 6recio X %antidad (ctive1heet#>ange 'E()E*#=alue 5 6roducto (ctive1heet#>ange 'E(+E*#=alue 5 6recio (ctive1heet#>ange 'E(-E*#=alue 5 %antidad (ctive1heet#>ange 'E(.E*#=alue 5 Gotal T1i total mayor que )C#CCC o el producto es 6atatas, aplicar descuento# 9f Gotal : )CCCC ?r 6roducto 5 E6atatasE Ghen <escuento 5 =al '9nput3ox 'EEntrar <escuentoE, EEnt rarE** GotalK<escuento 5 Gotal X '<escuento & )CC* Gotal 5 Gotal O GotalK<escuento (ctive1heet#>ange 'E(/E*#=alue 5 GotalK<escuento (ctive1heet#>ange 'E(NE*#=alue 5 Gotal End 9f End 1u ? serve que para que se ejecute el loque de instrucciones entre 9f## End 9f s"lo es necesario que se cumpla alguna de las dos condiciones que se eval!an 'o las dos a la vez*# 1"lo cuando no se cumple ninguna de las dos no se ejecutan las instrucciones del loque# O@erador L:ico Not 'no1 Este operador se utiliza para ver si F? se cumple una condici"n# El siguiente ejemplo hace lo mismo que el ejemplo L pero utilizando el operador Fot#

Ejemplo#

Pgina 2 de 35

Entrar

una

cantidad

que

representa

el

precio

de

algo

por

el

teclado

con

la

instrucci"n 9nput3ox y guardarlo en la celda () de la hoja activa# 1i el valor entrado desde el teclado 'y guardado en ()* es superior a )CCC, pedir descuento con otro 9nput3ox y guardarlo en la casilla (+ de la hoja activa# %alcular en (-, el precio de () menos el descuento de (+# 1u Ejemplo '* <im 6recio (s 9nteger <im <escuento (s 9nteger 6recio 5 C <escuento 5 C 6recio 5 =al'9nput3ox'EEntrar el precioE, EEntrarE** W 1i el valor de la varia le precio F? es menor igual )CCC, entonces, pedir descuento 9f Fot '6recio ;5 )CCC* Ghen <escuento 5 =al'9nput3ox'EEntrar <escuentoE, EEntrarE** End 9f (ctive1heet#>ange 'E()E*#=alue 5 6recio (ctive1heet#>ange 'E(+E*#=alue 5 <escuento (ctive1heet#>ange 'E(-E*#=alue 5 6recio O <escuento End 1u Tablas de la verdad =ea las ta las siguientes (nd# ?r# AND 'Y1 OR 'O1 para ver los resultados de evaluar dos condiciones con el

operador (nd y con el operador ?r#

Pgina 2 de 35

%ondici"n %ondici"n+ >esultado ) 2alsa 2alsa %ierta %ierta 2alsa %ierta 2alsa %ierta 2also 2also 2also %ierto

Condicin Condicin Resultad . ( o 2alsa 2alsa 2also 2alsa %ierta %ierta %ierta 2alsa %ierta %ierto %ierto %ierto

? serve que con el operador (F< de en de cumplirse todas las condiciones 'dos o veinticinco* para que el resultado sea cierto# %on el operador ?> s"lo es necesario que se cumpla una 'de las dos o de las veinticinco* para que el resultado sea cierto#

"uncin 2s:BoL Esta funci"n muestra un mensaje en un cuadro de dilogo hasta que el usuario pulse un ot"n# La funci"n devuelve un dato tipo 9nteger en funci"n del ot"n pulsado por el usuario# ( la hora de invocar est funci"n, s e permiten diferentes tipos de otones# 1intxis de Msg3ox# Msg3ox 'Mensaje, 3otones, Gtulo, (rchivo de ayuda, contexto* 2ensa8e! ? ligatorio, es el mensaje que se muestra dentro del cuadro de dilogo# Botones! ?pcional# Es un n!mero o una suma de n!meros o constantes 'vea ta la =alores para otones e 9conos*, que sirve para mostrar determinados otones e iconos dentro del cuadro de dilogo# 1i se omite este argumento asume valor C que corresponde a un !nico 3ot"n ?Y# TKtulo$ ?pcional# Es el texto que se mostrar en la arra del ttulo del cuadro de dilogo# ArcFivo de A?uda$ ?pcional# 1i ha asignado un texto de ayuda al cuadro de dilogo, aqu de e especificar el nom re del archivo de ayuda donde est el texto#

Pgina 2 de 35

ConteLt! ?pcional# Es el n!mero que sirve para identificar el texto al tema de ayuda correspondiente que estar contenido en el archivo especificado en el parmetro (rchivo de (yuda# Ga la para otones e iconos del cuadro Msg3ox# 'Ga la copiada del archivo de ayuda de

Microsoft Excel*# %onstante = ?Y?nly = ?Y%ancel =alor C ) <escripci"n Muestra solamente el ot"n (ceptar# Muestra los otones (ceptar y %ancelar# Muestra los otones (nular, >eintentar e 9gnorar# Muestra los otones 1, Fo y %ancelar# Muestra los otones 1 y Fo# Muestra los otones >eintentar y %ancelar# Muestra el icono de mensaje crtico# Muestra el icono de pregunta de advertencia# Muestra el icono de mensaje de advertencia# Muestra el icono de mensaje de informaci"n# El primer ot"n es el predeterminado# El segundo ot"n es el predeterminado# El tercer ot"n es el predeterminado# El cuarto ot"n es el predeterminado# (plicaci"n modal, el usuario de e responder al cuadro de mensajes antes de poder seguir tra ajando en la aplicaci"n = 1ystemModal .CIN actual# 1istema modal, se suspenden todas las aplicaciones hasta que el usuario responda al cuadro de mensajes#

= ( ort>etry9gnore + = AesFo%ancel = AesFo = >etry%ancel = %ritical = Zuestion = Exclamation = 9nformation = <efault3utton) = <efault3utton+ = <efault3utton= <efault3utton. . / )N -+ .B N. C +/N /)+ LNB

= (pplicationModal C

Pgina 2 de 35

%ro@iedad Cells Aa conoce esta propiedad, sirve para referenciar una celda o un rango de celdas s eg!n coordenadas de fila y columna# Ejemplo$ Llenar el rango de las casillas ()##(/ con valores pares consecutivos empezando por el +# 1u Ejemplo '* <im 2ila (s 9nteger <im i (s 9nteger 2ila 5 ) 2or i5+ Go )C 1tep + (ctive1heet#%ells '2ila,)*#=alue 5 i 2ila 5 2ilaV) Fext i End 1u %ro@iedades ROM ? COLU2N %omo ha r deducido del ejemplo anterior devuelven la fila y la columna de un o jeto range# En el ejemplo anterior se utiliza an concretamente para o tener la fila y la columna de la casilla activa# ?tra forma de solucionar el ejemplo seria# 1u Ejemplo '*

Pgina 2 de 35

<im %asillaK9nicial (s 1tring <im i (s 9nteger <im 2ila (s 9nteger, %olumna (s 9nteger %asillaK9nicial 5 9nput3ox 'E9ntroducir la casilla 9nicial$ E, E%asilla 9nicialE* (ctive1heet#>ange '%asillaK9nicial*#(ctivate 2ila 5 ) 2or i 5 ) Go )C (ctive1heet#>ange '%asillaK9nicial*#%ells '2ila, )*#=alue 5 i 2ila 5 2ila V ) Fext i End 1u >ecuerde que cuando utilizamos %ells como propiedad de un rango '? jeto >ange*,

%ells empieza a contar a partir de la casilla referenciada por >ange# Estructura re@etitiva Do MFile Loo@ '7acer 2ientras1 La estructura repetitiva for se adapta perfectamente a aquellas situaciones en que se sa e previamente el n!mero de veces que se ha de repetir un proceso, entrar veinte valores, recorrer cincuenta celdas, etc# 6ero hay ocasiones o casos en los que no se sa e previamente el n!mero de veces que se de e repetir un proceso# 6or ejemplo, suponga que ha de recorrer un rango de filas en los que no se sa e cuantos valores ha r 'esto es, cuantas filas llenas ha r*, en ocasiones puede que hayan veinte, en ocasiones treinta, en ocasiones ninguna, etc# 6ara estos casos la estructura for no es adecuada y de eremos recurrir a la sentencia <o Qhile##Loop en alguna de sus formas# Esta estructura repetitiva est controlada por

Pgina 2 de 35

una o varias condiciones, la repetici"n del cumpliendo la condici"n o condiciones#

loque de sentencias depender de si se va

4acer Mientras 'se cumpla la condici"n* 1entencia) 1entencia+ # # 1entencia F 2in 4acer Mientras En =isual 3asic <o Qhile 'se cumpla la condici"n* 1entencia) 1entencia+ # # 1entencia F Loop XX Los ejemplos que veremos a continuaci"n so re la instrucci"n <o Qhile##Loop se harn so re una ase de datos# Mna ase de datos en Excel es simplemente un ase de rango de celdas en que cada fila representa un registro y cada columna un campo de registro, la primera fila es la que da nom re a los campos# 6ara nuestra datos utilizaremos los campos siguientes, Fom re, %iudad, Edad, 2echa# 6onga

estos ttulos en el rango ()$<) de la 4oja) 'En () ponga Fom re, en 3) ponga %iudad, en %) ponga Edad y en <) 2echa*, o serve que los datos se empezarn a entrar a partir de (+# %rocedi3ientos ? >unciones 1e define como procedimiento i&o funci"n a un loque de c"digo que realiza alguna

tarea# 4asta ahora, hemos construido los programas utilizando un !nico procedimiento,

Pgina 2 de 35

pero a medida que los programas 'y los necesaria tentaci"n pero se grandes la de inclusi"n utilizar, de como ms hasta ahora,

pro lemas* un !nico

crecen

se

va por

haciendo en la programa

procedimientos#

6odra

fcilmente caer

procedimiento

dar cuenta rpidamente de que este mtodo no es nada prctico ya que loques de c"digo implican mayor complicaci"n del mismo, repetici"n de

sentencias y lo que es ms grave, mayores pro lemas de seguimiento a la hora de depurar errores, ampliar funcionalidades o incluir modificaciones# La tarea filosofa es forma de de utilizar con o ms procedimientos menos aislada es de la antigua f"rmula tratar del Edivide pro lema y o

vencersE,

decir,

los procedimientos

podremos forma

cada

que construiremos el programa

paso a paso evitando tener que resolver o controlar m!ltiples cosas a la vez# %ada tarea la realizar un procedimiento, si esta tarea implica la ejecuci"n de otras tareas, cada una se implementar y solucionar en su correspondiente procedimiento de manera que cada uno haga una cosa concreta# (s, los diferentes pasos que se de en ejecutar para que un programa haga algo, quedaran correspondiente procedimiento, si el programa ien definidos cada uno en su falla, fallar a partir de un

procedimiento y de esta forma podremos localizar el error ms rpidamente# Los procedimientos son tam in un eficaz mecanismo para evitar la repetici"n de c"digo en un mismo programa e incluso en diferentes programas# 1uponemos que ha r intuido que hay muchas tareas que se repiten en casi todos los programas, veremos como los procedimientos que ejecutan estas tareas se pueden incluir en un m"dulo de forma que este sea exporta le a otros programas y de esta manera ganar tiempo que, como dice el t"pico, es precioso# Variables locales ? variables $lobales El m ito es de una no varia le declarada dentro fuera de de una funci"n es la propia

funci"n,

decir

podr utilizares

dicha

funci"n# (s, el siguiente

Pgina 2 de 35

programa que de era sumar las cinco filas siguientes a partir de la casilla activa y guardar el resultado en la sexta es incorrecto# 1u (lgunaK%osa '* # # # %all 1umarK%incoK1iguientes (ctive%ell#?ffset 'N,C*#=alue 5 1uma # # End 1u 1u 1umarK%incoK1iguientes '* <im i (s 9nteger <im 1uma (s 1ingle 1uma5C 2or i5) Go / 1uma 5 1umaV(ctive%ell#?ffset 'i,C*#=alue Fext i End 1u Es incorrecto porque tanto las varia le i como la varia le 1uma estn declaradas dentro del procedimiento 1umarK%incoK1iguientes 1uma del procedimiento (lgunaK%osa, consecuentemente, un error su m ito de acci"n es este procedimiento# 6or tanto, la instrucci"n (ctive%ell#?ffset'N,C*#=alue 5 generara 'con ?ption Explicit activado* ya que la varia le 1uma no est declarado dentro de l# 1i piensa en

declarar la varia le 1uma dentro del procedimiento 4acerK(lgo, no solucionar nada

Pgina 2 de 35

porque esta ser local a dicho procedimiento, en este caso tendra llamadas 1uma pero cada una de ellas local a su consecuentemente con el m ito de acci"n restringido a ellos# O@tion EL@licit

dos varia les

propio procedimient o y

W 1uma es una varia le glo al reconocida por todos los procedimientos del m"dulo# <im 1uma (s 1ingle 1u (lgunaK%osa '* %all 1umarK%incoK1iguientes (ctive%ell#?ffset 'N,C*#=alue 5 1uma End 1u 1u 1umarK%incoK1iguientes '* <im i (s 9nteger 1uma5C 2or i5) Go / 1uma 5 1umaV(ctive%ell#?ffset'i,C*#=alue Fext i End 1u

Pgina 2 de 35

S-ar putea să vă placă și