Sie sind auf Seite 1von 20

OFIMTICA EMPRESARIAL II

DOCENTE: Lic. Enrique Crdenas Daz


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

Das könnte Ihnen auch gefallen