Home :: Otros :: Cómo programar macros en MS Excel
 
macro_excel

Cómo programar macros en MS Excel

abr 08, 2010 en Otros,Productividad por

A parte de ser una buena herramienta MS Excel, permite a sus usuarios programar rutinas utilizando VBA. Si quieres saber cómo hacer para acceder a esta opción y además ver algunos ejemplos, te recomiendo leer este post.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Se define como Macro al conjunto de acciones que se realizan repetitivamente que, al ser almacenadas en un procedimiento, pueden ser activadas con simplemente pulsar una tecla.

Ahora, si hablamos únicamente de Macros en MS Excel, podemos de decir que una macro es una aplicación o subrutina hecha en Visual Basic for Applications, (VBA) que es almacenada en nuestra Hoja de Cálculo que al ser activa produce un resultado.

El objetivo de este post, es iniciarte en el mundo de macros en VBA, para que las grabes y posteriormente las uses en tus hojas de cálculo. En esta ocasión, el único software que necesito es MS Excel, en este caso la versión 2007, yo tengo la versión en inglés, pero funciona en español de la misma forma. Bueno, necesito que inicialices MS Excel.

Activar la Opción de Developer en MS Excel

Luego de iniciada la aplicación, debes de comprobar que tienes activada la opción de Developer, si no la tienes activada debes de activar el menú de opciones, dando clic en :

image

Luego, en la ventana que obtienes,  ingresar a Excel Options,

Por último, en la ventana Popular, activar el check box de Show Developer tab in the Ribbon.

image 

Pulsas Ok y en tu menú aparecerá la opción de Developer.

Creando un método

image

Lo que voy a hacer es acceder a la primera opción Visual Basic, donde podré codificar lo que necesite grabar como macro.

Cuando ingresamos a la opción anterior, accedemos a un editor, donde aparece sobre el lado izquierdo referencia a las Hojas (Sheets) que tenemos activas y también referencia a todo el libro (Workbook). Esto lo muestra por el siguiente motivo: Una macro puede ser definida para una hoja en especial (Sheet) o para todos las hojas (Workbook).

image

Yo voy a escoger ThisWorkBook y dar doble clic sobre el mismo para que se habilite la opción de crear una rutina.

image

Empezaremos programando una rutina bastante sencilla, como por ejemplo que muestre un mensaje.

Sub MensajeBienvenida()

  MsgBox ("Hola, desde VBA")

End Sub

Si alguna vez programaste en Visual Basic, puedes apreciar que es bastante parecido.

Invocando el método creado

Para poder probar nuestro código creado, debemos de regresar a nuestro libro en Excel y vamos a colocar un botón, el cual estará asociado al método MensajeBienvenida.

Para regresar al libro de Excel, basta con pulsar la combinación de teclas Alt+F11.

Estando en el libro, accedemos al menú Developer y en la opción Insert, buscamos un botón para insertarlo en nuestra hoja.

image

Luego de colocar el botón y darle una dimensión  (ancho y alto) con el mouse, inmediatamente te va a solicitar que lo asocies a una rutina, ya sea una nueva o una existente. En nuestro caso lo asociaremos a MensajeBienvenida.

image

Pulsa OK, para asociar el botón a la rutina que seleccionaste.

Una recomendación, si vas a empezar a colocar controles en tus hojas de MS Excel, debes de tener activado el botón de Diseño (Design Mode) de forma que puedas manipular los controles con facilidad, pero recuerda deshabilitarlo si quieres que el componente ejecute el método asociado.

Bueno, voy a ejecutar el botón, pulsando clic sobre el mismo.

image

Como puedes observar, al pulsar clic se obtiene un mensaje según el código que he colocado en el método MensajeBienvenida.

Algunas Rutinas Básicas

Ahora que ya sabes como asociar como crear tus propias rutinas en MS Excel, te dejo algunas rutinas clásicas para que te ayuden en tu labor.

Sumar los valores de una columna

Sub SumarTodoslosDatosdeUnaColuma()
  Dim ultimafila As Integer
  Dim Columna As Integer
  'Capturamos en indice de lo Columna, el cual es ingresado en la Celda C1
  Columna = Val(Cells(1, "C").Value)
  'Calculamos la ultima fila
  ultimafila = Cells.SpecialCells(xlLastCell).Row
  Dim i As Integer
  Dim suma As Double
  suma = 0
  'Sumamos los valores
  For i = 1 To ultimafila
  suma = suma + Cells(i, Columna).Value
  Next i
  ' Mostramos el resultado en una celda
  Cells(ultimafila + 1, Columna).Value = suma
  'Sombreamos de rojo la Celda con el resultado
  Cells(ultimafila + 1, Columna).Interior.Color = RGB(255, 0, 0)
  'Seleccionamos la celda para asignarle un tipo de borde
  Cells(ultimafila + 1, Columna).Select
  'Cambiamos el borde superior de la celda a uno doble
  Selection.Borders(xlEdgeTop).LineStyle = xlDouble
