0% encontró este documento útil (0 votos)
32 vistas17 páginas

Microsoft Excel - Macros

Las Macros en Excel son secuencias de instrucciones escritas en Visual Basic que permiten automatizar tareas. Se utilizan objetos, propiedades y métodos de Excel, y se pueden grabar y editar en el Editor de Visual Basic. El documento también incluye ejemplos de cómo trabajar con celdas, hojas y cuadros de mensajes en VBA.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas17 páginas

Microsoft Excel - Macros

Las Macros en Excel son secuencias de instrucciones escritas en Visual Basic que permiten automatizar tareas. Se utilizan objetos, propiedades y métodos de Excel, y se pueden grabar y editar en el Editor de Visual Basic. El documento también incluye ejemplos de cómo trabajar con celdas, hojas y cuadros de mensajes en VBA.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

Microsoft Excel

Macros en Visual Basic APP


¿Qué es una Macro en Excel?
• Las Macros en Excel son un conjunto de instrucciones que se ejecutan
de manera secuencial.
• Para escribir estas instrucciones utilizaremos los siguientes
elementos:
• Objetos de Excel
• Propiedades de los Objetos
• Metodos o acciones de los Objetos de Excel
• Funciones que devuelven valores
• Enunciados o palabras claves de VBA APP
¿Dónde están las Macros?
• Las Macros se escriben dentro de módulos en el Editor de Visual Basic.

Ventana de
proyecto

Área de
Trabajo del
Editor de VBA
Ventana
de
Propieda
des
Grabar una macro
• Necesitamos visualizar el menú Programador.
Libro de Macros Personales
• C:\Users\NombreUsuario\AppData\Roaming\Microsoft\Excel\XLSTART
Los objetos de Excel
Representan un elemento de una aplicación

Excel Libro Hoja celda gráfico formulario


Application Workbook Sheet Range - Cells Charts Form

Propiedades Métodos
Objeto.Propiedad=valor Objeto.Métodos
Identificar los Objetos
En el código de Visual Basic, debe identificar un objeto para aplicar uno de los métodos del
objeto o cambiar el valor de una de las propiedades
OBJETOS Identificar x Nombre Identificar x Ubicación

Worksheets Worksheets("facturas emitidas").Select Worksheets(1).Visible = False

Workbooks(1).Activate
Workbooks Workbooks("Ventas y Pagos.xlsm").Worksheets("cobros").Activate

