Beruflich Dokumente
Kultur Dokumente
Centro de Cmputo
CENTRO DE CMPUTO
Macros
Pgina 1 de 10
MACROS
Si
realiza
frecuentemente
una
tarea
en
Microsoft
Excel,
puede
4. A
partir
de
este
momento
Excel
se
ha
convertido
en
una
de la barra de herramientas
Macros
Pgina 2 de 10
a un botn. Que se
Pgina 3 de 10
celda, pero slo una es la celda activa. Todas las expresiones siguientes
devuelven la celda activa y son equivalentes:
ActiveCell Application.ActiveCell
ActiveWindow.ActiveCell
Application.ActiveWindow.ActiveCell
Ejemplo de la propiedad ActiveCell
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 siguiente ejemplo activar Sheet1 antes de utilizar la propiedad
ActiveCell.
Worksheets("Sheet1").Activate
MsgBox ActiveCell.Value
En este ejemplo se cambia el formato de fuente de la celda activa.
Worksheets("Sheet1").Activate
With ActiveCell.Font
.Bold = True
.Italic = True
End With
Trabajar con la celda activa
La propiedad ActiveCell devuelve un objeto Range que representa la celda
que est activa. Puede aplicar cualquiera de las propiedades o los mtodos
de un objeto Range a la celda activa, como en el ejemplo siguiente.
Sub SetValue()
Worksheets("Sheet1").Activate
Macros
Pgina 4 de 10
ActiveCell.Value = 35
End Sub
Nota: Slo se puede trabajar con la celda activa cuando la hoja de clculo
en la que se encuentra sea la hoja activa.
Mover la celda activa
Puede utilizar el mtodo Activate para designar cul es la celda activa. Por
ejemplo, el siguiente procedimiento convierte B5 en la celda activa y, a
continuacin, le da formato de negrita.
Sub SetActive()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("B5").Activate
ActiveCell.Font.Bold = True
End Sub
Nota: Para seleccionar un rango de celdas, utilice el mtodo Select. Para
convertir una sola celda en activa, utilice el mtodo Activate.
Puede utilizar la propiedad Offset para pasar a la celda activa. El siguiente
procedimiento inserta texto en la celda activa del rango seleccionado y, a
continuacin, mueve la celda activa una celda a la derecha, sin cambiar la
seleccin.
Sub MoveActive()
Worksheets("Sheet1").Activate
Range("A1:D10").Select
ActiveCell.Value = "Monthly Totals"
ActiveCell.Offset(0, 1).Activate End Sub
Seleccionar las celdas que rodean la celda activa
La propiedad CurrentRegion devuelve un rango de celdas limitadas
por filas y columnas en blanco. En el siguiente ejemplo, la seleccin se
ampla para incluir las celdas contiguas
Pgina 5 de 10
Worksheets("Sheet1").Activate
ActiveCell.CurrentRegion.Select
Selection.Style = "Currency"
End Sub
Escribir Instrucciones De Asignacin
Las instrucciones de asignacin asignan un valor o expresin a una
variable o constante. Las instrucciones de asignacin incluyen siempre un
signo igual (=). El siguiente ejemplo asigna el valor que devuelve la
funcin InputBox a la variable suNombre.
Sub Pregunta()
Dim suNombre As String
suNombre = InputBox("Cmo se llama?")
MsgBox "Su nombre es " & suNombre
End Sub
La instruccin Let es opcional y normalmente se omite. Por ejemplo, la
instruccin de asignacin anterior podra haberse escrito as:
Let suNombre = InputBox("Cmo se llama?").
La instruccin Set se utiliza para asignar un objeto a una variable
que ha sido declarada como objeto. La palabra clave Set es necesaria.
En el siguiente ejemplo, la instruccin Set asigna un rango de Hoja1 a la
variable de objeto miCelda:
Sub DarFormato()
Dim miCelda As Range
Set miCelda = Worksheets("Hoja1").Range("A1")
With miCelda.Font
.Bold = True
.Italic = True End With
End Sub
Macros
Pgina 6 de 10
Las
instrucciones
que
establecen
valores
propiedad
son
tambin
ejemplo
siguiente
rellena
el
rango
A1:H8
con
nmeros
Macros
Pgina 7 de 10
Propiedad Cells
Use Cells(fila; columna), donde fila es el ndice de fila y columna es el
ndice de columna, para devolver una sola celda. El ejemplo siguiente
establece en 24 el valor de la celda A1.
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
siguiente
crea encabezados
de fila y columna
de activar
El ejemplo
en la Hoja1. Tenga en
propiedad Cells sin una declaracin explcita de hoja (devuelve una celda
de la hoja activa).
Sub SetUpTable()
Worksheets("sheet1").Activate
For theYear = 1 To 5
Cells(1, theYear + 1).Value = 1990 + theYear
Next theYear
For theQuarter = 1 To 4
Cells(theQuarter + 1, 1).Value = "Q" & theQuarter
Next theQuarter
End Sub
Aunque
modificar
(y
una
prctica
de
de cadena
estilo
A1,
es
de Visual
mucho
Basic
ms
para
sencillo
Pgina 8 de 10
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 bordes de
las celdas 1:J10.
With Worksheets(1)
Range(.Cells(1, 1), _.Cells(10, 10)).Borders.LineStyle = xlThick
End With
Observe
necesario
el punto
si
delante
de
cada
es
propiedad Cells, en cuyo caso, se indica que las celdas estn en la hoja de
clculo uno (sin el punto, la propiedad Cells devolvera las celdas de la
hoja activa).
Propiedad Offset
Use Offset(fila; columna), donde fila y columna son los desplazamientos
de
fila
y columna,
para devolver
Macros
Pgina 9 de 10
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 objeto
definido
como
la
unin
de
los
reas.
Divide
una seleccin
de varias
reas
en
Macros
Pgina 10 de 10