Macros (III) :: Introducción al objeto Range – Celdas

En la primera reseña sobre macros para Excel comentaba que el objeto más importante en la colección de objetos de Excel en es Range;  Range es el objeto central para la escritura del código de las Macros pues es el medio por el cual accedemos a las celdas de cada una de las hojas que componen el libro sobre el cual estamos trabajando, el objeto Range representa entre otros:

–          La selección actual.

–          Una celda en particular.

–          Varios rangos de celdas (“Áreas”).

–          Toda una Columna ó Toda una fila.

–          El mismo rango en diferentes hojas (“Rangos 3D”).

–          Etc.

Como puede deducirse del listado anterior el objeto rango tiene que ver con casi todo lo que hagamos en Excel, al fin de cuentas Excel es una hoja de cálculo y sus funcionalidades se centran la manipulación directa o indirecta de las celdas.

Antes de comenzar algo de teoría:

Según los principios de la programación orientada a objetos, los objetos tienen métodos y propiedades, expliquémoslo así:

Método => Es algo que hace el objeto, una acción determinada.

Propiedad => Es una característica del objeto, algo que lo identifica como el color, el tipo de fuente ó el valor; cabe indicar que algunas propiedades son de solo lectura como “count”, que se encarga de decirnos la cantidad de celdas del rango.

ahora a la práctica:

Para realizar las demostraciones vamos a recurrir a la ventana inmediato que es una de las herramientas más útiles del entorno VBA pues te permite ejecutar código sin escribir la macro en sí, para ello entra al editor de VBA presionando Alt+F11 y visualiza la venta inmediato Ctr + G ó ver/ventana inmediato,  valga aclarar que la ventana inmediato solo es capaz de ejecutar instrucciones de una sola línea, es decir, no puedes escribir una macro completa en la ventana inmediato para probarla.

Las intrucciones que cambian el valor de las propiedades o que ejecutan métodos se escriben tal cual, pero las instrucciones que consultan el valor de las propiedades de solo lectura se escriben con “?” en el comienzo, como puede verse en ejemplo:

Imagen1

Muy bien prueba estas instrucciones en la ventana inmediato escribiéndolas y presionando enter.

Range(“a1”).value= “Hola Mundo” — da el valor “hola mundo” a la celda a1 de la hoja en la que estemos.

Range (“a1:b5”).value = “Hola Mundo” — le da el valor a todas la celdas del rango a1:b5.

Range(“A:A”).value= “Hola Mundo” — le da el valor a toda la columna A de la hoja actual.

Range(“1:1”).value = “Hola Mundo” —  le da el valor a toda la fila 1 de la hoja actual.

Activecell.value = “Hola Mundo” —- le da el valor a la celda activa.

Selection.vaue= “Hola Mundo” — le da el valor al conjunto de celdas que componen la selección actual.

Nota: Activecell es igual a Selection si solo tenemos seleccionada una celda, pero si tenemos seleccionado un rango, la celda activa (“Activecell”) será la primera de la parte superior izquierda o de la que parta la selección, podemos identificarla como la celda resaltada en la selección.

Cells(1,1).value = “Hola mundo” — le da el valor a la fila 1 de la columna 1 en la hoja actual.

Rows(1).value = “Hola Mundo” — Le da el valor a toda la fila 1 de la hoja activa.

Columns(1).value= “Hola Mundo” — Le da el valor a la primera columna , es decir, la columna  A.

Como puedes ver existen diversas formas de referirse a un rango de celdas, pero lo importante es tomar conciencia de que TODAS SON UN OBJETO RANGE , pues con esto en mente podremos utilizar los métodos que tiene este objeto o modificar sus propiedades.

Comencemos con las propiedades más comunes para que puedas jugar con las diferentes formas en que puedes referirte a un rango:

  1. Value
  2. Copy => Copia a memoria el contenido de una celda
  3. Address => nos indica la referencia del objeto range con el que estamos trabajando (solo lectura)
  4. Bold => Esta en negrilla.
  5. Count => Nos indica cuantas celdas tiene el objeto Range (solo lectura)
  6. Interior.colorindex => color de relleno de la celda, se corresponde con los que podemos elegir de la barra de herramientas.
  7. Formula => puedes escribir una formula o consultar la fórmula del objeto Range en cuestion.

Bueno hasta aquí en este post, próximamente tocaremos los métodos disponibles para el objeto range.

One thought on “Macros (III) :: Introducción al objeto Range – Celdas

  1. Hola compañero, buenas tardes, estoy haciendo una funcion, pero por más sencilla que la hago, manda un error al llamar dicha función, la funciín hace lo que yo quiero, pero el problema es el error que manda, si me pudieran ayudar, les dejo la funcion :
    Dato es una celda donde tengo un valor, que es el que define lo que va hacer la funcion, lo que trata es que dependiendo de Dato voy a pintar un celda
    Function AAA(Dato As Range) As Integer
    Cells(Dato.Value, 5).Interior.ColorIndex = 10
    AAA = 0
    End Function

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s