Nota: Recuerde que en la versión 2016 se debe guardar como un archivo de MS
Excel habilitado para macros, es decir con la extensión .xlsm; caso contrario no
guarda el código de las macros.
CÓDIGOS DE UNA MACRO DE EXCEL
Para observar los códigos de una macro debemos seguir los pasos:
1. En primer lugar seleccione la celda B5 antes de empezar la grabación de la
Macro, se visualiza:
2. Presione el Botón Grabar Macro del grupo Código MS Excel
muestra el cuadro de Dialogo Grabar Macro:
3. Ingrese un nombre de la macro por ejemplo saludo
4. En la opción Método Abreviado escriba la letra s, por lo tanto la macro se
llamará con Control + s
5. En Guardar macro en: Seleccione en el lugar en donde desea guardar la macro,
por ejemplo Este libro.
6. En Descripción puede agregar una descripción de lo que hace la macro, este
punto es opcional. Solo le sirve para que usted recuerde acerca de lo que hace
la macro, pues este código no es interpretado por el compilador.
7. Presione el botón Aceptar. Excel inicia la grabación del la Macro
8. Trasládese a la celda A1 y escriba Hola amiguitos, después presione Enter
para aceptar el valor en la celda.
9. Pare la grabación de la macro presionando el botón
Detener Grabación del grupo Código. Excel ha grabado los pasos y ha
generado un código.
10.Para visualizar el código generado, presione la tecla Alt + la tecla de función
F11(Alt + F11), o de un clic derecho en la hoja de cálculo:
11.Seleccione la opción Ver código. También puede acceder al grupo Código, al
dar clic en la opción Visual Basic
12. Excel nos traslada al Editor de Visual Basic. Se visualiza:
13.Active los siguientes cuadros o ventanas:
• De clic en el Menú Ver y elija la opción Explorador de Proyectos
• De clic en el Menú Ver y elija la opción Ventana Propiedades
14.Del cuadro Proyecto de doble clic en Módulos o simplemente presione el
signo de + que aparece en la opción Módulos. Se activara debajo de Módulos
la Opción Modulo1.
15.De doble clic en Modulo1. Se mostrará en el Editor de Visual Basic el código de
la macro que grabamos de la siguiente forma:
Sub saludo()
'' saludo Macro
' Mi primera macro
' Autor: Tu Nombre
' Acceso directo: CTRL+s
'Range("A1").Select
ActiveCell.FormulaR1C1 = "Hola amiguitos"
End Sub
16.Que es lo que significa esto nos preguntaremos asombrados, a continuación se
da una explicación de lo que ha hecho Excel:
• Sub y End Sub indican el inicio y el final del procedimiento de la macro
saludo
• Todo lo que aparece con un apóstrofe ´ indica que no se tomará en cuenta
que es solo texto o comentarios y ese texto aparece en color verde.
• Range("A1").Select Indica que lo primero que hicimos al grabar la macro fue
trasladarnos a la celda A1. La orden Range nos permite trasladarnos a una
celda.
• ActiveCell.FormulaR1C1 = "Hola amiguitos" Esto indica que se escribirá en
la celda en que se encuentra el valor de texto Hola amiguitos. Todo lo que
aparece entre comillas siempre será un valor de texto. La orden
ActiveCell.FormulaR1C1 nos permite escribir un valor en la celda activa. Para
comprender alteramos el código dentro del editor de Visual Basic.
Sub saludo()
'
saludo Macro
' Mi primera macro
' Autor: Tu Nombre
' Acceso directo: CTRL+s
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Hola amiguitos"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Bienvenidos al curso de Excel"
End Sub
17.Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s
hará lo siguiente:
En A1 escribirá Hola amiguitos
En B1 escribirá Bienvenidos al curso de Excel
Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s hará
En A1 escribirá Hola amiguitos
En B1 escribirá Bienvenidos al seminario de Excel.
Se visualiza:
Sub saludos()
' saludo Macro
' Mi primera macro
' Autor: Patricia Acosta
' Acceso directo: CTRL+s
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Hola amiguitos"
'
Range("B1").Select
ActiveCell.FormulaR1C1 = "Bienvenidos al seminario de Excel"
End
End Sub
Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s hará:
En A1 escribirá Hola amiguitos. En B1 escribirá Bienvenidos al seminario de Excel.
Para salir del editor de clic en el Menú Archivo y elija la opción Cerrar y volver a
Microsoft Excel.
Si no desea salir por completo de clic en el botón Microsoft Excel que se
encuentra activado en:
Cuando deseé volver al editor de clic en: la pestaña Programador
CÓDIGOS MÁS COMUNES
Trasladarse a una Celda
Range("A1").Select
Escribir en una Celda
Activecell.FormulaR1C1="Paty Acosta"
Letra Negrita
Selection.Font.Bold = True
Letra Cursiva
Selection.Font.Italic = True
Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight End With
Tipo de Letra(Fuente)
With Selection .Font
.Name = "AGaramond"
End With
Tamaño de Letra(Tamaño de Fuente)
With Selection.Font
.Size = 15
End With
Copiar
Selection.Copy
Pegar
ActiveSheet.Paste
Cortar
Selection.Cut
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar Cells.Find(What:="Tu Nombre", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Insertar Fila
Selection.EntireRow.Insert
Eliminar Fila
Selection.EntireRow.Delete
Insertar Columna
Selection.EntireColumn.Insert
Eliminar Columna
Selection.EntireColumn.Delete
Abrir un Libro
Workbooks.Open Filename:="C:\documentos\miarchivo.xls"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\tauro.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
CUADRO DE CONTROL – CONTROLES ACTIVEX
Una de las opciones más interesantes que tiene el Excel es la de utilizar los “cuadros
de control”. Los cuadros de control se usan para crear verdaderos programas en
Excel y pueden ser de mucha utilidad.
Esta herramienta está ubicada en: En Excel 2007 se encuentra el grupo Controles de la pestaña Programador Este grupo de Controles cuenta con tres opciones muy importantes como:
1. Modo diseño: permitirá trabajar en el diseño de los controles de ActiveX
2. Propiedades: permiten activar la propiedad de cada control
3. Ver código: permite agregar código a cada control.
Para iniciar cree las hojas: Menú, Ventas y Compras
Seleccione la hoja Menú para allí crear dos botones.
Para trabajar con estos controles en necesario Activar el modo de diseño y dar clic
en Insertar, seleccione el Botón de comando.
Esta vez haremos un botón que cuando se presione pase a otra hoja del Excel. Por
ejemplo se puede hacer un menú con varios botones que al presionarlos pasen a las
distintas opciones.
Comencemos...
En la hoja Menú cree dos “botones de comando”.
Seleccione el primer botón y de un clic derecho en la opción y
muestre las propiedades. Cambie la Propiedad “Caption” por: “Ventas” En Name:
btnventas
Seleccione el segundo botón y muestre las propiedades
Cambie la Propiedad “Caption” por: “Compras”
En Name: btncompras
Si realizó bien estos pasos Ud. Debería ver lo siguiente:
Si desea colocar iconos en los botones seleccione la propiedad Picture e inserte una
imagen de extensión .ico.
Para que visualice el texto cambie la posición PicturePosition a: 5 Seleccione el
primer botón y haga clic en ver código
En esta parte se abrirá el Editor de Visual Basic y debe escribir lo siguiente:
Hoja2.Activate
Cierre el editor de Visual Basic (nota: cada vez que cierre el editor de Visual Basic,
hágalo del cuadro de cerrar “X” que está mas arriba, porque puede confundirse y
cerrar la ventana de editar código, no se preocupe que no está cerrando Excel.)
Seleccione el segundo botón y haga clic en ver código
Escriba: Hoja3.activate
Salga del modo de diseño y navegue con los botones que programó.
Más adelante utilizaremos estos botones para cargar formularios desde VBA en
Excel.
O añada el código de las macros que grabó con la grabadora.
CREANDO FORMULARIOS Y PROGRAMÁNDOLOS
Ahora aprenderemos a dominar lo máximo de Excel que es crear formularios y
programarlos, bueno un formulario es una ventana que se programa por medio de
controles y estos controles responden a sucesos que nosotros programamos. Todo
esto se encuentra dentro de Visual Basic.
A continuación Muestro como crear un formulario y como programarlo:
1. Presione La Teclas Alt + F11, para entrar al editor de Visual Basic.
2. Activa las siguientes opciones:
• De clic en el Menú Ver y elija la opción Explorador de Proyectos
• De clic en el Menú ver y elija la opción Ventana Propiedades
3. Del Menú Insertar elija la Opción UserForm.
Esto inserta el Formulario que programaremos con controles. En el
Explorador de Proyecto se observara que se inserto el UserForm.
También cuando de clic en el Formulario USERFORM1 se debe de activar el
Cuadro de Herramientas, si no se activa de clic en el Menú Ver y elija la
opción Cuadro de Herramientas.
4. Elija del Cuadro de Herramientas el Control Etiqueta el que tiene la A y
Arrastre dibujando en el Formulario USERFORM1 la etiqueta. Quedara el
nombre Label1, después de un clic en la etiqueta dibujada y podrá
modificar el nombre de adentro y pondremos ahí Nombre. Si por error da
doble clic en la etiqueta y lo manda a la pantalla de programación de la
etiqueta, solo de doble clic en UserForm1 que se encuentra en el
5. Elija del Cuadro de Herramientas el control Cuadro de Texto el que tiene
ab y arrastre dibujando en el formulario USERFORM1 el cuadro de texto
a un lado de la etiqueta que dice Nombre. El cuadro de texto debe de
estar vacío y su nombre será Textbox1, el nombre solo aparecerá en el
control.
6. Haga los dos pasos anteriores igualmente poniendo Dirección en la Label2
y Teléfono en la Label3 y también dibújelos su Textbox. Esto quedara así
después de haberlo hecho.
Si tiene algún problema al dibujar las etiquetas o los cuadros de texto, solo
cámbiele el nombre a la etiqueta o el cuadro de texto en la Ventana Propiedades la
opción se llama (Name). El Error que marque puede ser Nombre Ambiguo, pero si le
cambia el Nombre al control se quitara el error. Puede ponerle cualquier nombre en
lugar de Label1.
Los controles como las Etiquetas y Cuadros de Textos pueden modificarse algunas
opciones en la Ventana Propiedades Para hacer esto es necesario tener
conocimiento sobre las propiedades de los controles. No altere las propiedades si no
las conoce.
7. Elija del Cuadro de Herramientas el control Botón de Comando y Arrastre
dibujando en el Formulario USERFORM1 el Botón, después de un clic en el nombre
del Botón dibujado y podrá modificar el nombre y pondremos ahí Insertar.
Si por error da doble clic en la Botón y lo manda a la pantalla de programación de la
etiqueta, solo de doble clic en UserForm1 que se encuentra en el Explorador de
Proyecto.
Así quedara el Formulario formado por los controles:
8. Ahora de doble clic sobre el control Textbox1 para programarlo y después inserte
el siguiente código:
Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
Esto indica que se valla a A9 y escriba lo que hay en el Textbox1
Nota.-Lo que esta en azul lo genera Excel automáticamente, usted solo escribirá lo
que esta en Negrita.
Para volver al Formulario y programar el siguiente Textbox de doble clic en
UserForm1 que se encuentra en el Explorador de Proyecto, o simplemente de clic
en Ver Objeto en el mismo Explorador de Proyecto
9. Ahora de doble clic sobre el control Textbox2 para programarlo y después inserte
el siguiente código:
Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Esto indica que se valla a B9 y escriba lo que hay en el Textbox2.
Para volver al Formulario y programar el siguiente Textbox de doble clic en
UserForm1 que se encuentra en el Explorador de Proyecto, o simplemente de clic
en Ver Objeto en el mismo Explorador de Proyecto.
10. Ahora de doble clic sobre el control Textbox3 para programarlo y después
inserte el siguiente código:
Private Sub TextBox3_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Esto indica que se valla a C9 y escriba lo que hay en el Textbox3
Para volver al Formulario y programar el Botón de Comando Insertar de doble clic
en UserForm1 que se encuentra en el Explorador de Proyecto, o simplemente de
clic en Ver Objeto en el mismo Explorador de Proyecto.
11. Ahora de doble clic sobre el control Botón de Comando para programarlo y
después inserte el siguiente código:
Private Sub CommandButton1_Click()
‘inserta un renglón
Selection.EntireRow.Insert
‘Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
‘Textbox1.SetFocus Envía el cursor al Textbox1 para volver a capturar los
datos
TextBox1.SetFocus
Nota.-El comando Rem es empleado para poner comentarios dentro de la
programación, el comando Empty es empleado para vaciar los Textbox.
12. Ahora presione el botón Ejecutar Userform que se encuentra en la barra de
herramientas o simplemente la tecla de función F5.
Se activará el Userform1 y todo lo que escriba en los Textbox se escribirá en Excel y
cuando presione el botón Insertar, se inserta un renglón y se vaciaran los Textbox
y después se mostrara el cursor en el Textbox1.
TRABAJANDO CON FORMULAS
Es de suma importancia saber aplicar Formulas en Macros de Excel, ya que la
mayoría de las hojas de cálculos las involucran, por ejemplo los Inventarios, las
Nominas o cualquier otro tipo de hoja las llevan, es por eso que en la siguiente Fase
se muestra como manejar Formulas en Macros de Excel.
Presione La Teclas Alt + F11, para entrar al editor de Visual Basic.
Activa las siguientes opciones:
• De clic en el Menú Ver y elija la opción Explorador de Proyectos
• De clic en el Menú ver y elija la opción Ventana Propiedades
Del Menú Insertar elija la Opción UserForm. Esto inserta el Formulario que
programaremos con controles. En el Explorador de Proyecto se observará que se
inserto el UserForm.
Ahora crearas un formulario con el siguiente aspecto:
El formulario tendrá:
• Tres etiquetas
• Tres Textbox
• Un Botón de Comando
Los datos que se preguntaran serán Nombre y Edad, los Días Vividos se generarán
automáticamente cuando insertes la edad. A continuación se muestra como se
deben de programar estos Controles
Programación de los Controles:
Private Sub CommandButton1_Click()
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
‘aquí se crea la Fórmula
TextBox3 = Val(TextBox2) * 365
‘El Textbox3 guardara el total de la multiplicación del Textbox2 por 365
‘El Comando Val permite convertir un valor de Texto a un Valor Numérico
‘Esto se debe a que los Textbox no son Numéricos y debemos de Convertirlos
End Sub
Private Sub TextBox3_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub
Continuará en la parte II ..................
No hay comentarios.:
Publicar un comentario