Traducir el blog

Macros de Excel 4.0 - Funciones de celda

Posted on septiembre 02, 2024 by Excel Pedro Wave

🔝To translate this blog post to your language, select it in the top left Google box.


Incluso si aún no sabes programar las macros de VBA, todavía puedes extraer mucha información de las celdas usando los 66 tipos de funciones de celda de las macros de Excel 4.0.

Más abajo puedes descargar un archivo con macros de Excel 4.0 con el que puedes probar cada uno de los 66 tipos de función con información de las celdas. Este es su aspecto:

Pero antes de profundizar en las macros de Excel 4.0 exploraremos algunas alternativas para obtener información de las celdas.

Voy a exponer tres métodos, con sus PROS y sus CONTRAS, para determinar la anchura de una celda, es decir, el ancho de la columna en la que se encuentra dicha celda:


Función CELDA

Comúnmente existe la función CELDA, que devuelve información sobre el formato, la ubicación o el contenido de una celda. El primer argumento es el tipo de información, el segundo es la referencia a la celda.

Por ejemplo, para obtener el ancho de la celda A1, escriba en cualquier celda una de estas dos fórmulas, con el primer argumento en español o en inglés:

=CELDA("ancho";$A$1)
=CELDA("width";$A$1)

Cada unidad del ancho de columna es igual al ancho de un carácter en el tamaño de fuente predeterminado.

NOTA: El tipo "ancho" devuelve una matriz con 2 elementos. El primer elemento de la matriz es el ancho de columna de la celda, redondeado a un entero. El segundo elemento de la matriz es un valor booleano; el valor es VERDADERO si el ancho de columna es el predeterminado o FALSO si el usuario ha establecido explícitamente el ancho.

PROS:

  • Se edita en una celda con la autoayuda de las funciones.
  • Es una función nativa de Excel.
  • Funciona en todo tipo de libros de Excel, incluso del tipo sin macros: *.xlsx
  • Es compatible con versiones desde Excel 2010.

CONTRAS:

  • ATENCIÓN: El ancho de columna de la celda es redondeado a un valor entero.
  • Es sensible al idioma de Excel. Si se escribe "ancho" en el primer argumento, genera error en un idioma distinto del español. Si se escribe "width" obtiene el ancho en cualquier idioma de Excel.
  • Únicamente hay 12 tipos de información. Se puede obtener el "ancho" de una celda pero no el "alto".
  • Algunos tipos de información no son compatibles con Excel para la Web, Excel Mobile ni Excel Starter.


Propiedades de las celdas con macros VBA

Se puede obtener el ancho de la celda activa en el lenguaje VBA con la siguiente función definida por el usuario (UDF - User Defined Function):

Siendo una unidad de ancho de columna igual al ancho de un carácter en el tamaño de fuente predeterminado, por lo que esta función devuelve el mismo valor decimal (double) que la función CELDA.

Si en lugar de la propiedad ColumnWidth, con el ancho de una columna en dichas unidades, se llama a la propiedad Width, lo que devuelve es el ancho en puntos, siendo un punto igual a 1/72 pulgadas, por lo que no es la misma unidad de medida que la función CELDA.

En lugar de obtener el ancho de la celda activa (ActiveCell) se puede obtener el ancho de un rango (Range).

AVISO: Para actualizar los cambios en la celda activa o en su ancho, se incluye el Método Application.Volatile para marcar como volátil la función. Las funciones volátiles deben recalcularse cuando tenga lugar un cálculo en cualquier celda de la hoja de cálculo, lo que se consigue presionando la tecla <F9> en cualquier momento.

PROS:

  • Con una UDF se puede obtener cualquier propiedad de las celdas de una hoja de cálculo.
  • Función fácil de usar una vez programada.
  • VBA se lanzó por primera vez con MS Excel 5.0 en 1993.

CONTRAS:

  • Se edita la función dentro de una UDF en un módulo con el Editor VBA.
  • No funciona en archivos con formato .xlsx pues VBA necesita formatos .xlsm o .xls habilitados para macros.
  • Para poder modificar la función UDF hay que saber programar en lenguaje VBA y conocer las propiedades de los objetos de Excel.
  • Para obtener cada una de las propiedades de las celdas se suele programar una función distinta en VBA, con lo que para 66 propiedades harán falta otras tantas funciones UDF.
  • No es compatible con Excel para la Web y Excel Mobile.


