Korzystanie z funkcji WYWOŁAJ oraz REJESTRUJ

Ważne: Przestroga    Nieprawidłowe edytowanie rejestru może spowodować poważne uszkodzenie systemu operacyjnego wymagające jego ponownej instalacji. Firma Microsoft nie może zagwarantować, że problemy powstałe w wyniku nieprawidłowego edytowania rejestru będzie można rozwiązać. Przed edytowaniem rejestru należy wykonać kopie zapasowe wszystkich ważnych danych. Najnowsze informacje dotyczące używania i ochrony rejestru komputera znajdują się w Pomocy systemu Microsoft Windows.

Ten artykuł zawiera opis składni formuł i zastosowania funkcji WYWOŁAJ, REJESTRUJ oraz REJESTR.KOD w programie Microsoft Excel.

Uwaga:  Funkcje WYWOŁAJ oraz REJESTRUJ są niedostępne w aplikacji Excel Online.

W tym artykule

Opis

Typy danych

Spostrzeżenia

Dodatkowe informacje o typach danych

Typy danych F i G

Typ danych K

Typ danych O

Typ danych P

Typ danych R — wywoływanie funkcji programu Microsoft Excel z bibliotek DLL

Funkcje nietrwałe i przeliczanie

Modyfikowanie w miejscu — funkcje deklarowane jako puste

Opis

Poniżej opisano typy argumentów i typy danych wartości zwracanych przez funkcje WYWOŁAJ, REJESTRUJ i REJESTR.KOD. Argumenty i zwracane wartości są różne w zależności od środowiska pracy, a różnice są zapisane w tabeli typów danych.

Początek strony

Typy danych

W funkcjach WYWOŁAJ, REJESTRUJ i REJESTR.KOD argument typ_tekst określa typ danych zwracanej wartości i typy danych wszystkich argumentów dla funkcji DLL lub zasobu kodów. Pierwszy znak typ_tekst określa typ danych zwracanej wartości. Pozostałe znaki wskazują typy danych wszystkich argumentów. Na przykład w przypadku funkcji DLL, która zwraca liczbę zmiennoprzecinkową, a jako argumentów wymaga liczb całkowitych i zmiennoprzecinkowych, niezbędne jest użycie wartości "BIB" dla argumentu typ_tekst.

Poniższa tabela zawiera pełną listę kodów typów danych rozpoznawanych przez program Microsoft Excel, opis każdego typu danych, informacje o sposobie przekazywania argumentu lub zwracanej wartości i typową deklarację dla typu danej w języku programowania C.

Kod

Opis

Przekazywane przez

Deklaracja w C

A

Wartość logiczna
(FAŁSZ = 0, PRAWDA = 1)

Wartość

short int

B

IEEE 8-bajtowa liczba zmiennoprzecinkowa

Wartość
(Windows)

Odwołanie (Macintosh)

double
(Windows)

double * (Macintosh)

C

Ciąg zakończony wartością zerową (maksymalna długość ciągu = 255)

Odwołanie

char *

D

Ciąg zliczany według bajtów (pierwszy bajt zawiera długość ciągu, maks. długość ciągu = 255 znaków)

Odwołanie

unsigned char *

E

IEEE 8-bajtowa liczba zmiennoprzecinkowa

Odwołanie

double *

F

Ciąg zakończony wartością zerową (maksymalna długość ciągu = 255 znaków)

Odwołanie (modyfikowanie w miejscu)

char *

G

Ciąg zliczany według bajtów (pierwszy bajt zawiera długość ciągu, maks. długość ciągu = 255 znaków)

Odwołanie (modyfikowanie w miejscu)

unsigned char *

H

2-bajtowa liczba całkowita bez znaku

Wartość

unsigned short int

I

2-bajtowa liczba całkowita ze znakiem

Wartość

short int

J

4-bajtowa liczba całkowita ze znakiem

Wartość

long int

K

Tablica

Odwołanie

FP *

L

Wartość logiczna
(FAŁSZ = 0, PRAWDA = 1)

Odwołanie

short int *

M

2-bajtowa liczba całkowita ze znakiem

Odwołanie

short int *

N

