KUTSU- ja REKISTERÖI-funktioiden käyttäminen

Tärkeää: Tämä on artikkeli on käännetty koneellisesti. Lue vastuuvapauslauseke. Tämän artikkelin englanninkielinen versio on täällä .

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 ovat nyt käytettävissä Excel Onlineissa.

Artikkelin sisältö

Kuvaus

Tietotyypit

Huomautuksia

Lisätietoja muista tietotyypeistä

Tietotyypit F ja G

Tietotyyppi K

Tietotyyppi O

Tietotyyppi P

Tietotyyppi R – Microsoft Excelin funktioiden kutsuminen DLL:stä

Muuttuvat funktiot ja uudelleenlaskenta

Suora muokkaus – Void-funktiot

Kuvaus

Seuraavassa kuvataan KUTSU-, REKISTERÖI- ja REKISTERI.TUNNUS-funktioiden argumenttien ja palautusarvojen tietotyypit. Argumentit ja palautusarvot eroavat hieman toisistaan käyttöympäristön mukaan. Nämä erot on mainittu seuraavassa tietotyyppien taulukossa.

Sivun alkuun

Tietotyypit

KUTSU-, REKISTERÖI- ja REKISTERI.TUNNUS-funktioissa tyyppi_teksti-argumentti määrittää DLL-funktion tai koodiresurssin palautusarvon ja kunkin argumentin tietotyypin. Argumentin ensimmäinen merkki määrittää palautusarvon tietotyypin ja muut merkit määrittävät argumenttien tietotyypit. Esimerkiksi liukuluvun palauttavan DLL-funktion argumentteina voi olla kokonaislukuja ja liukulukuja, jolloin argumentin tyyppi_teksti arvon on oltava "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ä:

Call("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 edeltävissä versioissa käytettiin merkkiä >, kun haluttiin muokata ensimmäistä argumenttia arvon palauttamisen sijasta. Muita argumentteja ei voitu muokata. Merkki > vastaa arvoa n = 1 Microsoft Excelin versiossa 4.0 ja uudemmissa versioissa.

Sivun alkuun

Huomautus: Konekäännöksestä ilmoittava vastuusvapauslauseke: Tämä artikkeli on käännetty tietokonejärjestelmällä, eikä kieliasiantuntija ole muokannut sitä. Microsoft tarjoaa nämä konekäännökset avuksi muille kuin englantia puhuville käyttäjille, jotta he saavat lisätietoja Microsoftin tuotteista, palveluista ja tekniikoista. Koska artikkeli on koneellisesti käännetty, se saattaa sisältää sanasto-, lauseoppi- ja kielioppivirheitä.

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×