Funciones de celdas con macros de Excel 4.0

Estas son las funciones que son el tema principal de este artículo.

Para familiarizarse con todas las funciones de las macros Excel 4.0 abre el siguiente enlace en inglés:

Es la referencia de todas las funciones de Macro4, en formato XLM, siendo posible usarlas sin saber programar macros.

Las macros de Excel 4.0 incluyen 66 funciones de celda. Por ejemplo, para obtener el ancho de una celda se llama a esta función en versiones de Excel en español:

=INDICAR.CELDA(núm_tipo;referencia)

Se llama así en versiones de Excel en inglés: 

=GET.CELL(type_num, reference)

Devuelve información sobre el formato, la ubicación o el contenido de una celda referenciada.

Por ejemplo, para obtener el ancho de una celda se deben seguir estos pasos:

1) Seleccionar la celda A1.

2) Seleccionar en la cinta de opciones: Fórmulas > Administrador de nombres

3) Crear un nuevo nombre definido: miAncho

4) Escribir la fórmula de miAncho: =INDICAR.CELDA(16;!A1)

5) Escribir en cualquier celda la fórmula: =miAncho

El primer argumento con el número 16 indica que la función devolverá el ancho de la celda con referencia relativa, que será la celda donde se escriba la fórmula del punto 5), como se puede observar en esta imagen animada:

NOTA: El tipo 16 es la única función que devuelve una matriz horizontal de dos elementos que contiene el ancho de la celda activa y un valor lógico que indica si el ancho de la celda está configurado para cambiar a medida que cambia el ancho estándar (VERDADERO) o es un ancho personalizado (FALSO).

Con el signo de admiración ! se obtiene información de las celdas de cualquier hoja.

TRUCO: Para que únicamente devuelva el ancho, sin el valor booleano, seleccionar la celda A1 y crear un nuevo nombre definido con el Administrador de nombres:

AnchoColumna: =INDICE(INDICAR.CELDA(16;!A1);1;1)+HOY()*0

Escribir en cualquier celda la fórmula: =AnchoColumna

Con la función INDICE se obtiene el primer valor de la matriz que devuelve la función Macro4 número 16.

Con +HOY()*0 la fórmula se comporta como volátil, por lo que se actualizará al presionar la tecla <F9>, aunque no cambie el valor de ninguna celda. Si la fórmula es no volátil, al modificar el ancho de una columna no se actualizará el valor del ancho de la celda.

PROS:

  • Las primeras macros de Excel se lanzaron en 1992, un año antes que VBA.
  • Las funciones de celdas son compatibles con todas las versiones desde MS Excel 4.0
  • No se requiere saber programar para usar las funciones de Macro4, solamente saber llamar a las funciones con los argumentos correctos, siendo el primer argumento el número de tipo de función

CONTRAS:

  • Se edita la función en la fórmula de un nombre definido dentro del Administrador de nombres.
  • Este método utiliza las funciones heredadas de Macro4 y es posible que Microsoft ya no las admita algún día, aunque de momento funcionan en las versiones más recientes de Excel.
  • Hay que saber el número de tipo de información a obtener que, en el caso de las propiedades de las celdas, son 66 tipos distintos.
  • No funciona en archivos con formato .xlsx, pues se debe guardar el libro de trabajo en el formato habilitado para macros .xlsm o .xls
  • No es compatible con Excel para la Web y Excel Mobile.
  • Por seguridad descarga archivos con Macro4 solamente de fuentes confiables, pues los antivirus actuales no detectan riesgos en estas macros heredadas.


Tipos de funciones de celda Macro4

He subido a la nube de MS OneDrive los 66 tipos de funciones de celda, tanto en español como en inglés:

La nube de MS OneDrive es compatible con Excel para la Web, por lo que no es compatible ni con las funciones y macros VBA, ni con las funciones de Macros de Excel 4.0


PLUS: Por lo que he diseñado un libro habilitado para macros de Excel 4.0 para que sea fácil obtener las propiedades de las celdas usando sus 66 tipos de funciones de celda. Este es su aspecto:

Pasos a seguir:

1) Seleccionar el idioma en la celda B2, pues las funciones están traducidas al español y al inglés.

2) Seleccionar una celda cualquiera de la hoja, que se convertirá en la celda activa.

