Upload
julio-ochoa
View
333
Download
3
Embed Size (px)
Citation preview
7/23/2019 VBA Excel.pdf
1/26
Informtica Facultad de Ingeniera - UNNE 1
MS-Excel - VBA
Comprendiendo objetos, propiedades,
mtodos y eventosUn objeto representa un elemento de una aplicacin, como una hoja de clculo, una
celda, un diagrama, un formulario o un informe. En cdigo de Visual Basic, un objeto
debe identificarse antes de que se pueda aplicar uno de los mtodos del objeto o
camb iar el valor de un a de sus propiedades.
Una coleccin es un objeto que contiene varios objetos que normalmente, pero no
siempre, son del mismo tipo. En Microsoft Excel, por ejemplo, el objeto Workbooks
contiene todos los objetos Workbook abiertos. En Visual Basic, la coleccin Formscontiene tod os los ob jeto s Form existen tes e n una ap licacin.
Los elementos d e u na coleccin se pueden ide ntificar mediante su n mero o su nombre.
Por ejemplo, en el siguiente procedimiento, Libro(1) identifica al primer objeto
Workbookabierto.
Sub CierraPrimero()Libro(1).Close
End Sub
El sigu iente p roced imiento utiliza un nombre e specificado como cade na p ara ident ificar
un objeto Form .
Sub CierraForm()Forms("MiForm.frm").Close
End Sub
Tambin es posible operar al mismo tiempo sobre toda una coleccin de objetos
siempre que los objetos compartan mtodos comunes. Por ejemplo, el siguiente
procedimiento cierra todos los fo rmularios abiertos.
Sub CierraTodos()Forms.Close
End Sub
Mtodo es toda accin que puede realizar un objeto. Por ejemplo, Add es un mtodo
del objeto ComboBox ya que sirve para aadir un nuevo elemento a un cuadro
combinado.
El siguiente procedimiento utiliza e l mto do Add para aadir un nuevo elemento a un
ComboBox.
Sub AadeElemen(nuevoElemento as String)Combo1.Add nuevoElemento
http://hhobj_5.click%28%29/http://hhobj_6.click%28%29/http://hhobj_6.click%28%29/http://hhobj_5.click%28%29/7/23/2019 VBA Excel.pdf
2/26
Informtica Facultad de Ingeniera - UNNE 2
End Sub
Propiedad es un atributo de un objeto que define una de las caractersticas del objeto,
tal como su tamao, color o localizacin en la pantalla, o un aspecto de su
comp ortamiento, po r ejemplo si est visible o activado. Para camb iar las caractersticas
de un o bjeto, se cambia el valor de sus propiedade s
Para d ar valor a una p ropiedad, hay que colocar un punto detrs d e la referencia a un
objeto, despus el nombre de la propiedad y finalmente el signo igual (= ) y el nuevo
valor de la propiedad. Por ejemplo, el siguiente procedimiento cambia el ttulo de un
formulario de Visual Basic dando un valor a la propiedad Caption.
Sub CambiaNombre(nuevoTitulo)miForm.Caption = nuevoTitulo
End Sub
Hay propiedad es a las que n o se p ued e d ar valor. El tema de ayuda de cada propiedadindica si es posible leer y dar valores a la propiedad (lectura/escritura), leer slo el valor
de la p ropiedad (slo lectura) o s lo d ar valor a la p ropiedad (slo escritura).
Se puede obtener informacin sobre un objeto devolviendo el valor de una de sus
propied ades. El sigu ien te procedimiento ut iliza un cuadro de dilogo para presentar el
ttulo que aparece en la parte superior de l formulario a ctivo e n ese mome nto.
Sub NombreFormEs()formNonmbre = Screen.ActiveForm.CaptionMsgBox formNombre
End Sub
Evento es to da accin que puede ser reconocida por un objeto, como puede ser el clic
del mouse o la pulsacin de una tecla, y para la que es posible escribir cdigo como
respuesta. Los evento s pue den ocurrir como resultado de una accin d el usuario o d el
cdigo del programa, tambin pueden ser originado s por el sistema.
Para un mejor conocimiento de los conceptos: procedimiento, objeto, propiedades,
mtodo s y evento s, ver en e l glosario.
Ejemplo de un procedimiento:
Sub Command125_Click ()Range("A2").Value= 7
Application.Close
End Sub
"Sub" es el procedimiento; "Command125_Click" es el evento; "Range ("A2")" y
"App lication" son ob jeto s; "Value" es u na prop ied ad , y "Close" es u n m to do .
Este procedimiento dice que cuando el usuario clickee sobre el botn de comando125, la celda A2 tome el valor de 7, y luego cierre la aplicacin (salir de Excel).
7/23/2019 VBA Excel.pdf
3/26
Informtica Facultad de Ingeniera - UNNE 3
Reglas de asignacin de nombres en
Visual BasicPara dar nombre a procedimientos, constantes, variables y argumentos en un mdulo
de Visual Basic han de seguirse las siguientes reglas:
El primer carcter de be ser una letra. En el nombre no se pueden utilizar espacios, puntos (.), signos de interjeccin (!),
ni los caracteres @, &, $,# .
El nombre no pued e tener ms de 255 caracteres de longitud. Como regla general, no se deben usar nombres iguales a los de los
procedimientos Function , instrucciones y mtodos de Visual Basic. No obstante
puede utilizar las mismas palabras clave que utiliza el lenguaje. Para utilizar una
funcin intrnseca del lenguaje, o una instruccin o mtodo, cuyo nombre
coincide con uno de los nombres asignados, es preciso entonces identificarlos
explcitamente. Para ello se sita delante del nombre de la funcin intrnseca,
instruccin o mtodo, el nombre de la biblioteca de tipos asociada. Por ejemplo,
si utiliza una variable llamada Left, la nica forma de utilizar la funcin Left es
escribiendo VBA.Left.
Los no mbres no se p uede n repe tir dentro del mismo n ivel de alcance. Porejemplo, no se pueden declarar dos variables con el nombre edad dentro del
mismo procedimiento. Sin embargo, se puede declarar una variable privada edad
y una variable de nivel de p roced imiento llamada edad dent ro del mismo m dulo.
Nota: Visual Basic no diferencia entre maysculas y minsculas, pero respeta la
forma en que se escriben las instrucciones de declaracin de nombres.
Declaracin de variables
Para declarar variables se utiliza normalmente una instruccin Dim . La instruccin de
declaracin puede incluirse en un procedimiento para crear una variable de nivel de
procedimiento. O puede colocarse al principio de un mdulo, en la seccin Declarations,
para crear una variab le d e nivel de md ulo.
El siguiente ejemplo crea la variable NombreTexto y especficamente le asigna el tipo de
datos String.
http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_5.click%28%29/http://hhobj_6.click%28%29/http://hhobj_7.click%28%29/http://hhobj_8.click%28%29/http://hhobj_9.click%28%29/http://hhobj_10.click%28%29/http://hhobj_11.click%28%29/http://hhobj_12.click%28%29/http://hhobj_13.click%28%29/http://hhobj_14.click%28%29/http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_4.click%28%29/http://hhobj_5.click%28%29/http://hhobj_6.click%28%29/http://hhobj_7.click%28%29/http://hhobj_7.click%28%29/http://hhobj_7.click%28%29/http://hhobj_7.click%28%29/http://hhobj_7.click%28%29/http://hhobj_6.click%28%29/http://hhobj_5.click%28%29/http://hhobj_4.click%28%29/http://hhobj_4.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/http://hhobj_14.click%28%29/http://hhobj_13.click%28%29/http://hhobj_12.click%28%29/http://hhobj_11.click%28%29/http://hhobj_10.click%28%29/http://hhobj_9.click%28%29/http://hhobj_8.click%28%29/http://hhobj_7.click%28%29/http://hhobj_6.click%28%29/http://hhobj_5.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/7/23/2019 VBA Excel.pdf
4/26
Informtica Facultad de Ingeniera - UNNE 4
Dim NombreTexto As String
Si esta instruccin aparece dentro de un procedimiento, la variable NombreTexto se
puede usar s lo en ese procedimiento . Si la instruccin aparece en la seccin
Declarations del mdulo, la variable NombreTexto estar disponible en todos los
procedimientos dentro del m dulo, pero para los restantes mdulos del proyecto. Para
hacer que esta variable est disponible para todos los procedimientos de un proyecto,
basta con comenzar la declaracin con la instruccin Public, tal y como muestra el
siguiente ejemplo:
Public NombreTexto As String
Si desea ms informacin sobre cmo dar nombre a sus variables, puede consultar la
seccin "Visual Basic Naming Rules" en la Ayuda de Visual Basic.
Las variables se pu ede n d eclarar como d e u no de los siguientes tipos de dato s: Boolean,
Byte , Integer, Long , Currency, Single , Double , Date , String (para cad enas d e longitud
variable), String * longitud (para cadenas de longitud fija), Object, o Variant. Si no se
especifica el tipo de datos, el tipo de datos Variant es el predefinido. Tambin es
posible crear un tipo definido por el usuario empleando la instruccin Type . Si desea
ms informacin sobre tipos de datos puede consultar la seccin "Tipo de datos
Summary" en la Ayuda de Visual Basic.
Se pueden declarar varias variables en una instruccin. Para especificar el tipo de datos
se debe incluir un tipo de datos para cada variable. En la siguiente instruccin se
declaran las variables intX, intY, e intZ como del tipo Integer.
Dim intX As Integer, intY As Integer, intZ As Integer
En la siguiente instruccin , intX e intY se de claran como de l tipo Variant; y slo intZ se
declara como del tipo Integ er.
Dim intX, intY, intZ As Integer
No es necesario esp ecificar el tipo de datos en la instruccin de declaracin. Si se omite ,
la variable ser del tipo Variant.
Utilizar la instruccin Public
La instruccin Public se puede utilizar para declarar variables pblicas de nivel de
mdulo.
Public NombreTexto As String
Las variables pblicas se pueden usar en cualquier procedimiento del proyecto. Si una
variable pb lica se declara en un mdulo estndaro en un md ulo de clase, tambin se
podr usar en los proyectos referenciad os por el p royecto en que se declara la variab le
pblica.
Utilizar la instruccin Private
http://hhobj_8.click%28%29/http://hhobj_9.click%28%29/http://hhobj_10.click%28%29/http://hhobj_11.click%28%29/http://hhobj_11.click%28%29/http://hhobj_10.click%28%29/http://hhobj_9.click%28%29/http://hhobj_8.click%28%29/7/23/2019 VBA Excel.pdf
5/26
Informtica Facultad de Ingeniera - UNNE 5
La instruccin Private se pued e usar para de clarar variab les privadas de nivel de m dulo,
no dentro de procedimientos (all se declara con Dim y las variables siempre son
privad as a l procedimiento).
Private MiNombre As String
Las variab les Private pued en ser usad as nicamente po r procedimientos pe rtene cientesal mismo mdulo.
Nota: Cuando se utiliza a nivel de mdulo, la instruccin Dim es equivalente a la
instruccin Private. Sera aconsejable usar la instruccin Private para facilitar la lectura
y comprensin del cdigo.
Utilizar la instruccin Static
Cuando se utiliza la instruccin Static en lugar de la instruccin Dim , la variable
declarada mantendr su valor ent re llamadas sucesivas.
Utilizar la instruccin Option Explicit
En Visual Basic se puede declarar implcitamente una variable usndola en una
instruccin de asignacin. Tod as las variables q ue se de finen implcitam ente son de l tipo
Variant . Las variab les d el tipo Variant consumen ms recursos d e memo ria q ue la m ayor
parte de las otros tipo s de variab les. Su aplicacin se r ms eficiente si se declaran
explcitamente las variables y se les asigna un tipo de datos especfico. Al declararse
explcitamente las variables se reduce la posibilidad de errores de nombres y el uso de
nombres errneos.
Si no desea que Visual Basic realice declaraciones implcitas, puede incluir en un mdulo
la instruccin Option Explicit antes d e tod os los procedimientos. Esta instruccin exige
que todas las variables del mdulo se declaren explcitamente. Si un mdulo incluye la
instruccin Option Explicit, se producir un error en tiempo de compilacin cuando
Visual Basic encuentre un nombre de variable que no ha sido previamente declarado, o
cuyo nomb re se ha escrito incorrectamente.
Se puede seleccionar una opcin del entorno de programacin de Visual Basic para
incluir automticamente la instruccin Option Explicit en todos los nuevos mdulos.
Consulte la documentacin de su aplicacin para encontrar la forma de modificar las
opciones de entorno de Visual Basic. Tenga en cuenta que esta opcin no tiene ningn
efecto sobre el cdigo q ue se haya escrito con an terioridad .
Nota: Las matrices fijas y dinmicas siempre se tiene que declarar explcitamente.
Declaracin de matrices
http://hhobj_12.click%28%29/http://hhobj_12.click%28%29/7/23/2019 VBA Excel.pdf
6/26
Informtica Facultad de Ingeniera - UNNE 6
Las matrices se declaran igual que las restantes variables, utilizando instrucciones Dim ,
Static, Private, o Public. La diferencia ent re las variab les escalares (aquellas q ue no son
matrices) y las variables matriz es que normalmente se debe especificar el tamao de la
matriz. Una m atriz con un t amao especificado es un a matriz de tam ao fijo. Una m atriz
cuyo tamao puede cambiar mientras el programa se est ejecutando es una matriz
dinmica.
Si una matriz se indexa desde 0 desde 1 depende del valor de la instruccin Option
Base . Si Option Base 1 no se especifica, todos los ndices de matrices comienzan en
cero.
Declarar una matriz fija
En la siguiente lnea de cdigo se declara como matriz Integer una matriz de tamao
fijo con 11 filas y 11 columnas:
Dim MiMatriz(10, 10) As Integer
El primer argumento corresponde al nmero de filas y el segundo al nmero de
columnas.
Como sucede en cualquier otra declaracin de variable, a menos que se especifique
para la matriz un tipo de datos, los elementos de sta sern del tipo Variant. Cada
elemento numrico Variant de la matriz utiliza 16 bytes. Cada elemento de cadena
Variant utiliza 22 bytes. Para escribir cdigo de la forma ms compacta posible, debe
declarar explcitamente sus matrices con un tipo de datos distinto a Variant. Las
siguientes lneas de cdigo comparan el tamao de varias matrices:
' Una matriz Integer utiliza 22 bytes (11 elementos * 2 bytes).ReDim MiMatrizInteger(10) As Integer
' Una matriz Double-precision utiliza 88 bytes (11 elementos * 8 bytes).ReDim MiMatrizDoble(10) As Double
' Una matriz Variant utiliza al menos 176 bytes (11 elementos * 16 bytes).ReDim MiMatrizVariant(10)
' La matriz Integer utiliza 100 * 100 * 2 bytes (20.000 bytes).ReDim MiMatrizInteger(99, 99) As Integer
' La matriz Double-precision utiliza 100 * 100 * 8 bytes (80.000 bytes).ReDim MiMatrizDoble (99, 99) As Double
' La matriz Variant utiliza al menos 160.000 bytes (100 * 100 * 16 bytes).ReDim MiMatrizVariant(99, 99)
El tamao mximo de una matriz depende del sistema operativo y de la cantidad de
memoria disponible. Es ms lento utilizar una matriz que sobrepasa la cantidad de
memo ria RAM dispo nible en el sistem a ya que los d ato s tienen q ue ser ledos y escritos
de l disco.
Declarar una m atriz dinmica
http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_5.click%28%29/http://hhobj_5.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/7/23/2019 VBA Excel.pdf
7/26
Informtica Facultad de Ingeniera - UNNE 7
Al declarar una matriz dinmica se puede cambiar el tamao de una matriz mientras
que el cdigo se est ejecutando. Para declarar una matriz dinmica se usan las
instrucciones Static, Dim, Private, o Public, dejando los parntesis vacos, tal y como se
muestra en el siguiente ejemplo.
Dim MatrizSingle() As Single
Nota: Se puede usar la instruccin ReDim para declarar implcitamente una matriz
dentro de un procedimiento. Tenga cuidado para no cambiar el nombre de la matriz
cuando use la instruccin ReDim , ya que se crear una segunda matriz incluso en el
caso d e q ue se haya incluido la instruccin Option Explicit en el mdulo.
La instruccin ReDim se puede utilizar en un procedimiento, dentro del alcance de la
matriz, para cambiar el nmero de dimensiones, definir el nmero de elementos y para
definir los lmites supe rior e inferior p ara cada dimensin. Se pue de usar la instruccin
ReDim para modificar la matriz dinmica cuantas veces sea necesario. Sin embargo,cada vez que se hace, se pierden los valores almacenados en la matriz. Se puede usar la
instruccin ReDim Preserve para ampliar una matriz conservando los valores que
contiene. Por ejemplo, la siguiente instruccin aade 10 nuevos elementos a la matriz
MatrizVar sin pe rder los valores almacenad os en los e lementos o riginales.
ReDim Preserve MatrizVar(UBound(MatrizVar) + 10)
Nota: Cuando se utiliza la palab ra clave Preserve con una matriz dinmica, slo se
puede cambiar el lmite superior de la ltima dimensin, no pud iendo modificarse el
nmero de dimensiones.
Declaracin de constantes
Al declarar una constante, se puede asignar a un valor un nombre que tenga algn
sign ificado ap rop iad o. La instruccin Const se u tiliza para de clarar una constante y darle
valor. Una constante no puede modificarse o cambiar de valor una vez que ha sido
declarada.
Se puede declarar una constante dentro de un procedimiento o al principio de un
mdulo, en la se ccin de Declarations. Las constan tes a nivel de mdulo son privadas, a
menos que se especifique lo contrario. Para declarar una constante pblica a nivel de
mdulo, la instruccin Const debe ir precedida por la palab ra clave Public. Se puede
declarar explcitamente una constante como privada colocando la palabra clave Private
antes de la instruccin Const para facilitar la lectura y comprensin del cdigo. Si desea
ms informacin, consulte la seccin "Comprender el alcance y la visibilidad" en la
Ayuda de Visual Basic.
El siguiente ejemp lo declara la constante PublicEdadCon como un Integer y le a signa el
valor34.
http://hhobj_6.click%28%29/http://hhobj_7.click%28%29/http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_5.click%28%29/http://hhobj_6.click%28%29/http://hhobj_7.click%28%29/http://hhobj_7.click%28%29/http://hhobj_6.click%28%29/http://hhobj_5.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/http://hhobj_7.click%28%29/http://hhobj_6.click%28%29/7/23/2019 VBA Excel.pdf
8/26
Informtica Facultad de Ingeniera - UNNE 8
Public Const EdadCon As Integer = 34
Las constantes se pued en d eclarar de uno de los siguientes tipos d e d atos: Boolean,
Byte , Integer, Long , Currency, Single , Double , Date , String , o Variant. Dado q ue ya se
conoce el valor de una constante, es muy fcil elegir el tipo de datos en la instruccin
Const. Si desea ms informacin sobre tipos de datos, consulte la seccin "Tipo de
datos" en la Ayuda de Visual Basic.
En un a so la instruccin se p ued en declarar varias constantes. Para espe cificar un t ipo de
datos, deb e incluirse e l tipo de d ato s para cada constante . En la siguiente instruccin se
declaran como Integer las constantes EdadCon y SalarioCon.
Const EdadCon As Integer = 34, SalarioCon As Currency = 35000
Creando procedimiento s recursivos
Los procedimientos tienen un espacio limitado para almacenarvariables. Cada vez que
un procedimiento se llama a s mismo, consume ms de ese espacio. Un procedimiento
que se llama a s mismo es lo que se conoce como un procedimiento recursivo. Un
procedimiento recursivo que se llama cont inuamente a s mismo producir finalmente
un e rror. Por ejemplo:
Function Agotar(Mximo)Agotar = Agotar(Mximo)
End Function
Este error puede resultar menos evidente cuando dos procedimientos se llaman uno al
otro de forma indefinida, o cuando nunca se cumple la condicin definida como fin de
un b ucle. Las funciones recursivas tienen diverso s usos. Por ejemplo, el siguiente
procedimiento utiliza u na funcin recursiva para calcular e l facto rial:
Function Factorial (N)If N
7/23/2019 VBA Excel.pdf
9/26
Informtica Facultad de Ingeniera - UNNE 9
Un nuevo estudio de la lgica del procedimiento. A menudo es posible sustituirbucles anidados p or un procedimiento recursivo.
Creando bucles mediante cdigo
Mediante el uso de instrucciones condicionales e instrucciones de bucle (tambin
conocidas como estructuras de control) es posible escribir cdigo de Visual Basic que
tome decisiones y repita determinadas acciones. Otra estructura de control til, la
instruccin With, permite e jecuta r una serie d e instruccione s sin necesidad de recalificar
un objeto.
Utilizar instrucciones co ndicionales para tomar decisione s
Las instrucciones condicionales evalan si una condicin es True o False (verdadera o
falsa) y a cont inuacin especifican las instruccione s a ejecutar en funcin de l resultado .
Normalmente, una cond icin es una expresin que utiliza un operador de comparacinpara comparar un valor o variable con otro.
Eleg ir la instruccin condicional a utilizar:
If...Then...Else: salta a u na instruccin cuando una con dicin es True o False Select Case: seleccin de la instruccin a ejecutar en funcin de un conjunto de
condiciones
Utilizar bucles para repetir cdigo
Empleando bucles es posible ejecutar un grupo de instrucciones de forma repetida.
Algunos bucles repiten las instrucciones hasta que una condicin es False, otros las
repiten hasta q ue la cond icin es True . Hay tambin bu cles q ue repiten un conjunto de
instrucciones un nmero determinado de veces o una vez para cada objeto de una
coleccin.
Eleg ir el bucle a ut ilizar:
Do...Loop: sigue en e l bucle mient ras o hasta una condicin sea True . For...Next: utiliza un contador para ejecutar las instrucciones un nmero
determinado de veces. For Each...Next: repite e l grupo de instrucciones p ara cada uno de los ob jeto s de
una coleccin .
Ejecutar varias instruccione s so bre e l mismo objeto
Normalmente, en Visual Basic, debe esp ecificarse un objeto antes d e poder e jecutar uno
de sus mtodos o cambiar una de sus propiedades. Se puede usar la instruccin With
para esp ecificar un objeto una so la vez para una serie completa de instruccione s.
With: Ejecuta r una se rie d e instruccione s sobre el mismo objeto
Utilizando instrucciones If...Then...Else
http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_5.click%28%29/http://hhobj_6.click%28%29/http://hhobj_7.click%28%29/http://hhobj_8.click%28%29/http://hhobj_9.click%28%29/http://hhobj_9.click%28%29/http://hhobj_8.click%28%29/http://hhobj_7.click%28%29/http://hhobj_6.click%28%29/http://hhobj_5.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/7/23/2019 VBA Excel.pdf
10/26
Informtica Facultad de Ingeniera - UNNE 10
Se puede usar la instruccin If...Then...Else para ejecutar una instruccin o bloque de
instrucciones determinadas, dependiendo del valor de una condicin. Las instrucciones
If...Then...Else se pueden anidar en tantos niveles como sea necesario. Sin embargo,
para ha cer ms leg ible el cdigo es aconse jab le siempre que se pueda utilizar una
instruccin Select Case en vez de recurrir a mltiples niveles de instrucciones
If...Then...Else anidadas.
Ejecutar una so la instruccin cuando una co ndicin e s True:
Para ejecutar una sola instruccin cuando una condicin es True , se puede usar la
sintaxis de lnea nica de la instruccin If...Then...Else. El siguiente ejemplo muestra la
sintaxis de lnea nica, en la qu e se omite el uso d e la palabra clave Else :
Sub FijarFecha()miFecha = #13/2/95#If miFecha < Now Then miFecha = Now
End Sub
Para ejecutar ms de una lnea de cdigo, es preciso utilizar la sintaxis de mltiples
lneas. Esta sintaxis incluye la inst ruccin End If, tal como muestra e l siguiente ejemp lo:
Sub AvisoUsuario(valor as Long)If valor = 0 Then
Aviso.ForeColor = "Red"Aviso.Font.Bold = TrueAviso.Font.Italic = True
End IfEnd Sub
Ejecutar unas instrucciones de terminadas si una co ndicin e s True y e jecutar otras
si es False:
Use una instruccin If...Then...Else para definir do s bloq ues de instruccione s ejecutab les:
un bloque que se ejecutar cuando la cond icin es True y el otro que se ejecutar si la
cond icin es False .
Sub AvisoUsuario(valor as Long)If valor = 0 Then
Aviso.ForeColor = vbRedAviso.Font.Bold = TrueAviso.Font.Italic = True
ElseAviso.Forecolor = vbBlackAviso.Font.Bold = FalseAviso.Font.Italic = False
End IfEnd Sub
Comprobar una seg unda condicin si la prime ra condicin es False:
Se pueden aadir instrucciones ElseIf a una instruccin If...Then...Else para comprobar
una segunda condicin si la primera es False. Por ejemplo, el siguiente procedimiento
funcin calcula una bonificacin salarial dependiend o de la clasificacin de l trabajador.
La instruccin que sigue a la instruccin Else slo se ejecuta cuando las condiciones de
todas las restantes instrucciones Ify ElseIfso n False .
http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/7/23/2019 VBA Excel.pdf
11/26
Informtica Facultad de Ingeniera - UNNE 11
Function Bonificacin(rendimiento, salario)If rendimiento = 1 Then
Bonificacin = salario * 0.1ElseIf rendimiento = 2 Then
Bonificacin= salario * 0.09ElseIf rendimiento = 3 Then
Bonificacin = salario * 0.07Else
Bonificacin = 0End If
End Function
Utilizar instrucciones For...Next
Las instrucciones For...Next se pueden utilizar para repetir un bloque de instrucciones
un nm ero dete rminad o de veces. Los bu cles For usan una variable contado r cuyo valor
se aum enta o d isminuye cad a vez que se e jecuta e l bucle.
El siguien te procedimiento hace que el equipo emita u n son ido 50 veces. La instruccin
For determina la variable contador x y sus valores inicial y final. La instruccin Next
incrementa el valor de la variab le con tad or en 1.
Sub Bips()For x = 1 To 50
BeepNext x
End Sub
Mediante la palabra clave Step, se puede aumentar o disminuir la variable contador enel valor que se d esee. En e l sigu iente ejemplo, la variab le co ntad orj se increme nta en 2
cada vez que se repite la ejecucin del bucle. Cuando el bucle deja de ejecutarse, total
representa la suma de 2, 4, 6, 8 y 10.
Sub DosTotal()For j = 2 To 10 Step 2
total = total + jNext jMsgBox "El total es " & total
End Sub
Para disminuir la variable contador utilice un valor negativo en Step. Para disminuir la
variable contado r es preciso especificar un valor final que sea menor que el valor inicial.
En el siguiente ejemplo, la variable contadormiNum se disminuye en 2 cada vez que se
repite el bucle. Cuando termina la ejecucin del bucle, total representa la suma de 16,
14, 12, 10, 8, 6, 4 y 2.
Sub NuevoTotal()For miNum = 16 To 2 Step -2
total = total + miNumNext miNum
MsgBox "El total es " & totalEnd Sub
http://hhobj_3.click%28%29/http://hhobj_4.click%28%29/http://hhobj_5.click%28%29/http://hhobj_6.click%28%29/http://hhobj_6.click%28%29/http://hhobj_5.click%28%29/http://hhobj_4.click%28%29/http://hhobj_3.click%28%29/7/23/2019 VBA Excel.pdf
12/26
Informtica Facultad de Ingeniera - UNNE 12
Nota: No es necesario incluir el nombre de la variable contador despus de la
instruccin Next. En los ejemplos anteriores, el nombre de la variable contador se ha
incluido para facilitar la lectura del cdigo .
Se puede abandonar una instruccin For...Next antes de que el contador alcance su
valor final, para ello se utiliza la instruccin Exit For.
Instruccin SETSetvariable_objeto= {[New] expresin_objeto | Nothing }
La sintaxis de la instruccin Set consta d e las siguientes pa rtes:
Parte Descripcin
variable_objeto Requerido. Nombre de la variable o de la propiedad; sigue lasconvenciones estnd ar de nomb res de variables.
New Opcional. New se utiliza normalmente durante una declaracin
para permitir la creacin imp lcita de un objeto. Cuand o utiliza
Ne w con la instruccin Set se crea una nueva instancia de la
clase. Si variable_objeto contena una referencia a un objeto,
esta referencia se libera cuand o se asigna el nuevo ob jeto. La
palab ra clave Ne w no se puede utilizar para crear nuevas
instancias de cualquier tipo de datos intrnseco ni para crear
objetos depe ndientes.
expresin_objeto Requerido. Expresin que consiste en el nombre de un objeto,
otra variable declarada del mismo tipo de objetos, o una
funcin o mtodo que devuelve un objeto del mismo tipo de
objeto.
Nothing Opcional. Interrumpe una asociacin de variable_objeto con
cualquier objeto especfico. Al asignar Nothing a
variable_objeto se liberan todos los recursos del sistema y de
memoria asociados con el objeto al que se hizo referenciapreviamente cuando ninguna otra variab le se refiere a l.
Comentarios
Para ser vlido, variable_objeto debe ser un tipo de objeto coherente con el objeto que
se le ha asignad o.
Las instrucciones Dim , Private, Public, ReDim y Static slo declaran una variable que
se refiere a un objeto. No se har referencia a ningn objeto real hasta que use la
instruccin Set para asignar un ob jeto especfico.
http://hhobj_6.click%28%29/http://hhobj_7.click%28%29/http://hhobj_8.click%28%29/http://hhobj_9.click%28%29/http://hhobj_10.click%28%29/http://hhobj_11.click%28%29/http://hhobj_11.click%28%29/http://hhobj_10.click%28%29/http://hhobj_9.click%28%29/http://hhobj_8.click%28%29/http://hhobj_7.click%28%29/http://hhobj_6.click%28%29/7/23/2019 VBA Excel.pdf
13/26
Informtica Facultad de Ingeniera - UNNE 13
El siguiente ejemplo ilustra el uso de Dim para declarar una matriz del tipo Form1.
Actualmente no existe ninguna instancia de Form1. Set asigna referencias a nuevas
instancias de Form1 a la variable misFormulariosSecundarios. Este cdigo se podra
utilizar para crear formularios secundarios en una aplicacin MDI.Dim misFormulariosSecundarios(1 to 4) As Form1Set misFormulariosSecundarios(1) = New Form1
Set misFormulariosSecundarios(2) = New Form1Set misFormulariosSecundarios(3) = New Form1Set misFormulariosSecundarios(4) = Nwq Form1
Generalmente, cuando usa Set para asignar una referencia de objeto a una variable, no
se crea ninguna copia del objeto para esa variable. En su lugar se crea una referencia al
objeto. Ms de una variable de objeto se puede referir al mismo objeto. Puesto que
estas variab les so n referencias al ob jeto (no copias de l), cualquier cambio en el objeto
se refleja en todas las variables que se refieren a l. No obstante, cuando utiliza la
palab ra clave New en la instruccin Set, en realidad est creando una instancia del
objeto.
Conjunto Range
Rep resen ta un a celda, una fila, una co lumna, una seleccin d e celdas q ue contienen uno
o m s bloqu es contiguo s de celdas o un rang o 3D.
Uso del conjunto Range
Vamos a ver los siguientes m tod os y prop ied ades pa ra devolver un objeto Range :
Propiedad Range Propiedad Cells Range y Cells Propiedad Offset Mtodo Union
Propiedad Range
Use Range(arg), donde arg asigna un nombre al rango, para devolver un objeto Range
que represente una sola celda o un rango de celdas. El ejemplo siguiente coloca el valor
de la ce lda A1 en la ce lda A5.
Worksheets("Hoja1").Range("A5").Value = _Worksheets("Hoja1").Range("A1").Value
El ejemplo siguiente rellena el rango A1:H8 con nmeros aleatorios estableciendo lafrmula d e cad a celda d el rango . La p ropiedad Rang e, si se emp lea sin un calificado r de
objeto (un objeto colocado a la izquierda del punto), devuelve un rango de la hoja
http://hhobj_12.click%28%29/http://hhobj_13.click%28%29/http://hhobj_13.click%28%29/http://hhobj_12.click%28%29/7/23/2019 VBA Excel.pdf
14/26
Informtica Facultad de Ingeniera - UNNE 14
activa. Si la ho ja activa no e s una hoja de clculo, este mtod o no se llevar a cab o con
xito. Use el mtodo Activate para activar una ho ja de clculo antes de usar la
propied ad Range sin un calificador d e objeto explcito .
Worksheets("Hoja1").ActivateRange("A1:H8").Formula = "=Rand()" ' El rango est en la hoja activa
El ejemplo siguiente b orra el contenido del rang o d eno minado Criterios.Worksheets(1).Range("Criteria").ClearContents
Si usa un argume nto de texto para la direccin de l rango , deber esp ecificar la d ireccin
en notacin de estilo A1 (no p od r usar la n otacin F1C1).
Propiedad Cells
Use Cells(fila; columna), do nd e fila e s el nd ice d e fila y columna es el nd ice d e columna,
para devolver una so la celda . El ejemplo siguien te establece en 24 el valor de la celdaA1.
Worksheets(1).Cells(1, 1).Value = 24
El ejemplo siguiente establece la frmula de la celda A2.
ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"
Aunque tambin puede usar Range("A1") para devolver la celda A1, en algunas
ocasiones la propiedad Cells puede ser ms conveniente, ya que permite usar una
variable para la fila o la columna. El ejemplo siguiente crea encabezados de fila ycolumna en la Hoja1. Tenga en cuenta que, despus de activar la hoja de clculo, puede
usar la propiedad Cells sin una declaracin explcita de hoja (devuelve una celda de la
ho ja activa).
Sub SetUpTable()Worksheets("Hoja1").ActivateFor Ao = 1 To 5
Cells(1, Ao + 1).Value = 1990 + AoNext AoFor Cuarto = 1 To 4
Cells(Cuarto + 1, 1).Value = "Q" & CuartoNext CuartoEnd Sub
Aunque podra usar funciones de cadena de Visual Basic para modificar las referencias
de estilo A1, es mucho ms sencillo (y una mejor prctica de programacin) usar la
notacin Cells(1, 1).
Para devolver parte de un rango use expresin.Cells(fila; columna), donde expresin es
una expresin que devuelve un o bjeto Range yfila y columna son relativas a la e squina
supe rior izquierda de l rang o. El ejemplo sigu iente establece la frmula de la celda C5.
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"
7/23/2019 VBA Excel.pdf
15/26
Informtica Facultad de Ingeniera - UNNE 15
Ejemp los us ando la propiedad cel ls al objeto w orksheets
Este e jemplo e stablece en 14 punto s el tamao de fuente de la celda C5 de Hoja1.
Worksheets("Hoja1").Cells(5, 3).Font.Size = 14
Este e jem plo bo rra la frmula de la celda uno d e Hoja1.
Worksheets("Hoja1").Cells(1).ClearContents
Este e jemplo estab lece en Arial de 8 punto s la fuente y el tamao de fuen te de tod as las
celdas de Hoja1.
With Worksheets("Hoja1").Cells.Font.Name = "Arial".Size = 8
End With
Este ejemp lo ejecuta un bucle en las ce ldas A1:J4 de Hoja1. Si una d e las celdas con tiene
un valor meno r que 0,001, el ejemplo reemplazar d icho valor por cero (0).
For rwIndex = 1 to 4For colIndex = 1 to 10
With Worksheets("Hoja1").Cells(rwIndex, colIndex)If .Value < .001 Then .Value = 0
End WithNext colIndex
Next rwIndex
Este ejemp lo establece e l estilo de fuente de las celdas A1:C5 de Hoja1 como cursiva.Worksheets("Hoja1").ActivateRange(Cells(1, 1), Cells(5, 3)).Font.Italic = True
Este ejemplo examina una columna de datos denominada "miRango". Si una celda
contiene el mismo valor que la celda inmediatamente superior, el ejemplo mostrar la
direccin d e la celda q ue con tiene los dato s dup licado s.
Set r = Range("miRango")For n = 1 To r.Rows.Count
If r.Cells(n, 1) = r.Cells(n + 1, 1) Then
MsgBox "Hay duplicacin en " & r.Cells(n + 1, 1).AddressEnd If
Next n
Range y Cells
Para devolver un objeto Range use Range(celda1; celda2), donde celda1 y celda2 son
objetos Range que especifican las celdas inicial y final. El ejemplo siguiente establece el
estilo de lnea de los b orde s de las ce ldas A1:J10.
With Worksheets(1).Range(.Cells(1, 1), _
.Cells(10, 10)).Borders.LineStyle = xlThick
7/23/2019 VBA Excel.pdf
16/26
Informtica Facultad de Ingeniera - UNNE 16
End With
Observe el punto delante de cada propiedad Cells. El punto es necesario si el resultado
del enunciado With precedente se aplica a la propiedad Cells, en cuyo caso, se indica
que las celdas estn en la hoja de clculo uno (sin el punto, la propiedad Cells
de volvera las ce ldas de la ho ja activa).
Propiedad Offset
Use Offset(fila; colum na ), donde fila y columna son los desplazamientos de fila y
columna, para devolver un rango con un desp lazamiento especfico con respecto a otro.
El ejemplo siguiente selecciona la celda situada tres filas debajo y una columna a la
derecha de la celda de la esquina superior izquierda de la seleccin actual. No se puede
seleccionar una celda que no est en la hoja activa, por lo que primero deber activar la
hoja.
Worksheets("Hoja1").Activate'Can't select unless the sheet is active
Selection.Offset(3, 1).Range("A1").Select
Mtodo Union
Use Union(rango1, rango2, ...) para devolver rangos de varias reas, es decir, rangos
compuestos por dos o ms bloques contiguos de celdas. El ejemplo siguiente crea un
ob jeto d efinido como la unin d e los rangos A1:B2 y C3:D4 y, a continuacin, selecciona
el rang o d efinido.
Dim r1 As Range, r2 As Range, myMultiAreaRange As RangeWorksheets("Hoja1").ActivateSet r1 = Range("A1:B2")Set r2 = Range("C3:D4")Set myMultiAreaRange = Union(r1, r2)myMultiAreaRange.Select
La prop ied adAreases muy til para traba jar con se leccione s que contienen varias reas.
Divide una seleccin de varias reas en objetos Range individuales y despus devuelve
los ob jeto s en forma d e conjunto. Puede usar la p ropiedadCountdel conjunto devuelto
para comprobar una se leccin que contiene varias reas, como se muestra en elsiguiente ejemplo.
Sub NoMultiAreaSelection()NumberOfSelectedAreas = Selection.Areas.CountIf NumberOfSelectedAreas > 1 Then
MsgBox "No puede utilizar este comando " & _"en una seleccin multi-reas"
End IfEnd Sub
Otras propiedades y ejemplos
7/23/2019 VBA Excel.pdf
17/26
Informtica Facultad de Ingeniera - UNNE 17
Propiedad ActiveCell
Devuelve un objeto Range que representa la celda activa de la ventana activa (la
ventana superior) o de la ventana especificada. Si la ventana no contiene una hoja de
clculo, esta propiedad fallar. Es de slo lectura.
Comentar ios
Si no especifica un calificador de objeto, esta propiedad devolver la celda activa de la
ventana activa.
Celda activa no es lo mismo que seleccin. La celda activa es una sola celda de la
seleccin actual. La seleccin p ued e con ten er ms de una ce lda, pero slo una es la
celda activa.
Tod as las expresiones siguientes d evuelven la ce lda activa y son e quivalentes:
ActiveCellApplication.ActiveCellActiveWindow.ActiveCellApplication.ActiveWindow.ActiveCell
Ejemplo
Este ejemplo usa un cuadro de mensaje para mostrar el valor de la celda activa. Puesto
que la propiedad ActiveCell falla si la hoja activa no es una hoja de clculo, el ejemploactivar Hoja1 ante s de utilizar la p ropiedad ActiveCell.
Worksheets("Hoja1").ActivateMsgBox ActiveCell.Value
En este e jemplo se cambia el formato de fuente de la celda activa.
Worksheets("Hoja1").ActivateWith ActiveCell.Font
.Bold = True
.Italic = True
End With
Propiedad Column
Devuelve el nmero de la primera columna del primer rea del rango especificado.
Long de slo lectura.
Comentar ios
Column A de vuelve 1, column B de vuelve 2 y as sucesivamente.
7/23/2019 VBA Excel.pdf
18/26
Informtica Facultad de Ingeniera - UNNE 18
Para devolver e l nmero de la ltima column a del rango , use la siguiente expresin:
myRange.Columns(myRange.Columns.Count).Column
Ejemplo
Este e jemplo e stablece en 4 puntos el ancho d e las columnas salteadas d e Hoja1.
For Each col In Worksheets("Hoja1").ColumnsIf col.Column Mod 2 = 0 Then
col.ColumnWidth = 4End If
Next col
Propiedad Columns
Prop ied ad Columns tal como se aplica al ob jeto App lication.
Devuelve un objeto Range que representa todas las columnas de la hoja de clculo
activa. Si el documento activo no es una hoja de clculo, esta propiedad fallar. Es de
slo lectura.
expresin.Columns
expresin: Req uerida . Expresin que d evuelve un objeto d e la lista Aplicar a.
Prop ied ad Columns ta l como se ap lica al objeto Range .
Devuelve un objeto Range que representa las columnas del rango especificado. Es de
slo lectura.
expresin.Columns
expresin: Req uerida . Expresin que d evuelve un objeto d e la lista Aplicar a.
Prop ied ad Columns ta l como se ap lica al objeto WorkSheet.
Devuelve un objeto Range que representa todas las columnas de la hoja de clculo
especificada. Es de slo lectura.
expresin.Columns
expresin: Req uerida . Expresin que d evuelve un objeto d e la lista Aplicar a.
Para obtener informacin sobre cmo devolver un solo elemento de un conjunto,
consulte Devolver un objeto d e un con junto .
7/23/2019 VBA Excel.pdf
19/26
Informtica Facultad de Ingeniera - UNNE 19
Comentar iosEl uso d e e sta p ropiedad sin calificado r de o bjeto equivale a usarActiveSheet.Columns.
Si se a plica a un ob jeto Range que sea una seleccin de varias reas, la propiedad slo
devolver las columnas de la primera rea del rango. Por ejemplo, si el objeto Range
tiene dos reas - A1:B2 y C3:D4 - Selection.Columns.Count devuelve 2, no 4. Si deseautilizar esta propiedad en un rango que puede contener una seleccin de varias reas,
compruebe Areas.Count para d ete rminar si el rango contiene ms de una rea. En ese
caso, ejecute u n bucle sob re cada rea de l rango.
EjemploEste e jemplo da formato d e ne grita a la fuente de la columna uno (column a A) de Hoja1.
Worksheets("Hoja1").Columns(1).Font.Bold = True
Este ejemplo establece como 0 (cero) el valor de todas las celdas de la columna uno del
rango deno minado "miRango ".
Range("miRango").Columns(1).Value = 0
Este ejemplo muestra el nmero de columnas de la seleccin de Hoja1. Si se ha
seleccionad o ms de una rea, el ejemp lo e jecutar un bucle en cada rea.
Worksheets("Hoja1").ActivateareaCount = Selection.Areas.CountIf areaCount
7/23/2019 VBA Excel.pdf
20/26
Informtica Facultad de Ingeniera - UNNE 20
Devuelve e l nmero d e la primera fila d e la primera rea de l rango . Long de slo lectura.
EjemploEste e jem plo establece en 4 punto s el alto de las filas alternat ivas de Hoja1.
For Each rw In Worksheets("Hoja1").Rows
If rw.Row Mod 2 = 0 Thenrw.RowHeight = 4
End IfNext rw
Propiedad Rows
Para un objeto Application , devuelve u n o bjeto Range que representa todas las filas de
la hoja de clculo activa. Si el documento activo no es una hoja de clculo, esta
propied ad fallar. Para un objeto Range , devuelve un objeto Range que representa lasfilas d el rango especificado . Para u n o bjeto Worksheet, devuelve un objeto Range que
representa todas las filas de la hoja de clculo especificada. Objeto Range de slo
lectura.
Comentar iosPara obtener informacin sobre cmo devolver un solo elemento de un conjunto,
consulte Devolver un objeto d e un con junto .
El uso d e e sta p ropiedad sin calificado r de ob jeto eq uivale a usarActiveSheet.Rows.
Si se aplica a un objeto Range que es una seleccin mltiple, la propiedad slo
devolver las filas de la primera rea del rango. Por ejemplo, si el objeto Range tiene
dos reas -A1:B2 y C3:D4- Selection.Rows.Count devuelve 2, no 4. Si desea utilizar esta
propied ad en un rang o que puede contene r una se leccin mltiple, compruebe
Areas.Count para determinar si el rango es una seleccin mltiple. En ese caso, ejecute
un bucle sob re cada rea d el rango , como se muestra en el tercer ejemplo.
Ejemplo
Este ejemplo e limina la fila t res d e Hoja1.
Worksheets("Hoja1").Rows(3).Delete
Este ejemplo elimina las filas de la regin actual de la hoja de clculo uno en las que el
valor de la celda uno de la fila e s el mismo que el valor de la celda uno de la fila ante rior.
For Each rw In Worksheets(1).Cells(1, 1).CurrentRegion.Rowsthis = rw.Cells(1, 1).ValueIf this = last Then rw.Deletelast = this
Next
7/23/2019 VBA Excel.pdf
21/26
Informtica Facultad de Ingeniera - UNNE 21
Este ejemplo m uest ra e l nmero de filas d e la se leccin de Hoja1. Si se h a se lecciona do
ms d e una rea, el ejemplo ejecutar un b ucle en cada rea.
Worksheets("Hoja1").ActivateareaCount = Selection.Areas.CountIf areaCount
7/23/2019 VBA Excel.pdf
22/26
Informtica Facultad de Ingeniera - UNNE 22
Si se define el valor o la frmula de una celda como una fecha, Microsoft Excel
comprobar si dicha celda ya tiene uno de los formatos numricos de fecha u hora. De
lo contrario, cambiar el formato numrico al formato numrico de fecha corto
predeterminado.
Si el rang o tiene una o do s dimensiones, pued e d efinir la frmula conforme a una matrizde Visual Basic de las mismas dimensiones. Asimismo, es posible introducir la frmula
en una matriz de Visual Basic.
Si define la frmula para un rango de varias celdas, se rellenarn todas las celdas del
rango con la frmula.
Ejemplo
Este ejemp lo e stab lece la frmula de la ce lda A1 de Hoja1.
Worksheets("Hoja1").Range("A1"). Formula = "=$A$4+$A$10"
Propiedad Value
Verem os ta l como se ap lica al objeto Range .
Devuelve o establece e l valor del rango esp ecificado . Variant de Lectura/ Escritura.
expresin.Value(RangeValueDataType)
expresin: Requerida. Expresin que devuelve un objeto Range .
RangeValueDataType:Variant opcional. Tipo de datos del valor del rango. Puede ser
una constantexlRangeValueDataType .
xlRang eValueDataType pued e ser una de estas con stan tes xlRang eValueDataType .
xlRangeValueDefault:default. Si el objeto Range est vaco, devuelve el valorEmpty
(utilice la funcin IsEmpty para comprobar si este es el caso). Si el objeto Range
contiene ms de una celda, devuelve una matriz de valores (utilice la funcin IsArray
para comprobar ese caso ).
xlRangeValueMSPersistXML: Devuelve la representacin del conjunto de registros del
objeto Range expecificado en formato XML.
xlRang eValueXMLSpreadsheet: Devuelve los valores, formatos, frmulas y nombres
del objeto Range especificado en formato de hoja de clculo XML.
7/23/2019 VBA Excel.pdf
23/26
7/23/2019 VBA Excel.pdf
24/26
7/23/2019 VBA Excel.pdf
25/26
Informtica Facultad de Ingeniera - UNNE 25
Para seleccionar un rango de sde la celda hasta 10 celdas a la izqu ierda :Range("A20", Range("A20").Offset(0, -10)).SelectRange(ActiveCell, ActiveCell.Offset(0, -10)).Select
Para seleccionar un rango d esde la celda hasta 10 celdas hacia abajo:Range("a2", Range("a2").Offset(10, 0)).SelectRange(ActiveCell, ActiveCell.Offset(10, 0)).Select
Para seleccionar la p rimera celda vaca e n una co lumna:Range("A1").End(xlDown).Offset(1, 0).Select
Para seleccionar la primera celda vaca en una fila:Range("A1").End(xltoRight).Offset(0,1).Select
Para rede finir el tamao de l rango (de A1:B5 a A1:D10)
Nota: un rango no es e xpandido sino que se redefine desde la celda activa.Selection.Resize(4, 10).Select
y noSelection.Resize(2, 5).Select
Si queremos seleccionar celdas que llamamos Var_1, Var_2 y Var_3, podemos usar el
siguiente bucle:Sub asigna()
For i = 1 To 3varNo1 = "Var_" & iRange([varNo1]).Select
....--- cualquier proceso con la celda seleccionada ---Next i
End Sub
7/23/2019 VBA Excel.pdf
26/26
GLOSARIO
evento
Evento es to da accin que puede ser reconocida por un objeto, como puede ser el clic
del mouse o la pulsacin de una tecla, y para la que es posible escribir cdigo como
respuesta. Los evento s pue den ocurrir como resultado de una accin d el usuario o d el
cdigo del programa, tambin pueden ser originado s por el sistema.
instruccin
Una unidad sintcticamente completa que expresa un tipo de accin, declaracin o
definicin. Normalmente una instruccin tiene una sola lnea aunque es posible utilizar
dos puntos (:) para poner ms de una instruccin en una lnea. Tambin se puede
utilizar un carcter de continuacin de lnea (_) para continuar una sola lnea lgica en
una segunda lnea fsica. Si desea realizar un comentario, colocar al principio de la lnea
la palabra REM o el signo apstrofe (').
mtodo
Un proced imiento que se ap lica a un o bjeto.
mdulo
Un conjunto de declaracione s y procedimientos.
objeto (object)
Un objeto representa un elemento de una aplicacin, como una hoja de clculo, una
celda, un diagrama, un formulario o un informe. En cdigo de Visual Basic, un objeto
debe identificarse antes de que se pueda aplicar uno de los mtodos del objeto o
camb iar el valor de un a de sus propiedades.
propiedad (propertie)
Un atributo con n ombre d e un o bjeto. Las prop iedad es de finen caractersticas de
objetos, como tamao, color y ubicacin en la pantalla, o comportamientos de objetos,
como si est o no habilitado .
procedimiento (procedure)Una secuencia con nombre de instrucciones que se ejecutan como una unidad. Por
ejemplo, Function, Property y Sub son todos tipos de procedimientos. Un nombre de
procedimiento siempre se define a nivel de mdulo. Todo el cdigo ejecutable debe
estar contenido en un proced imiento . Los p rocedimiento s no se p ued en a nidar de ntro
de otros procedimientos. Es similar al concepto con el que antes llevaba el nombre de
macros
http://www.excel-vba-access.com/vba-excel-tips-objects.htmhttp://www.excel-vba-access.com/vba-excel-tips-objects.htm