Applies ToExcel for Microsoft 365 Excel for Microsoft 365 for Mac Excelin verkkoversio Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel for iPhone Excel for Android (tabletit) Excel for Android (matkapuhelimet)

Tärkeää:  Varoitus    Rekisterin virheellinen muuttaminen saattaa aiheuttaa vakavia vaurioita käyttöjärjestelmään, joka joudutaan ehkä asentamaan uudelleen. Microsoft ei voi taata, että rekisterin virheellisestä muuttamisesta aiheutuvat ongelmat voidaan ratkaista. Varmuuskopioi kaikki tärkeät tiedot, ennen kuin muokkaat rekisteriä. Uusimmat tietokoneen rekisterin käyttämistä ja suojaamista koskevat tiedot ovat saatavissa Microsoft Windowsin ohjeessa.

Tässä artikkelissa kuvataan Microsoft Excelin KUTSU-, REKISTERÖI- ja REKISTERI.TUNNUS-funktioiden kaavasyntaksi ja käyttö.

Huomautus:  KUTSU- ja REKISTERÖI-funktiot eivät ole käytettävissä Excelin verkkoversio.

Artikkelin sisältö

Kuvaus

Seuraavassa kuvataan KUTSU-, REKISTERÖI- ja REGISTER.ID-funktioiden käyttämät argumentti- ja palautusarvotietotyypit. Argumentit ja palautusarvot vaihtelevat hieman käyttöympäristön mukaan, ja nämä erot näkyvät tietotyyppitaulukossa.

Sivun alkuun

Tietotyypit

KUTSU-, REKISTERÖI- ja REGISTER.ID-funktioissa type_text-argumentti määrittää palautusarvon tietotyypin ja kaikkien DLL-funktion tai koodiresurssin argumenttien tietotyypit. type_text ensimmäinen merkki määrittää palautusarvon tietotyypin. Muut merkit ilmaisevat kaikkien argumenttien tietotyypit. Esimerkiksi DLL-funktio, joka palauttaa liukulukuarvon ja ottaa kokonaisluvun ja liukulukun argumentteina, vaatisi type_text-argumentille "BIB".

Seuraavassa taulukossa on luettelo kaikista Microsoft Excelin tunnistamista tietotyypeistä, kunkin tietotyypin kuvaus, argumentin tai palautusarvon välitystapa ja tietotyypin tavallisin C-kielinen määrittely:

Koodi

Kuvaus

Välitystapa

C-kielinen määrittely

-

Totuusarvo(EPÄTOSI = 0), TOSI = 1)

Arvo

short int

B

8-tavuinen IEEE-liukuluku

Arvo(Windows)

Viittaus (Macintosh)

double(Windows)

double * (Macintosh)

c

Nollaan päättyvä merkkijono (enimmäispituus 255 merkkiä)

Viittaus

char *

:d

Tavuina laskettu merkkijono (ensimmäinen tavu sisältää jonon pituuden, enimmäispituus 255 merkkiä)

Viittaus

Unsigned char *

E

8-tavuinen IEEE-liukuluku

Viittaus

double *

täydellinen

Nollaan päättyvä merkkijono (enimmäispituus 255 merkkiä)

Viittaus (suora muokkaus)

char *

"Y"

Tavuina laskettu merkkijono (ensimmäinen tavu sisältää jonon pituuden, enimmäispituus 255 merkkiä)

Viittaus (suora muokkaus)

unsigned char *

T

Etumerkitön 2-tavuinen kokonaisluku

Arvo

unsigned short int

i

Etumerkillinen 2-tavuinen kokonaisluku

Arvo

short int

J

Etumerkillinen 4-tavuinen kokonaisluku

Arvo

long int

k

Matriisi

Viittaus

FP *

l

Totuusarvo(EPÄTOSI = 0, TOSI = 1)

Viittaus

short int *

"m"

Etumerkillinen 2-tavuinen kokonaisluku

Viittaus

short int *

EI

Etumerkillinen 4-tavuinen kokonaisluku

Viittaus

long int *

O

Matriisi

Viittaus

