Curso de macros de Excel con VBA

Contenido de las clases (20h)

Primer día

  • Caja de mensajes: MSGBOX
  • Propiedades RANGE y CELLS
  • Ventana inmediato
  • Requerir declaraciónd de variables
  • Variables y tipos de variables
  • Comentarios en el código
  • Introducción al IF ELSE
  • Bucle FOR contador
  • Tabla de multiplicar
  • Introducción al SELECT CASE
  • Usar nombres de rango
  • Bucle DO LOOP
  • Uso de OFFSET y el tipo RANGE

Segundo día

  • En detalle SELECT CASE
  • En detalle IF ELSEIF ELSE
  • En detalle FOR
  • En detalle DO LOOP
  • Constantes
  • Alcance PRIVATE o PUBLIC
  • Introducción a los ARRAY
  • Tipo VARIANT
  • Operadores
  • Bucle FOR EACH
  • Crear funciones

Tercer día

  • Asignar arrays/matrices a celdas
  • Arrays dinámicos
  • Parámetros opciones en funciones
  • Nombre de parámetros
  • Examinador de objetos: F2
  • Bibliotecas: VBA y EXCEL
  • Propiedades de la hoja: CODENAME, NAME, HIDDEN
  • Añadir una hoja al principio o al final
  • Listar las hojas
  • Eliminar hojas: DISPLAYALERTS
  • Sólo en este libro: THISWORKBOOK
  • Cálculo entre varias hojas
  • Poner el nombre de cada hoja en su celda A1
  • Guardar la hoja en un nuevo libro: WORKSHEET.COPY

Cuarto día

  • Acceder a varios libros
  • Jerarquía de objetos Excel
  • Copiar celdas entre libros: RANGE.COPY
  • Encontrar duplicados: COUNTIF, USEDRANGE
  • Uso de WITH
  • Tratamiento de errores
  • Ocultar filas según criterio: CURRENTREGION, ROWS
  • Eventos del libro: OPEN, BEFORECLOSE, NEWSHEET
  • Eventos de la hoja: ACTIVATE/DEACTIVATE, CALCULATE, CHANGE y SELECTIONCHANGE
  • Macro automática para cálculo de IVA

Descargar

Temario del curso

Lenguaje VBA

  1. Entorno
    • Ventana de código: ALT-F11
    • Explorador de proyectos y otras ventanas
    • Contraseña al código
  2. Escritura de código
    • Realizar comentarios
    • Varias instrucciones en una línea
    • Una instrucción en varias líneas
    • Sugerencias: CONTROL+ESPACIO
  3. Variables
    • Requerir declaración de variables: OPTION EXPLICIT
    • Tipos de datos simples: INTEGER, LONG, DOUBLE, CURRENCY, DATE, BOOLEAN
    • Tipo variante: VARIANT
    • Objeto: OBJECT
    • Alcance local o global; tiempo de vida de las variables
    • Constantes
    • Tipo definido por el usuario: TYPE
  4. Operadores
    • Asignación
    • Aritméticos
    • Comparación
    • Lógicos
    • Concatenación
  5. Estructuras de control
    • Condicionales IF y SELECT CASE
    • Bucles: FOR, DO LOOP, FOR EACH
    • Acceso a métodos y propiedades con WITH
  6. Matrices
    • Declaración e indexación
    • Inicialización directa: ARRAY
    • Matriz de 2 o más dimensiones
    • Índices máximo y mínimo: LBOUND y UBOUND
    • Funciones de texto y array: JOIN y SPLIT
    • Matrices dinámicas: REDIM, PRESERVE
    • Bucles FOR y FOR EACH en matrices
  7. Procedimientos: SUB y FUNCTION
    • Parámetros por valor y por referencia
    • Parámetros opcionales y acceso por nombre de parámetro
    • Parámetros variables
    • Retorno del resultado d una función
  8. Módulos y clases
    • Visibilidad: PRIVATE, PUBLIC
    • Exportar e importar
  9. Control de errores
    • Tratamiento de errores: ON ERROR
    • Técnicas de depuración: BREAKPOINT, paso a paso
    • Ventana inmediato y ventana de locales
  10. Funciones incorporadas
    • Inspector de objetos
    • Funciones de fecha: NOW, MONTH, DATESERIAL, etc.
    • Funciones matemáticas: ROUND, RND, SQR, etc.
    • Funciones de texto: LEN, UCASE, MID, etc
    • Otras funciones: SHELL

