Fontos: Vigyázat! A beállításjegyzék helytelen módosítása súlyos károkat okozhat az operációs rendszerben, és előfordulhat, hogy újra kell azt telepíteni. A Microsoft nem garantálja, hogy a beállításjegyzék helytelen módosításából fakadó problémákat orvosolni lehet. A beállításjegyzék szerkesztése előtt készítsen biztonsági másolatot a fontos adatokról. A beállításjegyzék használatáról és védelméről a legfrissebb információt a Microsoft Windows súgója tartalmazza.
Ez a cikk a Microsoft Excel HÍVÁS, KÜLSŐ.FÜGGV és KÜLSŐ.AZONOSÍTÓ függvényének képletszintaxisát és használatát ismerteti.
Megjegyzés: A CALL és a REGISTER függvény nem érhető el a Webes Excel-ben.
A témakör tartalma
Leírás
Az alábbiakban megtalálja az argumentum és a visszatérési érték HÍVÁS, KÜLSŐ.FÜGGV és KÜLSŐ.AZONOSÍTÓ függvény által használt adattípusainak leírását. Az argumentumok és a visszatérési értékek a működési környezettől függően enyhén eltérők lehetnek; ezeket a különbségeket jelezzük az adattípusok táblázatában.
Adattípusok
A HÍVÁS, a KÜLSŐ.FÜGGV és a KÜLSŐ.AZONOSÍTÓ függvényben a típus_szöveg argumentum adja meg a visszatérési érték és az összes argumentum adattípusát a DLL-függvény vagy a kódforrás számára. A típus_szöveg argumentum első karaktere a visszatérési érték adattípusát adja meg. A többi karakter az összes argumentum adattípusát jelzi. Egy olyan DLL-függvény esetén például, amely egy lebegőpontos számot ad vissza, és argumentumként egy egész számot és egy lebegőpontos számot használ, a típus_szöveg argumentumban szerepelnie kell a „BIB” karakterláncnak.
Az alábbi táblázatban az összes olyan adattípuskód szerepel, amelyet a Microsoft Excel felismer, továbbá az egyes adattípusok leírását is megtalálja, valamint tájékozódhat arról, hogy miként történik az argumentum vagy a visszatérési érték átadása, illetve megtekintheti, hogy milyen az adattípus tipikus deklarálása a C programozási nyelven.
Kód |
Leírás |
Átadás |
C deklaráció |
A |
Logikai (HAMIS = 0), IGAZ = 1) |
Érték |
short int |
B |
IEEE 8 bájtos lebegőpontos szám |
Érték (Windows)Hivatkozás (Macintosh) |
double (Windows)double * (Macintosh) |
C |
Nullra végződő karaktersorozat (maximális hossz = 255 karakter) |
Hivatkozás |
char * |
D |
Bájtokban számolt karaktersorozat (az első bájt tartalmazza a karaktersorozat hosszát, maximális hossz = 255 karakter) |
Hivatkozás |
Unsigned char * |
E |
IEEE 8 bájtos lebegőpontos szám |
Hivatkozás |
double * |
F |
Nullra végződő karaktersorozat (maximális hossz = 255 karakter) |
Hivatkozás (módosítás helyben) |
char * |
G |
Bájtokban számolt karaktersorozat (az első bájt tartalmazza a karaktersorozat hosszát, maximális hossz = 255 karakter) |
Hivatkozás (módosítás helyben) |
unsigned char * |
H |
Aláíratlan 2 bájtos egész szám |
Érték |
unsigned short int |
I |
Aláírt 2 bájtos egész szám |
Érték |
short int |
J |
Aláírt 4 bájtos egész szám |
Érték |
long int |
K |
Tömb |
Hivatkozás |
FP * |
L |
Logikai (HAMIS = 0, IGAZ = 1) |
Hivatkozás |
short int * |
M |
Aláírt 2 bájtos egész szám |
Hivatkozás |
short int * |
N |
Aláírt 4 bájtos egész szám |
Hivatkozás |
long int * |
O |
Tömb |
Hivatkozás |
Három argumentum átadása történik meg: unsigned short int * unsigned short int * double [ ] |
P |
Microsoft Excel OPER adatstruktúra |
Hivatkozás |
OPER * |
R |
Microsoft Excel XLOPER adatstruktúra |
Hivatkozás |
XLOPER * |
Megjegyzések
-
A C nyelvű deklarálások azon a feltételezésen alapulnak, hogy az Ön fordítója alapértelmezés szerint 8 bájtos duplaértékeket, 2 bájtos rövid egész számokat és 4 bájtos hosszú egész számokat használ.
-
A Microsoft Windows programozási környezetében minden mutató távoli mutató. Microsoft Windows rendszerben például a D adattípus kódját a következőképpen kell deklarálnia: unsigned char far*.
-
A DLL-ek és a kóderőforrások összes függvénye a Pascal-hívási konvencióval van meghívva. A legtöbb C fordító lehetővé teszi a Pascal-hívási konvenciók használatát a Pascal kulcsszó függvénydeklarációhoz való hozzáadásával, ahogy az alábbi példában látható: pascal void main (rows,columns,a)
-
Ha egy függvény olyan adattípust használ visszatérési értékként, amely hivatkozás útján adja át az elemeket, nullmutatót is átadhat visszatérési értékként. A Microsoft Excel a nullmutatót a #SZÁM! hibaértékként fogja értelmezni.
További adattípusokkal kapcsolatos információk
Ez a szakasz részletes információkat tartalmaz az F, G, K, O, P és R adattípusokról, és más adatokat a típus_szöveg argumentumról.
F és G adattípus
Az F és G adattípusokkal a függvények módosíthatják a Microsoft Excel által lefoglalt sztringpuffert. Ha a visszaadott érték típusa F vagy G, akkor a Microsoft Excel figyelmen kívül hagyja a függvény által visszaadott értéket. Ehelyett a Microsoft Excel az első megfelelő adattípus (F vagy G) függvényargumentumainak listájában keres, majd a lefoglalt sztringpuffer aktuális tartalmát adja vissza értékként. A Microsoft Excel 256 bájtot foglal le az argumentumhoz, így a függvény a kapottnál nagyobb sztringet adhat vissza.
K adattípus
A K adattípus egy változó méretű FP struktúrára mutató mutatót használ. Ezt a struktúrát a következőképpen kell definiálnia a DLL-ben vagy a kódforrásban:
typedef struct _FP
{ unsigned short int rows; unsigned short int columns; double array[1]; /* Actually, array[rows][columns] */ } FP;
A double array[1] deklaráció csak egy egyetlen elemből álló tömb számára tart fenn elegendő tárhelyet. A tényleges tömbben lévő elemek száma a sorok és az oszlopok számának szorzatával egyenlő.
O adattípus
Az O adattípus kizárólag argumentumként használható, visszatérési értékként nem. Három elemet ad át: egy mutatót egy tömbben lévő sorok számára, egy mutatót egy tömbben lévő oszlopok számára, valamint egy mutatót lebegőpontos számokból álló kétdimenziós tömbre.
Érték visszaadása helyett a függvények módosíthatják az O adattípus által átadott tömböket. Ehhez típus_szöveg argumentumként a következőt használhatja: ">O". További információt az alábbi, „Módosítás helyben – Érték nélküliként deklarált függvények” című részben talál.
Az O adattípus úgy lett kialakítva, hogy közvetlenül kompatibilis legyen a Fortran DLL-ekkel, amelyek hivatkozás útján adják át az argumentumokat.
P adattípus
A P adattípus egy OPER struktúrára mutató mutató. Az OPER struktúra 8 bájtnyi adatot tartalmaz, és egy 2 bájtos azonosító követi, amelyik megadja az adat típusát. A P adattípussal a DLL-függvények vagy kódforrások bármilyen Microsoft Excel-adattípus felvételére és visszaadására képesek.
Az OPER struktúra definíciója az alábbi:
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;
A típusmező ezen értékek egyikét tartalmazza.
Típus |
Leírás |
Használandó értékmező |
1 |
Numerikus |
num |
2 |
Karakterlánc (az első bájt tartalmazza a karakterlánc hosszát) |
str |
4 |
Logikai |
bool |
16 |
Hiba: a hibaértékek a következők: 0#NULLA! 7#ZÉRÓOSZTÓ! 15#ÉRTÉK! 23#HIV! 29#NÉV? 36#SZÁM! 42#HIÁNYZIK |
err |
64 |
Tömb |
array |
128 |
Hiányzó argumentum |
|
256 |
Üres cella |
Az utolsó két érték csak argumentumként használható, visszatérési értékként nem. A hiányzó argumentum értékét (128) akkor adja át a program, ha a hívó kihagy egy argumentumot. Az üres cella értékét (256) akkor adja át a program, ha a hívó egy üres cellának ad át egy hivatkozást.
R adattípus – Microsoft Excel-függvények hívása DLL-ekből
Az R adattípus egy XLOPER struktúrára mutató mutató, amely az OPER struktúra továbbfejlesztett változata. A Microsoft Excel 4.0-s és újabb verzióiban az R adattípussal Microsoft Excel-függvényeket meghívó DLL-eket és kódforrásokat írhat. Az XLOPER struktúrával a DLL-függvények az adatok átadásán kívül laphivatkozásokat adhatnak át és folyamatirányítást is implementálhatnak. Az R adattípusnak és a Microsoft Excel alkalmazásprogramozási felületének (API) teljes körű leírása túlmutat a jelen témakör hatókörén. A Microsoft Office XP Developer's Guide című fejlesztői útmutató részletes információkkal szolgál az R adattípusról, a Microsoft Excel API-járól, valamint a Microsoft Excel számos más technikai jellemzőjéről.
Környezetfüggő függvények és újraszámítás
A Microsoft Excel általában csak akkor számít ki egy DLL-függvényt (vagy kódforrást), amikor azt beírják egy cellába, amikor megváltozik annak egyik előzménye, illetve amikor a cellát egy makró futása során számítják ki. Egy munkalapon környezetfüggővé tehet egy DLL-függvényt vagy kódforrást, ami azt jelenti, hogy annak újraszámítása a munkalap újraszámításakor minden alkalommal megtörténik. Ha környezetfüggővé szeretne tenni egy függvényt, vegyen fel egy felkiáltójelet (!) a típus_szöveg argumentum utolsó karaktereként.
A Windows Microsoft Excelben például a következő munkalapképlet a munkalap újraszámításakor minden alkalommal újraszámítódik:
HÍVÁS("Kernel32","GetTickCount","J!")
Módosítás helyben – Érték nélküliként deklarált függvények
A típus_szöveg argumentum visszatérési értékeként egy egy számjegyű számot (n) használhat, ahol n értéke 1 és 9 között lehet. Ez jelzi a Microsoft Excelnek, hogy egy érték visszaadása helyett módosítania kell az azon a helyen lévő változót, amelyre a típus_szöveg n-edik argumentuma mutat. Ezt másként helyben történő módosításnak is hívják. Az n-edik argumentumnak olyan adattípusnak kell lennie, amely hivatkozás útján adja át az elemeket (C, D, E, F, G, K, L, M, N, O, P vagy R). A DLL-függvényt vagy kódforrást is deklarálni kell a void kulcsszóval C nyelven (vagy a porcedure kulcsszóval Pascal nyelven).
Egy nullával végződő karakterláncot és argumentumként a számokra két mutatót fogadó DLL-függvény például módosíthatja helyben a karakterláncot. Használja az "1FMM" karakterláncot típus_szöveg argumentumként, és deklarálja érték nélküliként a függvényt.
A Microsoft Excel 4.0-snál korábbi verziói a > karaktert használták az első argumentum helyben történő módosításához; az elsőn kívül más argumentum módosítására nem volt lehetőség. A > karakter megfelelője a Microsoft Excel 4.0-s és újabb verzióiban az n = 1.