Utilizar as funções CHAMAR e REGISTAR

Importante: Atenção    Se o registo for editado indevidamente, pode danificar seriamente o sistema operativo, sendo necessário que o instale novamente. O Microsoft não pode garantir que os problemas resultantes da edição indevida do registo possam ser resolvidos. Antes de editar o registo, faça uma cópia de segurança de quaisquer dados importantes. Para obter as informações mais atuais sobre a utilização e proteção do registo do seu computador, consulte a Ajuda do Microsoft Windows.

Este artigo descreve a sintaxe de fórmula e a utilização das funções CHAMAR, REGISTAR e REGISTO.ID no Microsoft Excel.

Nota:  As funções CHAMAR e REGISTAR não estão disponíveis no Excel Online.

Neste artigo

Descrição

Tipos de dados

Observações

Informações adicionais sobre tipos de dados

Tipos de dados F e G

Tipo de dados K

Tipo de dados O

Tipo de dados P

Tipo de dados R — Chamar funções do Microsoft Excel a partir de DLLs

Funções voláteis e Recalcular

Alterar na posição — Funções declaradas como Void

Descrição

São aqui descritos os tipos de dados do argumento e do valor devolvido utilizados pelas funções CHAMAR, REGISTAR e REGISTO.ID.Os argumentos e os valores devolvidos diferem ligeiramente dependendo do ambiente de operação, e esta diferenças são descritas na tabela de tipo de dados.

Início da Página

Tipos de dados

Nas funções CHAMAR, REGISTAR e REGISTO.ID, o argumento tipo_texto especifica o tipo de dados do valor devolvido e os tipos de dados de todos os argumentos para o recurso de código ou função DLL. O primeiro caráter de tipo_texto especifica o tipo de dados do valor devolvido. Os restantes carateres indicam os tipos de dados para todos os argumentos. Por exemplo, uma função de DLL que devolve um número de vírgula flutuante e que toma um número inteiro e um número de vírgula flutuante como argumentos requer "BIB" para o argumento tipo_texto.

A tabela seguinte contém uma lista completa dos códigos de tipo de dados reconhecidos pelo Microsoft Excel, uma descrição de cada tipo de dados, como é passado o argumento ou o valor devolvido e uma declaração típica para o tipo de dados em linguagem de programação C.

Código

Descrição

Passado por

Declaração C

A

Lógico
(FALSO = 0); VERDADEIRO = 1)

Valor

inteiro curto

B

IEEE - número de vírgula flutuante com 8 bytes

Valor
(Windows)

Referência (Macintosh)

double
(Windows)

double * (Macintosh)

C

Cadeia terminada pelo caráter Nulo (tamanho máximo = 255 carateres)

Referência

cár *

D

Cadeia com um número limitado de carateres (o primeiro byte indica o comprimento da cadeia. Tamanho máximo = 255 carateres)

Referência

caráter sem sinal *

E

IEEE - número de vírgula flutuante com 8 bytes

Referência

duplo *

F

Cadeia terminada pelo caráter Nulo (tamanho máximo = 255 carateres)

Referência (alterar na posição n)

cár *

G

Cadeia com um número limitado de carateres (o primeiro byte indica o comprimento da cadeia. Tamanho máximo = 255 carateres)

Referência (alterar na posição n)

caráter sem sinal *

H

Inteiro de dois bytes, sem sinal

Valor

inteiro curto sem sinal

I

Inteiro de 2 bytes com sinal

Valor

inteiro curto

J

Inteiro de 4 bytes com sinal

Valor

inteiro longo

K

Matriz

Referência

FP *

L

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

Referência

inteiro curto *

L

Inteiro de 2 bytes com sinal

Referência

inteiro curto *

M

Inteiro de 4 bytes com sinal

Referência

inteiro curto *

N

Matriz

Referência

São transmitidos três argumentos:
unsigned short int *
unsigned short int *
double [ ]

O

Estrutura de dados OPER do Microsoft Excel

Referência

OPER *

P

Estrutura de dados OPER do Microsoft Excel

Referência

OPER *

Início da Página

Observações

  • As declarações em linguagem C assumem que as predefinições do seu compilador são: 8 bytes para duplo, 2 bytes para inteiro curto e 4 bytes para inteiro longo.

  • No ambiente de programação do Microsoft Windows, todos os apontadores são 'far'. Por exemplo, tem de declarar o código de tipo de dados D como unsigned char far * no Microsoft Windows.

  • Todas as funções em DLLs e recursos de código utilizam a convenção Pascal. A maior parte dos compiladores C permite-lhe utilizar a convenção Pascal, adicionando a palavra-chave Pascal à declaração da função, tal como se mostra no exemplo a seguir: pascal void main (rows,columns,a)

  • Se uma função utilizar um tipo de dados passado por referência como valor devolvido, pode transferir um apontador nulo como valor devolvido. O Microsoft Excel interpreta o apontador nulo como o valor de erro #NÚM!.

Início da Página

Informações adicionais sobre tipos de dados

Esta secção contém informação detalhada sobre os tipos de dados F, G, K, O, P e R e outras informações acerca do argumento tipo_texto.

Tipos de dados F e G

