Es una serie de instrucciones que se almacenan para que se puedan ejecutar de manera secuencial mediante una sola llamada u orden de ejecución. esta compuesto por una serie por unas instrucciones mas sencillas. Esto permite la automatización de tareas repetitivas. Ademas es un procesadores de texto, bases de datos, hojas de cálculo, que también se obtienen secuencia de acciones dentro de la aplicación que el usuario activa pulsando una combinación específica de teclas.
USO DE COLORES EN EXCEL CON MACROS.
Para obtener un macro que contenga colores necesitamos saber el "código o la enumeración respectivas para la obtención de dichos colores" aquí nos muestran la enumeración de cada color.
MACRO DE CONTEO
Lo primero es personalizar el formato de la celda donde vamos a insertar el tiempo de la reunión. Para ello, damos clic derecho sobre la celda A2 y abrimos la ventana de Formato de celda:
En la pestaña Número seleccionamos la categoría Personalizada y en el espacio de Tipo agregamos el siguiente texto: h:mm:ss
Damos aceptar y ahora coloquemos un tiempo de 5 segundos de prueba:
Ahora debemos crear la macro, para ello aplicamos la combinación de teclas Alt + F11 para abrir el editor de visual Basic. En el panel de explorador de proyectos ubicamos el libro de trabajo e insertamos un Módulo:
Damos doble clic en el Módulo desde el explorador de proyectos y pegamos el siguiente código:
Sub ProgramaCuentaRegresiva()
Dim CuentaRegresiva As Date
CuentaRegresiva = Now + TimeValue("00:00:01")
Application.OnTime CuentaRegresiva, "ProgramaCuenta"
End Sub
Sub ProgramaCuenta()
Dim Cuenta As Range
Set Cuenta = [A2]
Cuenta.Value = Cuenta.Value - TimeSerial(0, 0, 1)
If Cuenta <= 0 Then
MsgBox "Terminó el Conteo", vbExclamation, "Cuenta Regresiva"
Exit Sub
End If
Call ProgramaCuentaRegresiva
End Sub
Ahora volvemos a la hoja Excel, insertamos un cuadro y asignamos la macro ProgramaCuenta (Clic derecho sobre el cuadro y seleccionamos Asignar Macro):
Ya está listo, ahora solo queda dar clic y al finalizar el conteo aparece el siguiente mensaje:
MACRO DE CICLO
Ejemplos del ciclo For...Next
El siguiente ciclo se repite 10 veces:
Sub Ciclos()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i
Next i
End Sub
Macro para calcular la raíz cuadrada, el cuadrado y el cubo de los 10 primeros números enteros
El siguiente ciclo se repite 10 veces:
Sub Ciclos2()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i
Cells(i, 2).Value = i ^ (1 / 2)
Cells(i, 3).Value = i ^ 2
Cells(i, 4).Value = i ^ 3
Next i
End Sub
Tabla resultante después de ejecutar la macro:
La siguiente macro identifica y escribe el nombre de las hojas de trabajo del libro activo
- Utiliza el objeto Sheets.Count (número de hojas del libro activo) para determinar el número de veces que se ejecutará el ciclo
- Utiliza el objeto Sheets(i).Name para identificar el nombre de la iésima página del libro
Sub nombreHojasTrabajo()
Dim i As Long
Dim nHojas As Long
Dim nombreHoja As String
nHojas = Sheets.Count 'número de hojas de trabajo en el libro activo
For i = 1 To nHojas
nombreHoja = Sheets(i).Name 'nombre de la hoja de trabajo
Debug.Print nombreHoja 'escribe el nombre de la hoja en la ventana del depurador
Next i
End Sub
Cambiar el incremento en el ciclo
La siguiente macro cambia de color el fondo de las filas pares de las primeras 4 columnas.
El número de veces que se repite depende de el número de filas que tenga el rango de datos.
Sub Ciclos4()
Dim i As Integer
Dim UltimaFila As Long
'Detecta la última fila del rango de datos en la hoja activa
UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
'El siguiente ciclo cambia de color el fondo de las filas pares
'de las primeras 4 columnas
For i = 2 To UltimaFila Step 2 'incremento de dos en dos 2, 4, 6, ...)
Cells(i, 1).Resize(1, 4).Interior.ColorIndex = 36
Next i
End Sub
Sub Ciclos5()
'Escribe el texto "Mayor que cero" a la derecha
'de la columna de trabajo
'
Dim UltimaFila As Integer
Dim ColumnaTrabajo
Dim i As Integer
ColumnaTrabajo = 3
'Detecta la última fila del rango de datos en la hoja activa
UltimaFila = Cells(Rows.Count, ColumnaTrabajo).End(xlUp).Row
For i = 1 To UltimaFila
If Cells(i, ColumnaTrabajo).Value > 0 Then
Cells(i, ColumnaTrabajo + 1).Value = "Mayor que cero"
End If
Next i
End Sub
La siguiente macro utiliza ciclos anidados para para crear una tabla de multiplicar
- la variable i controla el número de la fila
- la variable j controla el número de la columna