Sheets(“Hoja1").Activate
Sheets(5).Activate
Sheets Sheets(Array("Hoja4", "Hoja5")).Move before:=Sheets(1)

Cells(1, 1).Value = 24
Range("A5").Value=1200
Range / Cells Cells.Item(1, 2).Value = 42
Range("Criteria").ClearContents
Cells(2, 1).Formula = "=Sum(B1:B5)"

ChartObjects ActiveSheet.ChartObjects("torta").RoundedCorners = True ActiveSheet.ChartObjects(2).RoundedCorners = True


Rangos y Celdas
Sub TrabajarConCeldasYRangos()
'Seleccionamos utilizando referencias absolutas con Range
Range("A1").Select
Range("A1:B7").Select

'Seleccionamos utilizando referencias absolutas con Cells(NRO DE FILA,NRO DE COLUMNA)


Cells(1, 1).Select
Range(Cells(1, 1), Cells(7, 2)).Select

'Trabajamos con variables 1


FILA = 7
COLUMNA = 2
Cells(FILA, COLUMNA).Select

'Trabajamos con variables 2


Range("A1").Select
FILA = Selection.Row ‘Guarda en la variable en valor de la fila actual
Range("B2").Select
COLUMNA = Selection.Column ‘Guarda en la variable en valor de la columna actual
Cells(FILA, COLUMNA) = "FILA 1 Y COLUMNA B"
FILA = FILA + 10
Cells(FILA, COLUMNA) = "FILA 10 Y COLUMNA B"
End Sub
Rangos y Celdas
Sub TrabajarConBuclesInfinitos()
'Guardamos la ubicacion de fila y columna en las variables (UBICACION B7)
FILA = 7
COLUMNA = 2

'Usamos las variables para seleccionar las celdas


Cells(FILA, COLUMNA).Select

'Usamos el OBJETO ACTIVECELL para almacenar su contenido en una variable


CONTENIDO_ORIGEN = ActiveCell

'Inicia una sub rutina que permite generar un bucle infinito


SUBRUTINA
'Modificamos la variable FILA sumando 1 (UBICACION B8)
FILA = FILA + 1

'Seleccionamos una nueva celda con el NUEVO VALOR de la variable FILA y el valor de la variable COLUMNA
Cells(FILA, COLUMNA).Select

'Volcamos el valor de la variable CONTENIDO_ORIGEN en la nueva ACTIVECELL


ActiveCell = CONTENIDO_ORIGEN

'Regresa a SUBRUTINA y genera el bucle infinito


GoTo SUBRUTINA
End Sub
Hojas
Sub TrabajarConHojas1()
'Seleccionar una hoja por nombre
Sheets("Hoja1").Select

'Seleccionar una hoja por nombre usando una variable


NOMBRE_HOJA = "Hoja2"
Sheets(NOMBRE_HOJA).Select

'Seleccionar una hoja por posición


Sheets(3).Select

'Seleccionar la primera y la ultima hoja utilizando ARRAY y COUNT por posición


'ARRAY permite establecer un conjunto de hojas por posición
'COUNT almacena la cantidad totales de hojas del libro
Sheets(Array(1, Sheets.Count)).Select

'Seleccionar todas las hojas del libro


ActiveWorkbook.Sheets.Select

End Sub
Hojas
Sub TrabajarConHojas2()
'Cambia el color de todas las hojas del libro seleccionándolas previamente
For X = 1 To Sheets.Count
Sheets(X).Select
Sheets(X).Tab.Color = RGB(100, 50, 30)
Next X

'Cambia el color de todas las hojas del libro sin seleccionar


For X = 1 To Sheets.Count
Sheets(X).Tab.Color = RGB(100, 50, 30)
Next X

'Cambia el Nombre de todas las hojas del libro sin seleccionar usando el valor de la variable x
For X = 1 To Sheets.Count
Sheets(X).Name = "Nuevo Nombre " & X
Next X

End Sub
Hojas
Sub EscalaColorPestañas() 'Cambia el color de todas las hojas con escala de colores

R = 255
G = 255
B=0

For X = 1 To Sheets.Count
Sheets(X).Tab.Color = RGB(R, G, B)
R = R - 20
G = G - 20
Next X

End Sub
Cuadros de Mensajes
Sub cuadrosMSGBOX()

'Muestra un cuadro de dialogo


MsgBox "Mensaje en el cuerpo del cuadro", vbDefaultButton1, "Titulo del cuadro"

'Muestra un cuadro de dialogo y guarda el resultado de la respuesta en una variable


DECISION = MsgBox("Desea continuar trabajando en esta macro", vbYesNo, "Debe tomar una decisión")

If DECISION = vbYes Then


MsgBox "Su decisión fue SI"
End If

If DECISION = vbNo Then


MsgBox "Su decisión fue NO"
End If
End Sub
Cuadros de Entrada de datos

Sub CuadroEntradaDatos()
'Solo muestra el cuadro, pero no se almacena la respuesta y el cuadro se muestra centrado
InputBox "Mensaje del cuerpo del cuadro", "Titulo del cuadro", "valor x defecto"

'Almacena la entrada en la variable RESPUESTA y el cuadro sale a 600 px x 600 px en horizontal y vertical
Dim RESPUESTA As Date

RESPUESTA = InputBox("Ingrese su fecha de nacimiento", "Calculo de edad", #12/5/1998#, 600, 600)


EDAD = Int((Date - RESPUESTA) / 365)

MsgBox "Su edad es " & EDAD

End Sub
APPLICATION – Objeto Excel -
ACTIVEWINDOW
Sub DESACTIVA_BARRA_FORMULAS_ACTIVA_PANTALLA_COMPLETA()
Application.DisplayFormulaBar = False
Application.DisplayFullScreen = True
End Sub

Sub DESACTIVA_GRILLA_Y_ENCABEZADOS_FILAS_COLUMNAS()
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
End Sub

Sub MODO_PRESENTACION()
ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines
ActiveWindow.DisplayHeadings = Not ActiveWindow.DisplayHeadings
Application.DisplayFormulaBar = Not Application.DisplayFormulaBar
Application.DisplayFullScreen = Not Application.DisplayFullScreen
End Sub
APPLICATION – Objeto Excel
Sub CONGELA_MOVIMIENTO_CURSOR()

Application.ScreenUpdating = False
Range("A1").Select
ActiveCell.CurrentRegion.Select

For Each CELDA In Selection


CELDA.Select
CELDA.Value = 1200
Next CELDA

End Sub
Funciones definidas x el usuario

Function Importe_Neto(Importe_Bruto As Currency, Tasa_IVA As Double)

Dim IVA As Double


IVA = Importe_Bruto* (Tasa_IVA / 100)

Importe_Neto = IMPORTE_BRUTO - IVA


End Function

También podría gustarte