Uso de las funciones LLAMAR y REGISTRAR

Importante: Precaución    Una modificación incorrecta del Registro podría causar graves daños en el sistema operativo e, incluso, forzar su reinstalación. Microsoft no puede garantizar que puedan resolverse los problemas resultantes de una modificación incorrecta del Registro. Antes de modificar el Registro, realice una copia de seguridad de todos los datos de valor. Para obtener la información más reciente sobre el uso y la protección del Registro de su equipo, vea la Ayuda de Microsoft Windows.

Este artículo describe la sintaxis de la fórmula y el uso de las funciones LLAMAR, REGISTRAR e ID.REGISTRO de Microsoft Excel.

Nota: Las funciones LLAMAR y REGISTRAR no están disponibles en Excel Online.

En este artículo

Descripción

Tipos de datos

Comentarios

Información sobre tipos de datos adicionales

Tipos de datos F y G

Tipo de datos K

Tipo de datos O

Tipo de datos P

Tipo de datos R. Llamar a funciones de Microsoft Excel desde archivos DLL

Funciones volátiles y actualización

Modificar in situ. Funciones declaradas como Void

Descripción

A continuación se describen los tipos de datos del argumento y del valor devuelto que usan las funciones LLAMAR, REGISTRAR e ID.REGISTRO. Los argumentos y los valores devueltos difieren ligeramente dependiendo del entorno operativo. Estas diferencias se indican en la tabla de tipos de datos.

Principio de página

Tipos de datos

En las funciones LLAMAR, REGISTRAR e ID.REGISTRO, el argumento tipo especifica el tipo de datos del valor devuelto y los tipos de datos de todos los argumentos para la función de la DLL o el recurso de código. El primer carácter del argumento tipo especifica el tipo de datos del valor devuelto. Los demás caracteres indican los tipos de datos de todos los argumentos. Por ejemplo, una función de DLL que devuelve un número de coma flotante y acepta un entero y un número de coma flotante como argumentos requiere el valor "BIB" como argumento tipo.

La tabla siguiente contiene una lista completa de los códigos de tipos de datos que reconoce Microsoft Excel, una descripción de cada tipo de datos, una descripción de la forma en que se pasa el argumento o el valor de retorno y una declaración típica de los tipos de datos en el lenguaje de programación C.

Código

Descripción

Se pasa por

Declaración en C

A

Lógico
(FALSO = 0), VERDADERO = 1)

Valor

short int

B

Número con coma flotante de 8 bytes IEEE

Valor
(Windows)

Referencia (Macintosh)

doble
(Windows)

double * (Macintosh)

C

Cadena terminada en valor nulo (longitud máxima de la cadena = 255 caracteres)

Referencia

char *

D

Cadena contada en bytes (el primer byte contiene la longitud de la cadena; longitud máxima de la cadena = 255 caracteres)

Referencia

Unsigned char *

E

Número con coma flotante de 8 bytes IEEE

Referencia

doble *

F

Cadena terminada en valor nulo (longitud máxima de la cadena = 255 caracteres)

Referencia (modificar in situ)

char *

G

Cadena contada en bytes (el primer byte contiene la longitud de la cadena; longitud máxima de la cadena = 255 caracteres)

Referencia (modificar in situ)

unsigned char *

H

Entero de 2 bytes sin signo

Valor

unsigned short int

I

Entero de 2 bytes con signo

Valor

short int

j

Entero de 4 bytes con signo

Valor

long int

K

Matriz

Referencia

FP *

L

Lógico
(FALSO = 0, VERDADERO = 1)

Referencia

short int *

M

Entero de 2 bytes con signo

Referencia

short int *

N

Entero de 4 bytes con signo

Referencia

long int *

O

Matriz

Referencia

Se pasan tres argumentos:
unsigned short int *
unsigned short int *
double [ ]

P

Estructura de datos OPER de Microsoft Excel

Referencia

OPER *

R

Estructura de datos XLOPER de Microsoft Excel

Referencia

XLOPER *

Principio de página

Observaciones

  • Las declaraciones del lenguaje C se basan en el supuesto de que el compilador usa de forma predeterminada valores double de 8 bytes, valores short int de 2 bytes y valores long int de 4 bytes.

  • En el entorno de programación de Microsoft Windows, todos los punteros son punteros de tipo far (remoto). Por ejemplo, debe declarar el código de tipo de datos D como unsigned char far * en Microsoft Windows.

  • Todas las llamadas a funciones de archivos DLL y a recursos de código se realizan con la convención de nomenclatura Pascal. Casi todos los compiladores de C permiten usar la convención de nomenclatura Pascal añadiendo la palabra clave Pascal a la declaración de la función, como se muestra en el ejemplo siguiente: pascal void main (rows,columns,a)

  • Si una función usa un tipo de datos para pase por referencia (pass-by-reference) como tipo de retorno, puede pasar un puntero nulo como valor de retorno. Microsoft Excel interpretará el puntero nulo como valor de error #¡NUM!.

Principio de página

Información sobre tipos de datos adicionales

Esta sección contiene información detallada sobre los tipos de datos F, G, K, O, P y R y otras informaciones sobre el argumento tipo.

Tipos de datos F y G

Con los tipos de datos F y G, una función puede modificar un búfer de cadena que esté asignado por Microsoft Excel. Si el código de tipo de retorno es F o G, Microsoft Excel descarta el valor devuelto por la función. En lugar de este valor, Microsoft Excel busca en la lista de argumentos de función el primer tipo de datos correspondiente (F o G) y toma el contenido actual del búfer de cadena asignado como valor de retorno. Microsoft Excel asigna 256 bytes para el argumento, de forma que la función puede devolver una cadena más larga que la que recibió.