Kolme argumenttia siirretään:unsigned short int *unsigned short int *double [ ]

:p

Microsoft Excelin OPER-tietorakenne

Viittaus

OPER *

r

Microsoft Excelin XLOPER-tietorakenne

Viittaus

XLOPER *

Sivun alkuun

Huomautuksia

  • C-kieliset määrittelyt perustuvat oletukseen, että käännösohjelma käyttää 8-tavuisia kaksinkertaisia, 2-tavuisia lyhyitä ja 4-tavuisia pitkiä kokonaislukuja.

  • Microsoft Windows -ohjelmointiympäristössä kaikki osoittimet ovat etäosoittimia. Esimerkiksi Microsoft Windowsin D-tietotyypin koodiksi on määritettävä unsigned char far *.

  • Kaikki DLL-funktiot ja koodiresurssin toiminnot välitetään Pascal-kutsuilla. Useimmissa C-käännösohjelmissa voidaan käyttää Pascal-kutsuja lisäämällä funktion määritykseen avainsana pascal, kuten seuraavassa esimerkissä: pascal void main (rows,columns,a)

  • Jos funktio käyttää palautusarvon tietotyyppinä viittausvälitystä, voit välittää palautusarvoksi nollaosoittimen. Microsoft Excel tulkitsee nollaosoittimen #LUKU! ‑virhearvoksi.

Sivun alkuun

Lisätietoja muista tietotyypeistä

Tässä osassa käsitellään tietotyyppejä F, G, K, O, P ja R. Osassa on myös lisätietoja tyyppi_teksti-argumentista.

Tietotyypit F ja G

Kun käytetään tietotyyppejä F ja G, funktio voi muokata Microsoft Excelin varaamaa merkkijonopuskuria. Jos palautusarvon tietotyyppi on F tai G, Microsoft Excel ohittaa funktion palauttaman arvon. Sen sijaan Microsoft Excel etsii argumenttiluettelosta ensimmäisen vastaavan tietotyypin (F tai G) ja vie varatun merkkijonopuskurin senhetkisen sisällön palautusarvoksi. Microsoft Excel varaa argumentille 256 tavua, joten funktio saattaa palauttaa suuremman merkkijonon kuin se otti vastaan.

Sivun alkuun

Tietotyyppi K

Tietotyyppi K käyttää osoitinta muuttuvankokoiseen FP-rakenteeseen. Tämä rakenne on määriteltävä DLL:ssä tai koodiresurssissa seuraavasti:

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

Määritys double array[1] varaa muistitilaa vain yksiosaiselle matriisille. Matriisin osien määrä on rivien ja sarakkeiden määrien tulo.

Sivun alkuun

Tietotyyppi O

Tietotyyppiä O voidaan käyttää vain argumenttina, ei palautusarvona. Se välittää osoittimen kolmeen kohtaan: matriisin rivien määrään, matriisin sarakkeiden määrään ja kaksiulotteiseen liukulukumatriisiin.

Arvon palauttamisen sijasta funktio voi muokata O-tietotyypin välittämää matriisia. Tätä varten tyyppi_teksti-argumentiksi voidaan määrittää ">O". Saat lisätietoja tämän ohjeaiheen kohdassa "Suora muokkaus – Void-funktiot".

O-tietotyyppi takaa suoran yhteensopivuuden Fortran DLL:n kanssa, joka välittää argumentit viittauksina.

Sivun alkuun

Tietotyyppi P

Tietotyyppi P on osoitin OPER-rakenteeseen. OPER-rakenteessa on 8 datatavua ja niiden jäljessä 2-tavuinen tietotyypin tunniste. Kun käytät P-tietotyyppiä, DLL-funktio ja koodiresurssi pystyvät ottamaan vastaan ja palauttamaan kaikkia Microsoft Excelin tietotyyppejä.

OPER-rakenne määritellään seuraavasti:

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;

Type-kentässä on jokin näistä arvoista:

Tyyppi

Kuvaus

Käytettävä Val-kenttä

1

Numeerinen

num

2

Merkkijono (ensimmäinen tavu osoittaa jonon pituuden)

