ESTUDIOS GENERALES UNIVERSIDAD PRIVADA TELESUP SEPARATA DE OFIMTICA EMPRESARIAL II DOCENTE: LIC. ENRIQUE CRDENAS DAZ UNIVERSIDAD PRIVADA TELESUP ESTUDIOS GENERALES OFIMTICA EMPRESARIAL II UNIDAD IV APLICACIN DE MACROS EN EXCEL Macros Una de las mayores ventajas de Excel es la flexibilidad y la rapidez con la que podemos construir plantillas y todo tipo de modelos, para diversos usos o aplicaciones. Macro: es un conjunto de instrucciones de cdigo que permiten realizar una tarea determinada. as macros se escriben !codifican" en el lenguaje de programacin #$% !#isual $asic for%pplications". El Excel trae incorporado el editor de #$%, de este modo las macros se programan dentro del mismo programa. TIPOS DE MACROS PARA EXCEL. as macros se pueden agrupar en dos categor&as: Macros de funciones y Macros de comandos. Macros de funciones: 'i ejecuta frecuentemente una tarea de Microsoft Excel, puede automatizarla mediante una macro. Una macro consiste en una serie de comandos y funciones que se almacenan en un mdulo de #isual $asic y que puede ejecutarse siempre que sea necesario ejecutar la tarea. Macros Comandos: a creacin de estas macro funciones consiste en poner una serie de argumentos, en las cuales podemos ir poniendo los datos que lleva una funcin normal de Excel para (indo)s y al final le indicamos que operaciones *acer con estos argumentos y de esta manera se optimiza el uso de varias frmulas para llegar a un resultado. Macros de Visual Basic: as macros de #isual $asic est+n basados en mdulos, que por tal *ec*o se vuelven m+s complicadas, teniendo como ventaja que son compatibles dentro de varias aplicaciones, de esta manera se tendr&a un lenguaje com,n de macros entre varios programas, con lo cual se logra que se pierda menos tiempo en realizar una macro en alguno de estos programas. Por esta razn es que lasmacros de Visual Basic son un tema particular. Actiar !ic"a Pro#ramador -ara trabajar con Macros debemos activar la fic*a -rogramador donde est+n contenidos todos los comandos asociados a la programacin en #$%. %rc*ivo./ 0pciones de Excel./-ersonalizar 1inta de 0pciones./%ctivar 2ic*a -rogramador./ %ceptar. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II $ra%ar una macro 1uando grabe una macro, es recomendable que primero anote y ensaye cada uno de los pasos antes de grabar la macro, esto le permitir+ tener una macro m+s limpia, es decir, con los menos errores posibles. -ara grabar una macro, realice lo siguiente: 3. #aya a la fic*a Pro#ramador, en el grupo C&di#o, *aga clic en $ra%ar macro. 4. En la ventana mostrada escriba un nombre adecuado para la macro, si lo desea puede asignar un m5todo abreviado el cual ejecutar+ la macro al presionar la combinacin de teclas asignadas, especifique en donde se guardar+, es decir, el alcance de su funcionamiento, opcionalmente podr+ escribir una descripcin sobre su funcionamiento o creacin, por ultimo *aga clic en Ace'tar para iniciar la grabacin. 6. 7ealice todas y cada una de las acciones que desee grabar en el orden adecuado. 8. 1uando termine la grabacin de las acciones, ser+ necesario detener la grabacin, para ello vaya de nuevo a la fic*a -rogramador, en el grupo 1digo, *aga clic en 9etener grabacin. :ota: ;ambi5n puede *acer clic en el botn en el lado izquierdo de la barra de estado para iniciar la grabacin de una nueva macro, o para detenerla presione el botn en el lado izquierdo de la barra de estado. E(ecutar una macro Ejecutar una macro significa que los pasos grabados o programados se realicen uno a uno de forma r+pida y autom+tica con tan solo presionar un botn, m5todo abreviado, objeto, etc. -ara ejecutar una macro, realice lo siguiente: Asi#nar la macro a un o%(eto En una *oja de c+lculo, *aga clic derec*o sobre el objeto insertado !imagen, gr+fico, control, etc." al que desea asignar una macro existente y, a continuacin, *aga clic en Asi#nar macro en el men, contextual. En el cuadro )om%re de la macro, *aga clic en la macro que desea asignar. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Asi#nar la macro a un %ot&n de la Barra de acceso r*'ido 3. %bra el men, de la $arra de acceso r+pido y seleccione $arra de <erramientas de acceso r+pido. 4. En el men, desplegable de 1omandos disponibles en, seleccione la opcin Macros, aparecer+ un peque=o icono, lo seleccionamos y %gregamos a la lista de comandos. ;erminamos *aciendo clic en el botn %ceptar. 6. -uede cambiar la imagen del botn asignado a la macro y el nombre del mismo, para personalizar la imagen de la macro active el botn Modificar. Eliminar una macro 3. %bra el libro que contiene la macro que desee eliminar. 4. En la fic*a Pro#ramador, en el grupo C&di#o, *aga clic en Macros. 6. En el cuadro )om%re de la macro, *aga clic en el nombre de la macro que desee eliminar y, *aga clic en el botn Eliminar. E(em'lo+ En este momento todas las acciones que realicemos las grabar+ la macro, por lo que es preciso seguir con atencin los prximos pasos, ya que un error significar&a una grabacin incorrecta: E(em'lo+ Macro de Mensa(e 3. >r al 2ic*as -rogramador, activar el botn Usar referencia relativas, que nos permitir+ activar la macro en cualquier parte de la *oja de c+lculo de lo contrario solo operara en la celda donde fue creada originalmente.. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II 4. uego seleccionamos: ?rabar Macro e ingresamos los datos que solicita el comando: 6. 0jo: Es 1trl@l ! min,scula" y %ceptar. 8. 'elecciona la celda %3 A. Escribe BEsta es mi primera macroB !o lo que guste". C. -resione Enter, si la seleccin se movi *acia abajo, entonces vuelve a seleccionar la celda %3 D. 9ale formato de )e#ritas , Cursiva , cambia el tamao de la fuentey por ,ltimo el color de la fuente E. %l final se tiene que ver algo muy parecido a esto: F. 9etener la macro. 3G. -odemos ejecutar la macro llam+ndola desde el men, de Macros o presionando 1trl@l. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Macros de Funcin 3. %brir el Editor #$% !%t@233" y 2D !para abrir la <oja de cdigo" >ngresamos la definicin de la macro: Estructura de una Macro de funcin: Function nombre de la funcin (argumento) . termina con . EndFunction Entre ambas definiciones va el cdigo de la funcin. 4. En el cdigo ingresamos el nombre de la funcin seguida del signo igual y de su definicin. -or ejemplo: 1omo vemos el nombre de la funcin es cubo y su argumento se llama numero !lo traducir&amos como Bel 1ubo de un n,meroB". 9espu5s volvemos a escribir cubo, el signo igual, y su definicin. %*ora ?uardamos la funcin, el programa nos muestra el siguiente mensaje: DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II 7espondemos 'i. 6. Uso de la funcin Una vez escrito el cdigo, cierra el Editor de $asic y usa tu funcin en cualquier celda. En la imagen puedes ver una celda definida mediante la nueva funcin 1U$0. 1on esto ya tenemos definida la funcin. 1on la t5cnica explicada, esa funcin slo estar+ activa en la *oja de c+lculo en la que la *as creado, no en otras. %l cerrar la *oja ya no podr+s usarla. E(ercicio+ Crear las funciones+ I$V, Cam%iar-Dolares, Cam%iar-Soles. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Introduccin a la programacin en Excel con VBA -ara ingresar al modo de programacin debemos %brir la ventana con el Editor #$%: 2ic*a -rogramador./#isual $asic ./ >nsertar Modulo ;ambi5n puede utilizar la combinacin %lt@233 !lo mismo para regresar al ibro Excel" #entana del editor #$% !entorno de programacin": E.'lorador de 'ro/ecto:Muestra una lista jer+rquica de los proyectos, en casi todas las aplicaciones que usan #$%, cada AR!"V# que tengas de esa aplicacin, se convierte en un PR#$E%# , en la imagen notaras que dice VBAPro/ect 0Li%ro12 si lo vieses en (ord dir&a Pro/ect 0Documento12 , en -o)er-oint dir&a VBAPro/ect 0Presentacion12 , en %ccess, como sabes, como primero *ay que guardar la base de datos, antes de poder usarla, supongamos que abres y creas una base de datos que se llame 9irectorio, al entrar al Editor de #isual $asic, dir&a Directorio 0Directorio2. 'i tienes m+s de un arc*ivo abierto, aqu& los ver&as, adem+s de que el nombre del proyecto puede ser diferente del nombre del arc*ivo. 0bserva como su aspecto es muy similar al del Explorador de (indo)s, pero los elementos que veras aqu& tienen un nombre muy especial que tienes que recordar O%(etos. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Ventana Pro'iedades:Esta ventana sirve para cambiar las Pro'iedades de los O%(etos, las propiedades determinan el aspecto y comportamiento de los objetos. -or ejemplo, en el Explorador de proyectos, selecciona el objeto 3o(a1 03o(a12. Ventana de c&di#o+ Esta es la buena, aqu& es donde escribiremos y editaremos el cdigo de las macros, tambi5n en Mdulos como este, es donde las aplicaciones que permiten ?rabar Macros, generan su cdigo, al insertar el modulo, el cursor de escritura debe de quedar dentro de esta ventana, donde ingresamos el texto esta ventana essolo para #isual $asic y nos ayuda en estas tareas, como avisarnos de posibles errores, colorear el cdigo, etc. 1ontrol y manejo de 0bjetos dentro de Excel. Varia%les -ara lograr una mayor eficiencia en nuestros programas es recomendable definir el tipo de variables que se utilizar+n. En #isual $asic no es estrictamente necesaria la definicin de variables, esto es recomendable, ya que al definir una variable estamos definiendo la forma en que los datos se almacenar+n en la memoria y as& evitamos que #isual $asic *aga esta asignacin autom+ticamente, lo que se traducir+ en un mayor tiempo de ejecucin. %dem+s, definir las variables facilita la compilacin de nuestros programas. Ti'os de Varia%les En #isual $asic *ay distintos tipos de variables, las m+s comunes: Ti'o de Varia%le Ti'o de dato >nteger :,mero entero, entre .64.DCE y 64.DCD ong :,mero entero, entre .4.38D.8E6.C8E y 4.38D.8E6.C8D 9ouble :,mero con decimales 'tring 1adena de texto $oolean #ariable gica, puede ser ;rue o 2alse 0bject <ace referencia a un 0bjeto DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II 9eclaracin de #ariables as variables pueden ser ocales, -,blicas o Est+ticas. Varia%les Locales as variables ocales son las que se declaran dentro de un procedimiento y slo pueden ser utilizadas en 5ste. Hstas desaparecen una vez que el procedimiento termina su ejecucin. Estas variables se definen a trav5s de la sentencia 9im. -or ejemplo: !u" #rocedimiento$% Dim i As Integer Dim texto As !tring $cdigo% End !u" Varia%les P4%licas 'i se quiere que una variable est5 disponible para todos los procedimientos de todos los mdulos #$% de un proyecto, 5sta se debe definir a trav5s de la sentencia -ublic !en vez de 9im". -or ejemplo: #u"lic Cuenta As Integer ;odas las variables p,blicas se deben definir antes del primer procedimiento de un mdulo est+ndar en #$%, no deben definirse en los mdulos correspondientes a las *ojas del ibro de ;rabajo ni en los mdulos de losUser2orms. Varia%les Est*ticas 'i desea que una variable definida en un procedimiento conserve su valor una vez terminado, 5sta debe definirse a trav5s de la sentencia 'tatic. -or ejemplo: &ub Procedimiento'() &tatic i As "nteger (cdigo) End &ub #ptionE(plicit a sentencia &ptionExplicit permite que el programa se detenga cada vez que #$% encuentre una variable que no *a sido definida. Esto es de gran utilidad cuando se utilizan muc*as variables pues nos permite identificar r+pidamente errores en los nombres de las variables. Esta sentencia debe escribirse al comienzo del mdulo. Constantes % diferencia de las variables, cuyo valor cambia al ejecutarse un procedimiento, tenemos valores que no cambiaran durante la ejecucin de un procedimiento, estos se denominan 1onstantes y se definen a trav5s de la sentencia 1onst. -or ejemplo: onstapacidad As "nteger as constantes tambi5n pueden declararse como -,blicas para que est5n disponibles en todos los mdulos, para ello usamos la sentencia -ublic: PubliconstapacidadAs"nteger Esta sentencia debe incluirse en un mdulo antes del primer procedimiento. -ara definir constantes ocales, basta definirlas a trav5s de la sentencia 1onst dentro de un procedimiento o funcin. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II -rocedimientos Un procedimiento es una serie de sentencias dentro de un mdulo. Un procedimiento se declara a trav5s de la sentencia 'ub y puede ser -rivado, -,blico o Est+tico. Procedimiento Priado Es accesible por otros procedimientos dentro del mismo mdulo, 5ste se define: Pri)ate &ub Procedimiento(argumento'*argumento+*.....) (cdigo) End &ub Procedimiento P4%lico Es accesible por todos los procedimientos de todos los mdulos #$% de un proyecto, 5ste se define: Public &ub Procedimiento(argumento'*argumento+*.....) (cdigo) End &ub Procedimiento Est*tico 'e define as& para que las variables de un procedimiento se conserven una vez terminada su ejecucin, 5ste debe definirse como Est+tico: &tatic&ubProcedimiento(argumento'*argumento+*.....) (cdigo) End &ub
as sentencias 'ub y End 'ub son obligatorias para definir cualquier procedimiento, los argumentos y las sentencias -rivate, -ublic y 'tatic son opcionales. 'i definimos un procedimiento sin ninguna de las sentencias anteriores, por defecto 5ste se define como -,blico. Es decir: &ub Procedimiento(argumento'*argumento+*.....) (cdigo) End &ub Equivale a escribir:
Public&ubProcedimiento(argumento'*argumento+*.....) (cdigo) End &ub
Existe una instruccin que permite terminar la ejecucin de un procedimiento, 5sta es la instruccin E(it &ub. -or ejemplo: &ub Procedimiento(argumento'*argumento+*.....) "f condicin' %,en (cdigo) Else E(it &ub End "f (cdigo) End &ub 'i condicin3 es falso, el procedimiento terminar+ su ejecucin.
DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Llamar a un 'rocedimiento desde otro -ara llamar a un procedimiento desde otro procedimiento, podemos utilizar la sentencia Call o el nombre del procedimiento. -or ejemplo: &ub Procedimiento'(argumento'*argumento+*.....) -cdigo. Procedimiento+ -cdigo. End &ub En este caso, el procedimiento Procedimiento' llama al procedimiento Procedimiento+. a sentencia 1all se utiliza cuando se requiere llamar a un procedimiento al cual *ay que pasarle un argumento, por ejemplo: &ub Procedimiento'(argumento'*argumento+*.....) (cdigo) indice/ ........ allProcedimiento-0ndice. (cdigo) End &ub En este caso, Procedimiento' llama o invoca aProcedimiento+ al cual se le debe pasar el argumento &ndice. 'e recomienda utilizar la sentencia all para llamar a otro procedimiento, aunque a 5ste no se le pasen argumentos, esto permite identificar con facilidad las llamadas a otros procedimientos.
Ar#umentos os argumentos pueden ser pasados a un procedimiento por referencia !por defecto los argumentos se pasan de esta forma" o por )alor. 1uando un argumento es pasado por referencia, se pasa la variable misma al procedimiento invocado, por lo que los cambios que se producen en la variable son devueltos al procedimiento principal !el que llam o invoco". En cambio cuando un argumento es pasado por valor, se pasa una copia de la variable al procedimiento llamado por lo que los cambios que se producen en la variable no se devuelven al procedimiento principal. -ara pasar un argumento por valor, se utiliza la sentencia B1Val, por ejemplo: &ubProcedimiento+(B1Valindice) (cdigo) End &ub -asar argumentos por valor es ,til cuando se requiere conservar el valor original de una variable despu5s de llamar a otro procedimiento. %l especificar los argumentos de un procedimiento tambi5n es podemos definir el tipo de datos, por ejemplo: &ubProcedimiento(argumento' As "nteger* argumento+ As &tring) -cdigo. End &ub 9e esta forma se especifica el tipo de dato que se pasar+ como argumento al procedimiento. Manejo de Errores #isual $asic permite manejar los errores propios de la ejecucin de un procedimiento. -ara esto existen varias alternativas. On Error Resume )e.t a sentencia #n Error Resume 2e(t permite ignorar un error y avanzar a la siguiente instruccin en la ejecucin de un procedimiento. -or ejemplo: &ub Procedimiento() #n Error Resume 2e(t DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II "ntruccin ' "nstruccin + . . End &ub El incluir la sentencia 0n Error 7esume :ext antes de la instruccin 3 implica que si se produce alg,n error el programa lo ignorar+ y continuar+ con la instruccin siguiente. On Error $oTo...... a sentencia 0n Error ?o;o...... se utiliza para ir a una parte espec&fica del procedimiento cuando se produce un error. -or ejemplo, si tenemos el siguiente procedimiento: &ub Procedimiento() &n Error 'o(o )inal "ntruccin ' "nstruccin + . . E(it &ub )inal* -cdigo. End &ub
En este caso, se utiliza la sentencia #n Error 3o%ofinal , lo que implica que si se produce un error, el procedimiento continuar+ ejecut+ndose a partir de la sentencia )inal*.:ote que se utiliza la sentencia Exit 'ub para evitar que en caso de no producirse errores el procedimiento no ejecute el cdigo que se encuentra a continuacin de la sentencia )inal* y as& lograr el objetivo deseado que slo se ejecute en caso de producirse errores. On Error $oTo 5 a sentencia 0n Error ?o;o G se utiliza para volver al modo normal de manejo de errores. -or ejemplo: &ub Procedimiento() &n Error +esume Next "ntruccin ' "nstruccin + . . &n Error 'o(o , End &ub
En este caso una vez ejecutadas las instrucciones del cdigo, se vuelve al modo normal de manejo de errores. Err ser+ distinto de G cuando ocurre un error. -or ejemplo: &ub Procedimiento() #n Error Resume 2e(t )alor / 4or5s,eetFunction.V6oo5up(78ose9* Range(7A':;'<9)* +* <) "fErr=> < %,en?sgBo( 72o se ,a encontrado ning@n )alor9 #n Error 3o%o < End &ub 'i se produce un error, Err tendr+ un valor distinto de cero, por lo cual en este caso se desplegar+ el mensaje: I:o se *a encontrado ning,n valorJ. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II 0bjetos Excel El objeto -or."oo.s representa los ibros de ;rabajo M6todos m*s comunes Add -ermite 1rear un nuevo ibro de ;rabajo &pen -ermite %brir un ibro de ;rabajo Close -ermite 1errar un ibro de ;rabajo !ave -ermite ?uardar un ibro de ;rabajo Existente !$uardar del men, %rc*ivo" !aveA s -ermite ?uardar un ibro de ;rabajo Existente !$uardar del men, %rc*ivo" Pro'iedades m*s comunes ActieS"ee t <oja activa del ibro de trabajo Name :ombre del ibro de ;rabajo #at/ 7uta en la que se encuentra el ibro de ;rabajo 7or8s"eets 1onjunto de <ojas que componen el ibro de ;rabajo E(em'los+ rear un 6ibro de %rabaAo 1 3uardarlo En el siguiente eAemplo se abre el 6ibro de %rabaAo 7Resumen.(ls9 a partir del cual se obtiene la ruta en la cual se encuentra el 6ibro (Propiedad #at/) 1 luego se crea un nue)o 6ibro de trabaAo (PriopiedadAdd) el cual se guarda con el nombre 7EAemplo.(ls9 (Propiedad !aveAs) 1 luego se cierra (Propiedad Close). En el eAemplo se utiliza la propiedad Active-or."oo. que permite ,acer referencia al 6ibro de %rabaAo acti)o. &ub rea6ibro() ;im ruta As &tring ;im nombrearc,i)o As &tring 4or5boo5s.#pen(B:C;ocumentsand &ettingsCprodilloC?isDdocumentosCResumen.(lsB) ruta / Application.Acti)e4or5boo5.Pat, 4or5boo5s.Add nombrearc,i)o / rutaE BCEAemplo.(lsB Application.Acti)e4or5boo5.&a)eAs Filename:/nombrearc,i)o 4or5boo5s(BEAemplo.(lsB).lose End &ub
Mostrar )om%re de Arc "io En el siguiente ejemplo se obtiene el nombre del primer ibro abierto y se despliega en un cuadro de mensaje !Message$ox". :ote que en el ejemplo que se utiliza el n,mero de &ndice del ibro de trabajo !(orKbooKs!3"", el &ndice 3 siempre representa el primer ibro abierto. 'e puede *acer referencia a los ibros de trabajo tanto por su nombre, como en el ejemplo anterior !(orKbooKs!BEjemplo.xlsB"" como por su n,mero de &ndice. &ub nombrelibro() ;imnombrelibro As &tring nombrelibro / 4or5boo5s(').2ame ?sgBo(nombrelibro End &ub
%l ejecutar el programa, se despliega el cuadro de mensaje con el nombre del arc*ivo. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II El objeto -or.s/eets representa las <ojas de un ibro de ;rabajo
M6todos m*s comunes Add -ermite 1rear un nuevo ibro de ;rabajo Cop0 -ermite 1opiar una <oja Delete -ermite Eliminar una <oja Move -ermite Mover una <oja !elect -ermite 'eleccionar una <oja
Pro'iedades m*s comunes Active!/eet <oja activa del ibro de trabajo Cells 1elda de la <oja Inde. Lndice de la <oja )ame :ombre de la <oja Ran#e 7ango de celdas o celda de la <oja
Crear 3o(a, Renom%rarla, Co'iarla / Eliminarla En el eAemplo se crea una nue)a !oAa (?Ftodo Add)* se obtiene su n@mero de 0ndice (Propiedad Index) 1 se le da el nombre 7EAemplo9 (Propiedad Name). 6uego se mue)e la ,oAa creada a continuacin de la !oAa+ (?Ftodo Move) 1 se obtiene nue)amente el n@mero de 0ndice de la ,oAa debido a que cambi de posicin. Por @ltimo la ,oAa nue)a llamada 7EAemplo9 se copia a continuacin de la !oAa+ (?Ftodo Cop0) 1 a la copia se le da el nombre 7opia de EAemplo9 (Propiedad Name) para luego eliminar la ,oAa llamada 7EAemplo9 (?Ftodo Delete). &ub rea!oAa() ;im indice As "nteger Application.Acti)e4or5boo5.4or5s,eets.Add indice / Application.Acti)e4or5boo5.Acti)e&,eet."nde( Application.Acti)e4or5boo5.Acti)e&,eet.2ame / BEAemploB Application.Acti)e4or5boo5.4or5s,eets(indice).?o)e After:/!oAa+ indice / Application.Acti)e4or5boo5.Acti)e&,eet."nde( Application.Acti)e4or5boo5.4or5s,eets(indice).op1 After:/!oAa+ Application.Acti)e4or5boo5.4or5s,eets(indice).2ame / Bopia de EAemploB Application.Acti)e4or5boo5.4or5s,eets(indice G ').;elete End &ub
Escri%ir datos en una Celda En el eAemplo se asigna al celda 7A'9 de la primera ,oAa el )alor '< (Propiedad +ange) 1 a la celda 7A+9 de la primera ,oAa el )alor +< (Propiedad Cells). Para ,acer referencia a una celda se puede usar indistintamente la propiedad +ange o Cells* en cambio para ,acer referencia a un rango de celdas slo se puede utilizar la propiedad +ange. &ub "ng;ato() Acti)e4or5boo5.4or5s,eets(').Range(BA'B) / '< Acti)e4or5boo5.4or5s,eets(').ells(+* ') / +< End &ub 7ange El objeto +ange representa las celdas o rangos de celdas de una <oja de un ibro de ;rabajo. DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II 'intaxis: Range(7A'9) <ace referencia a la celda I%3J Range(7A':;H9) <ace referencia al rango I%3:9AJ Range(7A'*;H9) <ace referencia al rango I%3,9AJ Range(7A:A9) <ace referencia a la columna % Range(7':'9) <ace referencia a la fila 3 Range(7':EI9).Range(7A'9) <ace referencia a la primera celda del rango I13:E6J, es decir a la celda I13J. ?racias a esto se puede *acer referencia a una celda o rango en forma relativa a otro rango. M6todos m*s comunes Activate %ctiva el 7ango seleccionado Clear $orra los valores del 7ango Cop0 1opia los datos del 7ango Delete Elimina el 7ango Insert >nserta celdas #aste!pecia l -egado especial !#alores, 2rmulas, 2ormato, etc...". Select -ermite seleccionar un 7ango Sort -ermite ordenar un rango en base a un criterio determinado Pro'iedades comunes Address >ndica la direccin del rango seleccionado Areas :,mero de 7angos 'eleccionados Column -osicin de columna en la que empieza el 7ango Columns 1olumnas que componen un rango Count 1uenta el n,mero de objetos de un conjunto. -or ejemplo : : de columnas de un rango M 7ango.Columns.Count CurrentRe#io n a regin actual es un rango limitado por cualquier combinacin de filas y columnas vac&as. Equivale a presionar '*ift@1ontrol@N sobre una celda End 7epresenta la celda situada al final de la regin que contiene el rango fuente. a sintaxis de esta propiedad es : 7ango. End0Direction2 Direction Lon#requerido. a direccin de desplazamiento. -uede ser una de las siguientes constantes XlDirection: .lToLeft, .lToRi#"t, .l9' o .lDo:n EntireColumn 7epresenta toda la columna a la cual pertenece un rango EntireRo: 7epresenta toda la fila a la cual pertenece un rango !ont 7epresenta la fuente del 7ango !ormula 2rmula de las celdas de un rango 3as!ormula #erdadero si la celda o rango tiene una frmula, falso en caso contrario Offset -ermite desplazarse en forma relativa con respecto a una celda o un rango -or ejemplo : +ange$1A23%&))set$242%!elect 1on este cdigo se seleccionar+ la celda I$4J, ya que el 0ffset es de 3 columna y 3 fila. Resi;e -ermite redefinir el tama=o de un rango Ro: -osicin de fila en la que empieza el 7ango Ro:s 2ilas que componen un rango Select 'elecciona el rango especificado Te.t ;exto contenido en las celdas de un rango DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Value #alor contenido en las celdas de un rango Ejemplo: Copiar (a"la En el siguiente ejemplo se desea copiar en valores los datos de la tabla anterior desde la <oja3 a la <oja4 !os datos se copiar+n en la misma posicin que la tabla original". -ara esto se determina el rango que representa la tabla !-ropiedades End0XlDo:n2 y CurrentRe#ion". uego se determina la posicin de la primera fila y la primera columna del rango que representa la tabla !-ropiedades Ro: y Column" para luego pegar en la misma posicin de la <oja4 los datos. uego realizamos la copia !M5todo Co'/" y se pegan en la <oja4 los datos en valores !M5todo PasteS'ecial" en la misma posicin que la tabla original de la <oja3. -ara especificar la posicin en que comienza la tabla se utiliza el objeto Cells, el cual representa una celda, la instruccin: 4or5s,eets(B!oAa+B).Range(ells(fila*columna).Address) Oue representa la celda determinada por el contenido de las variables fila y columna !En el ejemplo se representa a la celda %3 de la <oja4, fila es igual a 3 y columna es igual a 3". %l objeto Ran#e es necesario pasarle la direccin de la celda !-ropiedad Address" de lo contrario se produce un error. 1digo: &ub opiatabla() ;imrngtable As Range ;im fila ;im columna &et rngtable / 4or5s,eets(B!oAa'B).Range(BA'B).End((l;oJn).urrentRegion K&e determina la fila 1 la columna en que comienza el rango fila / rngtable.RoJ columna / rngtable.olumn rngtable.op1 K&e utiliza el obAeto ellsque representa a una celda 1 requiere comoargumento Kla posicin de fila 1 columna de la celda 4or5s,eets(B!oAa+B).Range(ells(fila*columna).Address).Paste&pecial ((lPasteValues) End &ub >f......Else a instruccin If permite introducir condiciones en la ejecucin del cdigo. 'intaxis: "fcondicin%,en (cdigo ') DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II Else (cdigo +) EndI)
El cdigo anterior se interpreta de la siguiente forma: Si la condicin es verdadera, Entonces ejecute el cdigo 3, sino ejecute el cdigo 4. ;ambi5n es posible incorporar m+s de una condicin y anidar: I)condicin' Andcondicin+(/en =cdigo '> Else I)condicinI(/en =cdigo +> Else =cdigo I> EndI) End"f
El cdigo anterior se interpreta de la siguiente forma: Si la condicin'< la condicin+ son verdaderas, Entonces ejecute el cdigo 3, De lo contrario, Si la condicin I es verdadera, Entonces ejecute el cdigo 4, De lo contrario ejecute el cdigo 6. El comando And puede reemplazarse por Or, esto significar&a que el cdigo 3 se ejecutar+ si la condicin' o si la condicin+ es verdadera !1on que una de las dos sea verdadera es suficiente".
Ejemplo Restar )alor menor con ma1or )alor El obAeti)o es lograr que entre dos )alores* siempre se reste al ma1or )alor* el menor )alor de los dos. El procedimiento toma los )alores de las celdas 7A+9 1 7AI9 1 los compara entre s0 para poder restar el menor )alor al ma1or )alor* el resultado se despliega en la celda 7AH9 1digo: &ub Resta?enor() ;im )alor' As 6ong ;im )alor+ As 6ong ;im )alorI As 6ong K&e obtienen )alores desde la !oAa ' )alor' / 4or5s,eets(B!oAa'B).Range(BA+B) )alor+ / 4or5s,eets(B!oAa'B).Range(BAIB) K&e comparan los )alores "f )alor' > )alor+ %,en )alorI / )alor' L )alor+ Else )alorI / )alor+ L )alor' End"f K&e asigna a la celda H el resultado DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II 4or5s,eets(B!oAa'B).Range(BAHB) / )alorI End &ub ForNext El commando!or=.)e.tpermite repetir una accin las veces que deseemos. Sinta.is+ For)alor/' %o n&tep 5 (cdigo) 2e(t)alor
El cdigo anterior se interpreta: 7epetir el cdigo incrementando, a partir del valor 3, increment+ndose en 8, *asta alcanzar el valor n. 'i se omite la sentencia ISte' KJ, por defecto se incrementar+ en 3 el valor de la variable en cada ciclo, es decir, por defecto el valor de K es 3. EAemplo ;uplica registro anterior El eAemplo consiste en crear una lista a partir de un )alor inicial* en la cual cada )alor serM el doble del anterior. 6a lista se encuentra en la columna 7B9 de la !oAa' 1 el )alor inicial se encuentra en la celda 7F+9* el @ltimo )alor estarM en la celda 7F''9. El procedimiento consiste en recorrer las celdas desde la 7F+9 ,asta la 7F''9 1 calcular el nue)o registro en base al anterior. &ub ;upli() For i / ' %o '< KEl )alor actual serM igual al )alor multiplicado por + 4or5s,eets(B!oAa'B).ells(i* ') / i N + 2e(t End &ub !or Eac"....)e.t -ermite recorrer los objetos que componen otro objeto. 'intaxis: ForEac,omponente"n#bAeto (cdigo) 2e(t El cdigo anterior se interpreta de la siguiente forma: -ara cada componente del objeto especificado, ejecute el cdigo. 1ombinaciones de componente y objeto podr&an ser: 1omponente 0bjeto ibro (orKbooKs <oja(orKs*eets 1elda 7ange Ejemplos +ecorrer 5o6as 0 7istar Nom"res DOCENTE: Lic. Enrique Crdenas Daz OFIMTICA EMPRESARIAL II El objetivo es recorrer las *ojas del libro de trabajo activo y listar sus nombres en la primera columna de la <oja 6. &ub 6ista!oAas() i / < For Eac, ,oAa "n 4or5s,eets i / i G ' 4or5s,eets(B!oAaIB).ells(i* ') / ,oAa.2ame 2e(t End &ub -/ile-end Este comando permite ejecutar una accin *asta que se cumpla una condicin determinada. 'intaxis: 4,ilecondicin (digo) -end
El cdigo anterior se interpreta de la siguiente forma:7ealice el cdigo Mientrasse cumpla la condicin. Ejemplo: 9%icar el cursor so%reel4ltimo re#istro de una lista. El o%(etio es recorrer una lista situada en la 'rimera columna de la 3o(a1 "asta encontrar el 4ltimo re#istro.
&ub OltimoReg'() i / ' 4,ile 4or5s,eets(B!oAaIB).ells(i* ').Value => BB 4or5s,eets(B!oAaIB).ells(i* ').&elect i / i G ' 4end End &ub DOCENTE: Lic. Enrique Crdenas Daz