4-bajtowa liczba całkowita ze znakiem

Odwołanie

long int *

O

Tablica

Odwołanie

Przekazywane są trzy argumenty:
unsigned short int *
unsigned short int *
double [ ]

P

Struktura danych OPER w programie Microsoft Excel

Odwołanie

OPER *

R

Struktura danych XLOPER w programie Microsoft Excel

Odwołanie

XLOPER *

Początek strony

Spostrzeżenia

  • Deklaracje języka programowania C opierają się na założeniu, że program kompilujący ma domyślnie ustawione 8-bajtowe liczby zmiennoprzecinkowe o podwójnej precyzji (double), 2-bajtowe liczby całkowite krótkie (short int) i 4-bajtowe liczby całkowite długie (long int).

  • W środowisku programowania Microsoft Windows wszystkie wskaźniki są wskaźnikami odległymi. Na przykład należy zadeklarować kod D typu danych jako unsigned char far * w systemie Microsoft Windows.

  • Wszystkie funkcje w bibliotekach DLL i zasobach kodów są wywoływane za pomocą konwencji wywoływania języka Pascal. Większość programów kompilujących w języku C zezwala na korzystanie z konwencji wywoływania języka Pascal przez dodanie słów kluczowych Pascala do deklaracji funkcji, tak jak w poniższym przykładzie: pascal void main (rows,columns,a)

  • Jeśli funkcja wykorzystuje typ danych przekazywany przez odwołanie dla swojej zwracanej wartości, to można przekazać wskaźnik zerowy jako wartość zwróconą. Program Microsoft Excel zinterpretuje wskaźnik zerowy jako wartość błędu #LICZBA!.

Początek strony

Dodatkowe informacje o typach danych

W tej sekcji przedstawiono szczegółowe informacje o typach danych F, G, K, O, P i R, a także inne informacje o argumencie typ_tekst.

Typy danych F i G

Wykorzystując typ danych F i G, funkcja może zmodyfikować bufor ciągu przydzielony przez program Microsoft Excel. Jeśli kod zwróconej wartości jest typu F lub G, to program Microsoft Excel ignoruje wartości zwrócone przez funkcję. Zamiast tego przeszukuje listę argumentów funkcji do momentu odnalezienia pierwszego odpowiadającego typu danych (F lub G), a następnie przyjmuje za wartość zwróconą bieżącą zawartość przydzielonego buforu ciągu. Microsoft Excel przydziela argumentowi 256 bajtów, więc funkcja może zwrócić dłuższy ciąg niż ciąg wejściowy.

Początek strony

Typ danych K

Typ danych K korzysta ze wskaźnika do struktury danych FP o zmiennym rozmiarze. Strukturę tę należy zdefiniować w bibliotece DLL lub w zasobie kodów w następujący sposób:

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

Deklaracja double array[1] przydziela jedynie miejsce do przechowywania dla jednoelementowej tablicy. Liczba elementów w rzeczywistej tablicy jest równa iloczynowi liczby wierszy i liczby kolumn.

Początek strony

Typ danych O

Typ danych O może być wykorzystany wyłącznie jako argument, a nie jako zwracana wartości. Przekazuje trzy elementy: wskaźnik liczby wierszy w tablicy, wskaźnik liczby kolumn w tablicy i wskaźnik dwuwymiarowej tablicy liczb zmiennoprzecinkowych.

Zamiast zwracać wartości, funkcja może modyfikować tablicę przekazaną przez typ danych O. Wykonuje się to, używając „>O” jako argumentu typ_tekst. Aby uzyskać więcej informacji, zobacz poniżą sekcję „Modyfikowanie w miejscu — funkcje deklarowane jako puste”.

Typ danych O został utworzony, aby zapewnić bezpośrednią zgodność z bibliotekami FORTRAN DLL, w których argument jest przekazywany za pomocą odwołania.

Początek strony

Typ danych P

Typ danych P jest wskaźnikiem struktury OPER. Struktura OPER zawiera osiem bajtów danych, po których następuje 2-bajtowy identyfikator określający typ danych. W przypadku typu danych P funkcja DLL lub zasobu kodów może pobierać i zwracać dowolny typ danych programu Microsoft Excel.