str

4

Totuusarvolauseke

bool

16

Virhearvo, joka voi olla jokin seuraavista:

0#TYHJÄ!

7#JAKO/0!

15#ARVO!

23#VIITTAUS!

29#NIMI?

36#LUKU!

42#PUUTTUU!

err

64

Matriisi

array

128

Puuttuva argumentti

256

Tyhjä solu

Kahta viimeistä arvoa voidaan käyttää vain argumentteina, ei palautusarvoina. Ohjelma palauttaa Puuttuva argumentti ‑arvon (128), kun kutsujasta puuttuu argumentti. Ohjelma palauttaa Tyhjä solu -arvon (256), kun kutsuja välittää viittauksen tyhjään soluun.

Sivun alkuun

Tietotyyppi R – Microsoft Excelin funktioiden kutsuminen DLL:stä

Tietotyyppi R on osoitin XLOPER-rakenteeseen, joka on OPER-rakenteen laajennettu versio. Jos käytät Microsoft Excel 4.0:aa tai uudempaa versiota, voit käyttää R-tietotyyppiä Microsoft Excelin funktioita kutsuvien DLL-funktioiden ja koodiresurssien kirjoittamiseen. XLOPER-rakenteen avulla DLL-funktio voi välittää taulukkoviittauksia ja käyttää vuonohjausta tietojen välittämisen lisäksi. R-tietotyypin ja Microsoft Excelin ohjelmointirajapinnan tarkempi kuvaus ei kuulu tämän ohjeen aihepiiriin. Microsoft Office XP Developer's Guide sisältää yksityiskohtaiset tiedot R-tietotyypistä, Microsoft Excelin ohjelmointirajapinnasta ja monista muista Microsoft Excelin teknisistä ominaisuuksista.

Sivun alkuun

Muuttuvat funktiot ja uudelleenlaskenta

Microsoft Excel laskee yleensä DLL-funktion (tai koodiresurssin) vain, kun funktio kirjoitetaan soluun, kun jokin sen edeltäjistä muuttuu tai kun ohjelma laskee solun makron suorittamisen yhteydessä. Taulukossa DLL-funktiosta tai koodiresurssista voi tehdä muuttuvan, jolloin ohjelma laskee sen aina taulukon uudelleenlaskennan yhteydessä. Funktio muutetaan muuttuvaksi lisäämällä huutomerkki (!) tyyppi_teksti-argumentin viimeiseksi merkiksi.

Esimerkiksi Microsoft Windows Excelissä ohjelma laskee seuraavan taulukkokaavan aina taulukon uudelleenlaskennan yhteydessä:

KUTSU(”Kernel32”,”GetTickCount”,”J!”)

Sivun alkuun

Suora muokkaus – Void-funktiot

Voit antaa tyyppi_teksti-argumentin palautusarvon tyypiksi luvun n, joka on 1–9. Tällöin Microsoft Excel ei palauta arvoa vaan muokkaa muuttujaa, joka on tyyppi_teksti-argumentin n:nnen argumentin osoittamassa paikassa. Tätä kutsutaan myös suoraksi muokkaukseksi. Argumentin n on oltava välitysviittaus (C, D, E, F, G, K, L, M, N, O, P tai R). Tällöin myös DLL-funktio tai koodiresurssi on määritettävä C-kielessä avainsanalla void (tai avainsanalla procedure Pascal-kielessä).

DLL-funktio, jonka argumentteina voi olla nollaan päättyvä merkkijono ja kaksi kokonaislukuihin osoittavaa osoitinta, voi muokata merkkijonoa arvon palauttamisen sijasta. Anna tyyppi_teksti-argumentin arvoksi "1FMM" ja määritä funktio void-funktioksi.

Microsoft Excel 4.0:aa aiemmissa versioissa käytettiin >-merkkiä ensimmäisen argumentin muokkaamiseen. mitään muuta argumenttia ei voi muokata kuin ensimmäistä. > on sama kuin n = 1 Microsoft Excelin versiossa 4.0 ja uudemmissa versioissa.

Sivun alkuun

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.