COMO SE HACE UN MACRO Y EN QUE CONSISTE UNA MACRO.
Enviado por laurita2830 • 13 de Abril de 2016 • Tarea • 1.591 Palabras (7 Páginas) • 421 Visitas
COMO SE HACE UN MACRO Y EN QUE CONSISTE UNA MACRO.
Proceso lógico, ordenado, secuencial, y exacto. Que me permite solucionar un problema, optimizar tiempo.
Se dividen en dos tipos:
- Por teclado: fáciles, pero limitadas
- Por código: complejas, pero ilimitadas
Dos sistemas son muy importantes para las macros:
- Lógico y creativo
- Memorístico
Toda macro debe tener:
- Un nombre (que use pala
- Un inicio y un fin
- Toda macro se puede ejecutar con una instrucción (botón definido), con teclas rápidas, con el editor de virtual basic con la función F5 (para hacerlo rápidamente) y con F8 (para paso a paso)
- Revisar el nivel de seguridad del computador, de Excel. Pues debe ser bajo, de lo contrario no ejecutará la macro.
[pic 1]
[pic 2]
- Macro absoluta: Se graba y siempre que se ejecute hará el mismo proceso en el mismo sitio
- Macro relativa: se ejecuta de acuerdo a la posición donde se ubican.
[pic 3]
Así se activa una macro relativa, si no se hace trabajamos sobre macro absoluta. Esto aplica para macros por teclado únicamente.
EJ 1.
Seleccionamos la celda, vamos a macros, guardar macro:
[pic 4]
Para parar la macro
[pic 5]
Cuando se trabajan con procedimientos en programación hay 3 tipos:
- Lineal; una secuencia
- Cíclico. Si se requiere que le proceso se repita n veces entonces es cíclico
- Diagonal
Para ver las macros:
[pic 6]
Si damos paso a paso nos muestra el paso a paso en visual basic. En donde todo lo que está en azul es código. Lo que está entre “sub” y “sub” es el código. En visual Basic se puede editar los códigos.
Ej. Como hacer para que se repita 1000 veces
[pic 7]
[pic 8]
Ahí tenemos las siguientes alternativas:
- FOR: se abre con for y cierra con Next
- Se deben definir variables, una posición de memoria que sirve para almacenar un dato y se define con un nombre.
- TO WHILE
- TO CASE
- TO UNTIL
Para el ejemplo:
For x=1 to 1000 STEP 2
NEXT x
- Step 2 es para que pase de x=1 a X=3 a … Así hace solo 500 banderas
[pic 9]
MACRO CON CODIGO
[pic 10]
[pic 11]
- Un ciclo es con “for” (Cierra con next)
- Una decisión es con If (También se cierra con End IF)
PROGRAMACIÓN:
Sub Escudo()
'
' Escudo Macro
'
' Acceso directo: Ctrl+Mayús+E
'
For x = 1 To 500
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
ActiveCell.Offset(1, 0).Range("A1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
ActiveCell.Offset(1, 0).Range("A1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
ActiveCell.Offset(1, 0).Range("A1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveCell.Offset(1, 0).Range("A1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
ActiveCell.Offset(-2, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "FRANKY"
ActiveCell.Offset(-2, 0).Range("A1:A5").Select
Selection.Copy
ActiveCell.Offset(5, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(5, 1).Range("A1").Select
Next x
End Sub
Sub CASO1()
MsgBox ("Buenos Días") 'comando para sacar un mensaje en una caja'
ActiveCell.Value = 1000 'comando para escribir 1000'
ActiveCell.Offset(2, 3).Select
End Sub
Sub caso2()
'
' caso2 Macro
' Ejercicio de clase
'
' Acceso directo: Ctrl+Mayús+C
'
ActiveWindow.SmallScroll Down:=3
ActiveCell.FormulaR1C1 = "200"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "300"
ActiveCell.Offset(-1, 0).Range("A1:A2").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A9"), Type:= _
xlFillDefault
ActiveCell.Range("A1:A9").Select
ActiveWindow.SmallScroll Down:=3
...