Struktura OPER jest definiowana następująco:

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;

Pole typu zawiera jedną z następujących wartości:

Typ

Opis

Użyte pole wartości

1

Liczba

num

2

Ciąg (pierwszy bajt zawiera długość ciągu)

str

4

Boolean (logiczna)

bool

16

Błąd: wartości błędu to:

0#ZERO!

7#DZIEL/0!

15#ARG!

23#ADR!

29#NAZWA?

36#LICZBA!

42#N/D!

err

64

Tablica

array

128

Brakujący argument

256

Pusta komórka

Ostatnie dwie wartości mogą być używane tylko jako argumenty, a nie wartości zwracane. Wartość brakującego argumentu (128) jest przekazywana, gdy obiekt wywołujący pomija argument. Wartość pustej komórki (256) jest przekazywana, gdy obiekt wywołujący odwołuje się do pustej komórki.

Początek strony

Typ danych R — wywoływanie funkcji programu Microsoft Excel z bibliotek DLL

Typ danych R jest wskaźnikiem struktury XLOPER, która jest rozbudowaną wersją struktury OPER. W programie Microsoft Excel w wersji 4.0 i nowszej można wykorzystywać dane typu R do wpisywania bibliotek DLL i zasobów kodów wywołujących funkcje Microsoft Excel. Za pomocą struktury XLOPER funkcja biblioteki DLL, oprócz przekazywania danych, może przekazać odwołania arkusza i implementować sterowanie przepływem. Pełny opis typu danych R oraz interfejsu programowania aplikacji Microsoft Excel (API) wykracza poza zakres tego tematu. Podręcznik Microsoft Office XP Developer's Guide zawiera szczegółowe informacje dotyczące typu danych R, interfejsu Microsoft Excel API oraz wielu innych aspektów technicznych programu Microsoft Excel.

Początek strony

Funkcje nietrwałe i przeliczanie

Microsoft Excel zazwyczaj oblicza funkcję DLL (lub zasobu kodów) wyłącznie po wprowadzeniu jej do komórki, zmianie jednego z jej poprzedników lub obliczeniu komórki za pomocą makra. W arkuszu można ustawić nietrwałą funkcję DLL lub zasobu kodów, co oznacza, że będzie ona obliczana ponownie w przypadku każdego obliczania arkusza. Aby funkcja była nietrwała, należy dodać wykrzyknik (!) jako ostatni znak argumentu typ_tekst.

Na przykład w programie Microsoft Excel dla Windows poniższa formuła arkusza jest obliczana ponownie za każdym razem wraz z arkuszem:

WYWOŁAJ("Kernel32";"GetTickCount";"J!")

Początek strony

Modyfikowanie w miejscu — funkcje deklarowane jako puste

Można użyć pojedynczej cyfry n dla zwróconego kodu typu w argumencie typ_tekst, gdzie n oznacza liczbę od 1 do 9. Sygnalizuje to programowi Microsoft Excel, że należy zmodyfikować zmienną pod adresem wskazanym przez n-ty argument typ_tekst zamiast zwracać wartość. Takie działanie znane jest również pod nazwą modyfikowania w miejscu. N-ty argument powinien być typem danych przekazywanym przez odwołanie (C, D, E, F, G, K, L, M, N, O, P lub R). Funkcja DLL lub zasobu kodów powinna być także zadeklarowana ze słowem kluczowym "void" w języku C (lub słowem kluczowym "procedure" w Pascalu).

Na przykład funkcja DLL pobierająca ciąg zakończony wartością zerową i dwa wskaźniki liczb całkowitych jako argumenty może zmodyfikować ciąg w miejscu. Należy w tym celu użyć "1FMM" jako argumentu typ_tekst i zadeklarować funkcję jako pustą.

Wcześniejsze niż wersja 4.0 wersje programu Microsoft Excel używały znaku > do modyfikowania w miejscu pierwszego argumentu, bo niemożliwe było modyfikowanie innych argumentów. Znak > jest odpowiednikiem n = 1 w programie Microsoft Excel w wersji 4.0 i nowszej.

Początek strony

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×