Utilizzo delle funzioni RICHIAMA e REGISTRO

Si applica a
Excel per Microsoft 365 Excel per Microsoft 365 per Mac Excel 2024 Excel 2024 per Mac Excel 2021 Excel 2021 per Mac Excel 2019 Excel 2016 Excel per iPad Excel per iPhone Excel per tablet Android Excel per telefoni Android

Importante

Attenzione La modifica non corretta del Registro di sistema potrebbe danneggiare gravemente il sistema operativo, richiedendoti di reinstallarlo. Microsoft non garantisce che i problemi derivanti da modifiche improprie del Registro di sistema vengano risolti. Prima di modificare il Registro di sistema, eseguire il backup dei dati utili. Per informazioni aggiornate su come utilizzare e proteggere il Registro di sistema del computer, vedere la Guida di Microsoft Windows.

Questo articolo descrive la sintassi della formula e l'uso delle funzioni RICHIAMA, REGISTRO e IDENTIFICATORE.REGISTRO in Microsoft Excel.

Nota

Le funzioni CALL e REGISTER non sono disponibili in Excel per il web.

In questo articolo

Descrizione

Di seguito vengono descritti i tipi di dati Argomento e Valore restituito utilizzati dalle funzioni CALL,REGISTER e REGISTER.ID . Gli argomenti e i valori restituiti variano leggermente in base all'ambiente operativo e queste differenze sono indicate nella tabella dei tipi di dati.

Inizio pagina

Tipi di dati

Nelle funzioni CALL,REGISTER e REGISTER.ID l'argomento type_text specifica il tipo di dati del valore restituito e i tipi di dati di tutti gli argomenti per la funzione DLL o la risorsa codice. Il primo carattere di type_text specifica il tipo di dati del valore restituito. I caratteri rimanenti indicano i tipi di dati di tutti gli argomenti. Ad esempio, una funzione DLL che restituisce un numero a virgola mobile e accetta un numero intero e un numero a virgola mobile come argomenti richiederebbe "BIB" per l'argomento type_text.

La tabella che segue contiene un elenco completo dei codici corrispondenti ai tipi di dati riconosciuti da Microsoft Excel, una descrizione di ciascun tipo di dati, la modalità in cui viene passato l'argomento o il valore restituito e una dichiarazione standard per il tipo di dati nel linguaggio di programmazione C.

Codice Descrizione Passato per Dichiarazione C
A Logiche
(FALSO = 0), VERO = 1)
Val short int
B Numero IEEE a virgola mobile (8 byte) Value
(Windows)
Riferimento (Macintosh)
doppia
(Windows)
double * (Macintosh)
C Stringa che termina con il carattere nullo (lunghezza massima della stringa = 255) Riferimento char *
D Stringa contata per byte (il primo byte contiene la lunghezza di una stringa, lunghezza massima della stringa = 255 caratteri) Riferimento unsigned char *
E Numero IEEE a virgola mobile (8 byte) Riferimento double *
F Stringa che termina con il carattere nullo (lunghezza massima della stringa = 255 caratteri) Riferimento (modifica in posizione) char *
G Stringa contata per byte (il primo byte contiene la lunghezza di una stringa, lunghezza massima della stringa = 255 caratteri) Riferimento (modifica in posizione) unsigned char *
H Numero intero senza segno (2 byte) Val unsigned short int
I Numero intero con segno (2 byte) Val short int
J Numero intero con segno (4 byte) Val long int
K Matrice Riferimento FP *
L Logiche
(FALSO = 0, VERO = 1)
Riferimento short int *
M Numero intero con segno (2 byte) Riferimento short int *
NUM Numero intero con segno (4 byte) Riferimento long int *
O Matrice Riferimento Vengono passati tre argomenti:
unsigned short int *
unsigned short int *
doppio [ ]
P Struttura dati OPER di Microsoft Excel Riferimento OPER *
R Struttura dati XLOPER di Microsoft Excel Riferimento XLOPER *

Inizio pagina

Osservazioni

  • Le dichiarazioni del linguaggio C presumono che il compilatore imposti i numeri in doppia precisione di 8 byte, gli interi corti di 2 byte e gli interi lunghi di 4 byte.
  • Nell'ambiente di programmazione di Microsoft Windows tutti i puntatori sono di tipo far. In Microsoft Windows, ad esempio, è necessario dichiarare il codice del tipo di dati D come unsigned char far *.
  • Tutte le funzioni DLL e le risorse codice vengono richiamate tramite la convenzione di richiamo Pascal. La maggior parte dei compilatori C consente di utilizzare la convenzione di chiamata Pascal aggiungendo la parola chiave Pascal alla dichiarazione di funzione, come illustrato nell'esempio seguente: pascal void main (rows,columns,a)
  • Se una funzione usa un tipo di dati pass-by-reference come valore restituito, è possibile passare un puntatore Null come valore restituito. Microsoft Excel interpreta il puntatore Null come il #NUM! .

Inizio pagina

Ulteriori informazioni sui tipi di dati

In questa sezione verranno fornite informazioni dettagliate sui tipi di dati F, G, K, O, P ed R ed altre informazioni sull'argomento tipo.

Tipi di dati F e G