3) Seleccionar uno de los 66 tipos de información con la segmentación de datos.

4) Devuelve la información de la celda activa en la celda F4.

5) Indica el tipo de información en la celda D4.

6) Informa de la función Macro4 usada en las celdas F2:G2


Vídeo con las funciones de celda Macro4

En este vídeo de dos minutos explico cómo usar las funciones de celda de las macros de Excel 4.0


Descarga las funciones de celda Macro4

Descarga las funciones de celda de las Macros de Excel 4.0, compatibles con las versiones de escritorio desde Excel 2010 hasta Excel para Microsoft 365.

Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

Las macros de Internet están bloqueadas de forma predeterminada en Office - Deploy Office | Microsoft Learn

ATENCIÓN: En versiones desde Excel 2016 puede ser que haga falta entrar en: Archivo > Más... > Opciones > Centro de confianza. Presionar el botón: Configuración del Centro de confianza... Y seleccionar: Configuración de macros

Para mayor seguridad de las macros, las versiones desde Excel 2016 también tienen una casilla para Habilitar macros de Excel 4.0 cuando las macros de VBA están habilitadas. Si activa esta casilla, todas las configuraciones anteriores para macros de VBA también se aplicarán a las macros de Excel 4.0 (XLM). Si esta casilla no está seleccionada, las macros XLM se deshabilitarán sin notificación. Más información en este enlace:

Habilitar o deshabilitar macros en archivos de Microsoft 365 - Soporte técnico de Microsoft

Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

Las hojas están protegidos sin contraseña, por lo que puedes estudiar las fórmulas y las funciones Macro4.

ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


Cómo está hecho el probador de funciones de celda

El libro que has descargado permite probar las funciones de celda de las Macros de Excel 4.0

Las fórmulas para obtener información de la celda activa están programadas en nombres definidos con el Administrador de nombres.

La fórmula de la celda F4 es: =miValorCelda, que es un nombre definido por la función Macro4: =INDICAR.CELDA(miFunción;miCelda)

Se define el nombre miFunción: =--IZQUIERDA(miTipoFunción;ENCONTRAR("-";miTipoFunción)-2)

Siendo el valor de miTipoFunción: =FUN!$C$2, que se obtiene al seleccionar un tipo de función con la segmentación de datos de la tabla dinámica de la hoja 'FUN'.

Se obtiene la celda activa definiendo el nombre miCelda: =INDIRECTO(CELDA("address")&SI(HOY();""))


Documentación sobre Macros de Excel 4.0

Para escribir acerca de las funciones de celda utilizando Macros de Excel 4.0, he consultado las siguientes páginas.

Documentación en español:

Trabajar con las macros de Excel 4.0 - Soporte técnico de Microsoft

Todo Sobre Excel: Excel e historia (I): Excel Macro Language (XLM) - Macros 4.0 (abrahamexcel.blogspot.com)

INDICAR.CELDA: Identificar celdas con color de fondo. | EXCEL FORO: Un blog de Excel

Macro Excel 4.0- EVALUAR. Elegir entre fórmulas | EXCEL FORO: Un blog de Excel

Contar celdas por color en Excel • Excel Total

Valor de una celda según el color que adopte otra | El foro Excel de TodoExcel.com

Como saber cuál es el alto de una fila en Excel | El foro Excel de TodoExcel.com

P.D.: Estas dos últimas consultas del foro TodoExcel.com han sido mi inspiración para escribir este artículo.


Documentación en inglés:

Using Excel 4 Macro Functions - Excel Off The Grid

6 Ways to Count Colored Cells in Microsoft Excel [Illustrated Guide] | How To Excel

Info only - get.cell arguments | MrExcel Message Board

get.cell (xlladdins.github.io)

Excel4Macros (xlladdins.github.io)

Excel 4.0 (XLM) macros now restricted by default for customer protection - Microsoft Community Hub

Old school: evil Excel 4.0 macros (XLM) | Outflank

XLM + AMSI: New runtime defense against Excel 4.0 macro malware | Microsoft Security Blog 

Accede a todos los artículos de Macros de Excel 4.0 siguiendo este enlace:

No Response to "Macros de Excel 4.0 - Funciones de celda"

Leave A Reply

Dime si te gusta lo que lees y, si no te gusta, dime por qué. Tengo habilitada la moderación de comentarios. Tu comentario se publicará pronto.

Mi lista de blogs