Principio de página

Tipo de datos K

El tipo de datos K usa un puntero para una estructura FP de tamaño variable. Debe definir esta estructura en el archivo DLL o recursos de código como sigue:

typedef struct _FP
{
unsigned short int rows;
unsigned short int columns;
double array[1]; /* Actually, array[rows][columns] */
} FP;

La declaración double array[1] únicamente asigna el almacenamiento para una matriz de un solo elemento. El número de elementos de la matriz real es igual al número de filas multiplicado por el número de columnas.

Principio de página

Tipo de datos O

El tipo de datos O solo puede usarse como argumento, no como valor de retorno. Pasa tres elementos: un puntero para el número de filas de una matriz, un puntero para el número de columnas de una matriz y un puntero para una matriz bidimensional de números de coma flotante.

En lugar de devolver un valor, una función puede modificar una matriz pasada por el tipo de datos O. Para ello, puede usar ">O" como argumento tipo. Para más información, vea más adelante "Modificar in situ. Funciones declaradas como Void".

El tipo de datos O se creó para que fuera compatible directamente con los archivos DLL Fortran, que pasan argumentos por referencia.

Principio de página

Tipo de datos P

El tipo de datos P es un puntero para una estructura OPER. La estructura OPER contiene 8 bytes de datos, seguidos por un identificador de 2 bytes que especifica el tipo de datos. Con el tipo de datos P, una función de DLL o recurso de códigos puede tomar y devolver cualquier tipo de datos de Microsoft Excel.

La estructura OPER se define como sigue:

typedef struct _oper

{
union
{
double num;
unsigned char *str;
unsigned short int bool;
unsigned short int err;
struct
{
struct _oper *lparray;
unsigned short int rows;
unsigned short int columns;
} array;
} val;
unsigned short int type;
} OPER;

El campo Tipo contiene uno de estos valores.

Tipo

Descripción

Campo Val para usar

1

Numérico

num

2

Cadena (el primer byte contiene la longitud de la cadena)

str

4

Booleana (lógica)

bool

16

Error: los valores de error son:

0#¡NULO!

7#¡DIV/0!

15#¡VALOR!

23#¡REF!

29#¿NOMBRE?

36#¡NUM!

42#N/A

err

64

Matriz

matriz

128

Falta argumento

256

Celda vacía

Los dos últimos valores solo pueden usarse como argumentos, no como valores de retorno. El valor de argumento no encontrado (128) se pasa cuando quien realiza la llamada omite un argumento. El valor de celda vacía (256) se pasa cuando quien realiza la llamada pasa una referencia a una celda vacía.

Principio de página

Tipo de datos R. Llamar a funciones de Microsoft Excel desde archivos DLL

El tipo de datos R es un puntero a una estructura XLOPER, que es una versión mejorada de la estructura OPER. En Microsoft Excel versión 4.0 y posteriores, puede usar el tipo de datos R para crear archivos DLL y recursos de código que llamen a funciones de Microsoft Excel. Con la estructura XLOPER, una función de DLL puede pasar referencias de hojas y efectuar control de flujo, además de pasar datos. La descripción exhaustiva del tipo de datos R y de la interfaz de programación de Microsoft Excel (API) queda fuera del ámbito de este tema. La guía Microsoft Office XP Developer's Guide (disponible solo en inglés) contiene información detallada sobre el tipo de datos R, la interfaz de programación de Microsoft Excel (API) y muchos otros aspectos técnicos de Microsoft Excel.

Principio de página

Funciones volátiles y actualización

Por lo general, Microsoft Excel calcula una función de DLL (o un recurso de código) solo cuando se especifica en una celda, cuando uno de sus precedentes cambia o cuando la celda se calcula durante una macro. En una hoja de cálculo puede convertir en volátil una función de DLL o un recurso de código; es decir, se actualiza cada vez que se actualiza la hoja de cálculo. Para hacer una función volátil, agregue un signo de exclamación (!) como último carácter del argumento tipo.

Por ejemplo, en Microsoft Excel para Windows, la fórmula de hoja de cálculo siguiente se actualiza cada vez que se actualiza la hoja de cálculo:

LLAMAR("Kernel32","GetTickCount","J!")

Principio de página

Modificar in situ. Funciones declaradas como Void

Puede usar un solo dígito n para el código de tipo devuelto en tipo, donde n es un número del 1 al 9. Esto indica a Microsoft Excel que modifique la variable en la ubicación indicada por el argumento enésimo de tipo, en vez de devolver un valor. Esto se conoce también como modificar in situ. El argumento enésimo debe ser un tipo de datos de pase por referencia (C, D, E, F, G, K, L, M, N, O, P o R). La función de DLL o el recurso de código debe poder declararse igualmente con la palabra clave void en lenguaje C (o la palabra clave procedure en lenguaje Pascal).

Por ejemplo, una función de DLL que toma una cadena terminada con carácter nulo y dos punteros a enteros como argumentos puede modificar la cadena in situ. Use "1FMM" como argumento tipo y declare la función como void.

Las versiones anteriores a Microsoft Excel 4.0 usaban el carácter > para modificar el primer argumento in situ: solo se podía modificar el primer argumento. El carácter > es equivalente a n = 1 en Microsoft Excel versión 4.0 y posteriores.

Principio de página

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×