End Sub

Obtener los datos de la PC

Sub Mostrar_Datos_Del_Usuario()
  'Nombre del Usuario
  Cells(1, 1).Value = Application.UserName
  'Nombre de la Empresa
  Cells(2, 1).Value = Application.OrganizationName
  'Sistema Operativo
  Cells(3, 1).Value = Application.OperatingSystem
  'Impresora Activa
  Cells(4, 1).Value = Application.ActivePrinter

End Sub

Eliminar Filas en Blanco

Sub Eliminar_Filas_En_Blanco()

Dim columna As Integer
'Indice de la columna en la que deseamos trabajar
columna = 1
Dim ultimafila As Integer
'Ultima Fila con datos
ultimafila = Cells.SpecialCells(xlCellTypeLastCell).Row
Dim i As Integer
'Seleccionamos una a una las filas de la columna.
Cells(1, columna).Select
For i = 1 To ultimafila

    'Si no tiene datos, la eliminamos
    If ActiveCell = "" Then
        Selection.EntireRow.Delete
        ' Decrementamos el total de filas en uno
        ultimafila = ultimafila - 1
    Else
        ' Seleccionamos la siguiente celda
        ActiveCell.Offset(1, 0).Select
    End If

Next i

End Sub

Espero que este post sirva para que te inicies en la programación de macros en Excel, incrementando la funcionalidad de tus hojas de cálculo


Autor:


Comentarios (4)

Fabs dice:

Excelente Post, voy iniciando en esto de la programación en Excel y tambien on VBA.

Solo había programado en PHP y esto del Excel se me hace algo muy interesante.

Había leído otros foros, que aunque buenos, omiten cosas como estas… el simple hecho de como iniciar la función de programación.

La verdad que ni eso sabía.

Muchas gracias!

Saludos desde México.

Blondy dice:

Supririsgnly well-written and informative for a free online article.

fernando mora dice:

como desplego un resultado en un formulario es decir que salga el total solamente en un formulario

victor.parasi dice:

Hola,
A qué te refieres con solamente en un formulario?, Me puedes dar mayor detalle.

Deja un comentario

   

copstone en Facebook

Otros artículos

En este artículo te muestro como simular el teclado en Windows, es decir, cómo hacer que un programa escriba en el teclado por nosotros. No te imaginas lo útil que puede ser este conocimiento así que te recomiendo que le des una leída.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

La cámara web que utilizamos en nuestras PC’s pueden ser manipuladas con código en C++ junto con las API de Windows. Con estas podemos detectar movimiento, tomar fotos y muchas cosas más.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Sabías que puedes configurar tu aplicación con sólo cambiar unos valores y sin necesidad de estar ejecutándola constantemente?. Te dejo este post para que aprendas lo fácil que es y sobre todo lo útil que puede resultarte.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Cuando hablamos de Windows de seguro recuerdas en tu mente una bandera con los colores rojo, verde, azul y amarillo o quizás el sonido clásico de este Sistema Operativo cuando iniciamos una sesión. Ya pasaron varios años y sobre todos varias versiones (7 para ser exactos), desde la primera vez que apareció el primer Sistema Operativo Windows. En esta ocasión Microsoft ha lanzado la nueva versión de su clásico producto y sin temor a equivocarme es largamente superior a su versión anterior.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Estás cansado de ver siempre la forma rectangular en tus aplicaciones? Quieres hacer que tu formulario tenga una forma circular o que se parezca a una caricatura? En este artículo te voy a enseñar a modificar la forma rectangular del formulario por la que tu quieras.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Calendario

abril 2010
L M X J V S D
« mar   may »
 1234
567891011
12131415161718
19202122232425
2627282930  

Categorías

Comparte este artículo

  • Facebook
  • Google Bookmarks
  • Google Gmail
  • Twitter
  • Yahoo Mail
  • Hotmail
  • LinkedIn
  • Share
TIENES ALGO QUE PREGUNTAR? ESCRÍBENOS AQUÍ

Copyright © 2012 - Programando por diversion

Subir