Com os tipos de dados F e G, uma função pode alterar uma memória intermédia de cadeia atribuída pelo Microsoft Excel. Se o código do tipo de valor devolvido for F ou G, o Microsoft Excel ignora o valor devolvido pela função. Em vez disso, o Microsoft Excel procura na lista de argumentos da função, o primeiro tipo de dados correspondente (F ou G) e, em seguida, assume o conteúdo atual da memória intermédia da cadeia atribuída como valor devolvido. O Microsoft Excel atribui ao argumento 256 bytes, para que a função possa devolver uma cadeia maior do que a recebida.

Início da Página

Tipo de dados K

O tipo de dados K utiliza um apontador para uma estrutura FP de tamanho variável. Tem de definir esta estrutura na DLL ou recurso de código da seguinte forma:

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

A declaração double array[1] atribui memória para apenas uma matriz de elemento único. O número de elementos na matriz atual é igual ao número de linhas multiplicado pelo número de colunas.

Início da Página

Tipo de dados O

O tipo de dados O pode ser utilizado apenas como um argumento, não como um valor devolvido. Transfere três itens: um apontador para o número de linhas numa matriz, um apontador para o número de colunas numa matriz e um apontador para uma matriz bidimensional de números em vírgula flutuante.

Em vez de devolver um valor, uma função pode modificar uma matriz transmitida pelo tipo de dados O. Para isso, é possível utilizar ">O" como argumento tipo_texto. Para mais informações, consulte "Alterar na Posição — Funções Declaradas como Void" below.

O tipo de dados O foi criado para direcionar a compatibilidade com DLLs FORTRAN que transferem argumentos por referência.

Início da Página

Tipo de dados P

O tipo de dados P é um apontador para uma estrutura OPER. A estrutura OPER contém oito bytes de dados, acompanhados por um apontador de dois bytes que especifica o tipo de dados. Com o tipo de dados P, uma função DLL ou recurso de código podem assumir e devolver qualquer tipo de dados do Microsoft Excel.

A estrutura OPER é definida do seguinte modo:

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;

O campo de tipo contém um destes valores.

Tipo

Descrição

Campo Val a utilizar

1

Numérico

núm

2

Cadeia (o primeiro byte indica o comprimento da cadeia)

cad

4

Lógico

log

16

Erro: os valores são:

0#NULO!

7#DIV/0!

15#Valor!

23#REF!

29#NOME?

36#NÚM!

42#N/D

err

64

Matriz

matriz

128

Falta um argumento

256

Célula vazia

Os dois últimos valores só podem ser utilizados como argumentos e não como valores devolvidos. O valor do argumento em falta (128) é transferido quando o autor da chamada omite um argumento. O valor da célula vazia (256) é transferido quando o autor da chamada transfere uma referência para uma célula vazia.

Início da Página

Tipo de dados R — Chamar funções do Microsoft Excel a partir de DLLs

O tipo de dados R é um apontador para uma estrutura XLOPER, uma versão melhorada da estrutura OPER. Na versão 4.0 e posteriores do Microsoft Excel, é possível utilizar o tipo de dados R para escrever DLL e recursos de código que chamam funções do Microsoft Excel. Com a estrutura XLOPER, uma função de DLL pode transferir referências a folhas de cálculo e implementar o controlo do fluxo, além de transferir dados. Uma descrição completa do tipo de dados R e da API Application Programming Interface do Microsoft Excel está para além do âmbito deste tópico. O Microsoft Office XP Developer's Guide contém informações detalhadas sobre o tipo de dados R, a API do Microsoft Excel e muitos outros aspetos técnicos do Microsoft Excel.

Início da Página

Funções voláteis e Recalcular

O Microsoft Excel normalmente só calcula uma função de DLL (ou um recurso de código) ao ser introduzida numa célula quando um dos seus precedentes for alterado ou quando a célula for calculada durante uma macro. Numa folha de cálculo, pode tornar volátil uma função de DLL ou recurso de código, o que significa que ela efetuará o novo cálculo sempre que a folha de cálculo o efetuar também. Para tornar uma função volátil, adicione um ponto de exclamação (!) como o último caráter no argumento tipo_texto.

Por exemplo, no Microsoft Excel para Windows, a fórmula da folha de cálculo seguinte efetua o novo cálculo sempre que a folha de cálculo o efetuar também:

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

Início da Página

Alterar na posição — Funções declaradas como Void

É possível utilizar um único dígito n para o código de tipo de valor a devolver em tipo_texto, onde n é um número de 1 a 9. Assim, é dada ao Microsoft Excel ordem para modificar a variável na localização apontada pelo enésimo argumento em tipo_texto, em vez de devolver um valor. Isto também é conhecido como alteração na posição. O enésimo argumento pode ser um tipo de dados passado por referência (C, D, E, F, G, K, L, M, N, O, P ou R). A função de DLL ou recurso de código também deve ser declarada com a palavra-chave Void em linguagem C (ou com a palavra-chave Procedure na linguagem Pascal)

Por exemplo, uma função de DLL que assuma como argumentos uma cadeia terminada pelo caráter nulo e dois apontadores para inteiros, pode alterar a cadeia numa determinada posição. Utilize "1FMM" como argumento tipo_texto e declare a função como Void.

Versões anteriores do Microsoft Excel 4.0 utilizavam o caráter > para alterar o primeiro argumento na primeira posição-não havia hipótese de alterar outro argumento que não o primeiro. O caráter > é equivalente a n = 1 no Microsoft Excel versão 4.0 e versões posteriores.

Início da Página

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×