Con i tipi di dati F e G, una funzione può modificare un buffer di stringhe allocato da Microsoft Excel. Se il codice del tipo di valore restituito è F o G, Microsoft Excel ignora il valore restituito dalla funzione. Microsoft Excel cerca invece nell'elenco degli argomenti della funzione il primo tipo di dati corrispondente (F o G), quindi accetta il contenuto corrente del buffer di stringhe allocato come valore restituito. Microsoft Excel alloca 256 byte per l'argomento, quindi la funzione potrebbe restituire una stringa maggiore di quella ricevuta.

Inizio pagina

Tipo di dati K

Il tipo di dati K utilizza un puntatore a una struttura FP di dimensioni variabili. Questa struttura deve essere definita nel DLL o nella risorsa codice nel seguente modo:

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

La dichiarazione double array[1] alloca spazio di archiviazione solo per una matrice a elemento singolo. Il numero di elementi nella matrice vera e propria è uguale al numero delle righe moltiplicato per il numero delle colonne.

Inizio pagina

Tipo di dati O

Il tipo di dati O può essere utilizzato solo come argomento e non come valore restituito. Questo tipo di dati passa tre elementi: un puntatore al numero di righe di una matrice, un puntatore al numero di colonne di una matrice e un puntatore a una matrice bidimensionale di numeri a virgola mobile.

Una funzione può modificare una matrice passata per tipo di dati O invece di restituire un valore. A tale scopo, è possibile usare ">O" come argomento type_text. Per ulteriori informazioni, consultare "Modifica in posizione - Funzioni dichiarate Void" più avanti in questa sezione.

Il tipo di dati O è stato creato per compatibilità diretta con i DLL Fortran, i quali passano gli argomenti per riferimento.

Inizio pagina

Tipo di dati P

Il tipo di dati P è un puntatore a una struttura OPER. La struttura OPER contiene 8 byte di dati, seguiti da un identificatore a 2 byte che specifica il tipo di dati. Con il tipo di dati P, una funzione DLL o una risorsa codice può accettare e restituire qualsiasi tipo di dati di Microsoft Excel.

La struttura OPER viene definita nel seguente 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;

Il campo tipo contiene uno dei seguenti valori.

Tipo Descrizione Campo val da utilizzare
1 Numerico num
2 Stringa (il primo byte contiene la lunghezza di stringa) str
4 Booleano (valore logico) bool
16 Errore: i valori di errore sono:
0#NULLO!
7#DIV/0!
15#Valore!
23#RIF!
29#NOME?
36#NUM!
42#N/D
err
64 Matrice array
128 Argomento mancante
256 Cella vuota

Gli ultimi due valori possono essere utilizzati solo come argomenti e non come valori restituiti. Il valore dell'argomento mancante (128) viene passato quando nel richiamo viene omesso un argomento. Il valore della cella vuota (256) viene passato quando il richiamo passa un riferimento a una cella vuota.

Inizio pagina

Tipo di dati R - Richiamo di funzioni di Microsoft Excel da DLL

Il tipo di dati R è un puntatore a una struttura XLOPER, la quale è una versione avanzata della struttura OPER. In Microsoft Excel versione 4.0 e successiva, è possibile utilizzare il tipo di dati R per scrivere file DLL e risorse codice che richiamino le funzioni di Microsoft Excel. Con la struttura XLOPER, una funzione DLL può passare riferimenti di foglio ed eseguire un controllo di flusso oltre che passare i dati. Non è scopo di questa appendice fornire una descrizione completa del tipo di dati R e delle API di Microsoft Excel. Nel Manuale dello sviluppatore di Microsoft Office XP sono contenute informazioni dettagliate relative al tipo di dati R, alle API di Microsoft Excel e a numerosi altri aspetti tecnici di Microsoft Excel.

Inizio pagina

Funzioni volatili e ricalcolo

In genere, una funzione DLL o una risorsa codice viene calcolata solo quando viene immessa in una cella, quando viene modificata una delle celle precedenti o quando la cella viene calcolata durante l'esecuzione di una macro. In un foglio di lavoro è possibile rendere volatile una funzione DLL o una risorsa codice, il che significa che essa viene ricalcolata ogni volta che viene ricalcolato il foglio di lavoro. Per rendere volatile una funzione, aggiungere un punto esclamativo (!) come ultimo carattere dell'argomento tipo.

Ad esempio, in Microsoft Excel per Windows la seguente formula del foglio di lavoro viene ricalcolata ogni volta che viene ricalcolato il foglio di lavoro:

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

Inizio pagina

Modifica in posizione - Funzioni dichiarate Void

È possibile utilizzare una singola cifra n per il codice del tipo di restituzione in tipo, dove n è un numero da 1 a 9. Questo fa sì che venga modificata la variabile nella posizione a cui fa riferimento l'n-esimo argomento in tipo invece che venga restituito un valore. Questa operazione è anche definita modifica in posizione. L'n-esimo argomento deve essere un tipo di dati passato per un riferimento (C, D, E, F, G, K, L, M, N, O, P o R). La funzione DLL o la risorsa codice deve anche essere dichiarata con la parola chiave void nel linguaggio C oppure con la parola chiave procedure nel linguaggio Pascal.

Ad esempio, una funzione DLL che riconosce una stringa che termina con il carattere nullo e due puntatori a numeri interi come argomenti può modificare la stringa in posizione. Utilizzare "1FMM" come argomento tipo e dichiarare la funzione Void.

Le versioni precedenti a Microsoft Excel 4.0 usavano il > carattere per modificare il primo argomento al suo posto. Non era possibile modificare alcun argomento diverso dal primo. Il > carattere è equivalente a n = 1 in Microsoft Excel versione 4.0 e successive.

Inizio pagina