Macros y objetos de Excel

  1. Introducción
    • Guardar habilitado para macros: XLSM
    • Mostrar la ficha PROGRAMACIÓN
    • Proyecto, módulos de clase WORKSHEET y WORKBOOK
    • Grabación y ejecución de macros
    • Botón de macro
  2. Objetos
    • El examinador de objetos
    • Clases, módulos y tipos enumerados
    • Propiedades, métodos y eventos
    • Colecciones de objetos
    • Jerarquía de objetos
  3. Biblioteca de objetos
    • Añadir referencias a otras bibliotecas
    • Usar WORD desde EXCEL
  4. Selección actual
    • Rango actual: SELECTION
    • Celda actual: ACTIVECELL
    • Hoja de cálculo actual: ACTIVEWORKSHEET
    • etc.
  5. Rango de celdas: RANGE
    • Celdas: CELLS
    • Filas y columnas: ROWS y COLUMNS
    • Desplazamiento y redimensión: OFFSET y RESIZE
    • Rango usado: USEDRANGE
    • Región actual: CURRENTREGION
  6. Hoja de cálculo: WORKSHEET
    • Acceso a la hoja de cálculo por nombre en código o por WORKSHEETS
    • Bucle FOR EACH para recorrer las hojas de cálculo
    • Añadir o borrar hojas: ADD, DELETE
    • Ocultar hojas: HIDDEN
    • Proteger o desproteger hojas: PROTECT, UNPROTECT
    • Eventos de la hoja: ACTIVATE/DEACTIVATE, CALCULATE, CHANGE y SELECTIONCHANGE
  7. Libro de cálculo: WORKBOOK
    • Abrir, guardar y cerrar libro: OPEN, SAVEAS, CLOSE
    • Ruta y nombre del archivo: PATH, NAME
    • Diferencia entre libro actual y este libro: ACTIVEWORKBOOK y THISWORKBOOK
    • Eventos del libro: OPEN, BEFORECLOSE, NEWSHEET
  8. El programa Excel: APPLICATION
    • Mensajes de aviso: DISPLAYALERTS
    • Visualización en pantalla: SCREENUPDATING
    • Uso de funciones de Excel: WORKSHEETFUNCTIONS
  9. Transferencia de datos
    • Copiar una hoja en un nuevo libro: COPY
    • Copiar datos de un libro a otro
    • Copiar y pegar datos con un array dinámico
    • Importar datos CSV
  10. Tablas dinámicas: PIVOTTABLE
  11. Creación de formularios de usuario

Libro recomendado

Portada del libro

Aprender a programar con Excel VBA con 100 ejercicios prácticos

Autor:Mediaactive
Editorial:MARCOMBO, S.A.
ISBN:9788426719027
Páginas:216
Edición:
EAN:9788426719027

Otros libros:

  • Excel VBA Programming for Dummies — John Walkenbach

Apuntes

Enlaces

Ejercicios

Módulos

Ejercicios de celdas, filas y columnas

  • Formatear celdas no continuas

    for each celda in hoja1.UsedRange
    if celda.NoteText <> ""
    celda.Interior.colorIndex = 20
  • Ocultar algunas filas

    with hoja1
    filaMax = .UsedRange.Rows.Count
    for fila = 2 to filaMax
    if .Cells(fila,1).Value < 50
    .Rows(indice).Hidden = True
  • Mostrar todas las filas

    hoja1.Rows.Hidden = false
  • Marcar fines de semana

    select case Weekday(celda.value, vbMonday)
    case 6 to 7: celda.Interior.ColorIndex = 4
    case else: celda.Interior.ColorIndex = xlColorIndexNone
  • Encontrar duplicados

    =CONTAR.SI(A:A;A2)
    for fila = 2 to filaMax
    if Application.WorksheetFunction.CountIf( _
    Columns(1), Cells(fila, 1).Value) > 1
  • Eliminar algunas filas

    with hoja1
    for fila = filaMax to 2 step -1
    if .Cells(fila, 1).Value = "X"
    .Rows(fila).delete
  • Eliminar filas vacías

    for fila = filaMax to 2 steop -1
    if Application.WorksheetFunction.CountA(Rows(fila)) = 0
    Rows(fila).Delete
  • Buscar y reemplazar mediante las funciones: UCASE, INSTR y REPLACE

Ejercicios de hojas

  • Añadir una nueva hoja

    Worksheets.Add before:=Worksheets(1)
    Worksheets.Add after:=Worksheets(Worksheets.Count)
  • Crear un libro de meses

    Application.SheetsInNewWorkbook = 1
    for indice = 1 to 11
    Worksheets.Add
    for indice = 1 to 12
    Worksheets(indice).Name = monthname(indice)
  • Guardar cada hoja en un libro separado

    Application.DisplayAlerts = false
    for each hoja in ThisWorkbook.Worksheets
    hoja.Copy
    ActiveWorkbook.SaveAs ThisWorkbook.path & "\" & ActiveSheet.Name & ".xlsx"
    ActiveWorkbook.Close
  • Ocultar todas las hojas menos una

    for each hoja in Worksheets
    if hoja.CodeName <> "Hoja2"
    hoja.Visible = xlSheetHidden
  • Proteger/Desproteger hojas una a una

    for each hoja in ThisWorkbook.Worksheets
    hoja.protect password:="···", allowFormattingCells:=True
      hoja.unprotect "···"
  • Ocultar las macros: PRIVATE en el SUB y contraseña en las propiedades del proyecto

  • Encabezado y pie de página en cada hoja

    for each hoja in Worksheets
    with hoja.PageSetup
    .centerHeader = Environ("username")
    .centerFooter = ThisWorkbook.BuiltinDocumentProperties("creation date")
  • Comprobar si existe una hoja

    function existeHoja(nombre)
    for each hoja in Worksheets
    if hoja.CodeName = nombre
    existeHoja = True
    exit function

Ejercicios en PDF

Codificación de macros

Funciones de usuario

Miscelánea

Artículos relacionados

Comentarios

Proinf.net, ©2003-2017 ci 3.1.5 (CC) Esta obra está bajo una licencia de Creative Commons Este software está sujeto a la CC-GNU GPL