Menggunakan fungsi CALL dan REGISTER

Penting: Perhatian    Mengedit registri dengan tidak benar dapat menyebabkan kerusakan parah pada sistem operasi Anda, mengharuskan Anda untuk menginstal ulang. Microsoft tidak menjamin bahwa masalah yang ditimbulkan akibat mengedit registri dengan tidak benar dapat diatasi. Sebelum mengedit registri, buat cadangan semua data yang berharga. Untuk informasi terbaru tentang menggunakan dan melindungi registri komputer Anda, lihat Bantuan Microsoft Windows.

Artikel ini menguraikan sintaks rumus dan penggunaan fungsi CALL, REGISTER, dan REGISTER.ID dalam Microsoft Excel.

Catatan: Fungsi CALL dan REGISTER tidak tersedia di Excel Online.

Di artikel ini

Deskripsi

Tipe data

Keterangan

Informasi Tipe Data Tambahan

Tipe Data F dan G

Tipe Data K

Tipe Data O

Tipe Data P

Tipe Data R — Memanggil Fungsi Microsoft Excel dari DLL

Fungsi Tidak Tetap and Perhitungan Ulang

Memodifikasi di Tempat — Fungsi Dideklarasikan sebagai Void (tidak mengembalikan nilai)

Deskripsi

Hal berikut ini menguraikan argumen dan mengembalikan tipe data nilai yang digunakan oleh fungsi CALL, REGISTER, dan REGISTER.ID. Argumen dan nilai yang dikembalikan sedikit berbeda bergantung pada lingkungan operasi Anda, dan perbedaan ini dicatat dalam tabel tipe data.

Atas halaman

Tipe Data

Dalam fungsi CALL, REGISTER, dan REGISTER.ID, argumen type_text menentukan tipe data dari nilai yang dikembalikan dan tipe data dari semua argumen ke fungsi DLL atau sumber kode. Karakter pertama dari type_text menentukan tipe data dari nilai yang dikembalikan. Karakter selebihnya menunjukkan tipe data dari semua argumen. Sebagai contoh, fungsi DLL yang mengembalikan bilangan riil dan menggunakan bilangan bulat dan bilangan riil sebagai argumen akan memerlukan "BIB" untuk argumen type_text tersebut.

Tabel berikut berisi daftar lengkap dari kode tipe data yang dikenali oleh Microsoft Excel, deskripsi untuk setiap tipe data, bagaimana argumen atau nilai yang dikembalikan dikirim, dan deklarasi umum untuk tipe data dalam bahasa pemrograman C.

Kode

Deskripsi

Dikirim secara

Deklarasi C

A

Logika
(FALSE = 0), TRUE = 1)

Nilai

bilangan bulat pendek

B

Bilangan riil IEEE 8-byte

Nilai
(Windows)

Referensi (Macintosh)

double
(Windows)

double * (Macintosh)

C

String yang diakhiri karakter null bukan nol (panjang string maksimum = 255)

Referensi

karakter *

D

String yang dihitung per-byte (byte pertama berisi panjang string, panjang string maksimum = 255 karakter)

Referensi

Karakter yang tidak ditandatangani *

E

Bilangan riil IEEE 8-byte

Referensi

double *

URL

String yang diakhiri karakter null bukan nol (panjang string maksimum = 255 karakter)

Referensi (modifikasi di tempat)

karakter *

"G"

String yang dihitung per-byte (byte pertama berisi panjang string, panjang string maksimum = 255 karakter)

Referensi (modifikasi di tempat)

karakter yang tidak ditandatangani *

H

Bilangan bulat 2-byte yang tidak ditandatangani

Nilai

bilangan bulat pendek yang tidak ditandatangani

I

Bilangan bulat 2-byte yang ditandatangani

Nilai

bilangan bulat pendek

J

Bilangan bulat 4-byte yang ditandatangani

Nilai

bilangan bulat panjang

K

Array

Referensi

FP *

L

Logika
(FALSE = 0, TRUE = 1)

Referensi

bilangan bulat pendek *

M

Bilangan bulat 2-byte yang ditandatangani

Referensi

bilangan bulat pendek *

N

Bilangan bulat 4-byte yang ditandatangani

Referensi

bilangan bulat panjang *

O

Array

Referensi

Tiga argumen dikirim:
bilangan bulat pendek yang tidak ditandatangani*
bilangan bulat pendek yang tidak ditandatangani *
double [ ]

P

Struktur data OPER Microsoft Excel

Referensi

OPER *

R

Struktur data XLOPER Microsoft Excel

Referensi

XLOPER *

Atas halaman

Keterangan

  • Deklarasi bahasa C didasarkan pada asumsi bahwa kompilator default Anda bekerja ke bilangan pecahan 8-byte, bilangan bulat pendek 2-byte, dan bilangan bulat panjang 4-byte.

  • Di lingkungan pemrograman Microsoft Windows, semua penunjuk adalah penunjuk jauh. Sebagai contoh, Anda harus mendeklarasikan kode tipe data D sebagai unsigned char far * di Microsoft Windows.

  • Semua fungsi di DLL dan sumber kode dipanggil menggunakan konvensi penamaan Pascal. Kebanyakan kompilator C memungkinkan Anda untuk menggunakan konvensi penamaan Pascal dengan menambah kata kunci Pascal ke deklarasi fungsi, seperti yang ditunjukkan di contoh berikut: pascal void main (rows,columns,a)

  • Jika fungsi menggunakan tipe data kirim secara referensi untuk nilai yang dikembalikannya, Anda bisa mengirim penunjuk kosong sebagai nilai yang dikembalikan. Microsoft Excel akan menganggap penunjuk null sebagai nilai kesalahan #NUM!.

Atas Halaman

Informasi Tipe Data Tambahan

Bagian ini berisi informasi detail tentang tipe data F, G, K, O, P, dan R dan informasi lain tentang argumen type_text.

Tipe Data F dan G

Dengan tipe data F dan G, fungsi bisa memodifikasi buffer string yang dialokasikan oleh Microsoft Excel. Jika kode tipe nilai yang dikembalikan adalah F atau G, maka Microsoft Excel mengabaikan nilai yang dikembalikan oleh fungsi. Sebagai gantinya, Microsoft Excel mencari daftar argumen fungsi untuk tipe data pertama yang terkait (F atau G) lalu menggunakan konten dari buffer string yang dialokasikan saat itu sebagai nilai yang dikembalikan. Microsoft Excel mengalokasikan 256 byte untuk argumen tersebut, jadi fungsi mungkin mengembalikan string lebih besar dari yang diterima.

Atas halaman

Tipe Data K

Tipe data K menggunakan penunjuk ke struktur FP berukuran variabel. Anda harus menentukan struktur ini dalam DLL atau sumber kode seperti berikut:

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

Deklarasi double array[1] mengalokasikan penyimpanan hanya untuk array elemen tunggal. Jumlah elemen di array sebenarnya sama dengan jumlah baris yang dikalikan dengan jumlah kolom.

Atas halaman

Tipe Data O

Tipe data O hanya dapat digunakan sebagai argumen, bukan sebagai nilai yang dikembalikan. Tipe data O mengirim 3 item: penunjuk ke jumlah baris dalam satu array, penunjuk ke jumlah kolom dalam satu array, dan penunjuk ke array dua dimensi bilangan riil.

Alih-alih mengembalikan nilai, fungsi dapat memodifikasi array yang dikirim oleh tipe data O. Untuk melakukannya, Anda bisa menggunakan ">O" sebagai argumen type_text. Untuk informasi lebih lanjut, lihat "Memodifikasi di Tempat — Fungsi Dideklarasikan sebagai Void" di bawah ini.

Tipe data O dibuat untuk kompatibilitas langsung dengan DLL Fortran, yang mengirim argumen sesuai dengan referensi.

Atas halaman

Tipe Data P

Tipe data P adalah penunjuk ke struktur OPER. Struktur OPER berisi data 8-byte, diikuti dengan pengidentifikasi 2-byte yang menentukan tipe data. Dengan tipe data P, fungsi DLL atau sumber kode dapat menggunakan dan mengembalikan tipe data Microsoft Excel apa pun.

Struktur OPER didefinisikan seperti berikut:

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;

Bidang tipe berisi salah satu dari nilai ini.

Tipe

Deskripsi

Bidang nilai yang digunakan

1

Numerik

num

2

String (byte pertama berisi panjang string)

str

4

Boolean (logika)

bool

16

Kesalahan: nilai kesalahan:

0#NULL!

7#DIV/0!

15#Value!

23#REF!

29#NAME?

36#NUM!

42#N/A

err

6,4

Array

array

128

Argumen yang hilang

256

Sel kosong

Dua nilai terakhir hanya bisa digunakan sebagai argumen, bukan nilai yang dikembalikan. Nilai argumen yang hilang (128) dikirim saat pemanggil menghilangkan sebuah argumen. Nilai sel kosong (256) dikirim saat pemanggil mengirim referensi ke sel kosong.

Atas halaman

Tipe Data R — Memanggil Fungsi Microsoft Excel dari DLL

Tipe data R adalah penunjuk ke struktur XLOPER, yang merupakan versi struktur OPER yang telah ditingkatkan. Di Microsoft Excel versi 4.0 dan yang lebih baru, Anda bisa menggunakan tipe data R untuk menulis DLL dan sumber kode yang memanggil fungsi Microsoft Excel. Dengan struktur XLOPER, fungsi DLL bisa mengirim referensi lembar dan mengimplementasikan kontrol alur, selain mengirim data. Deskripsi lengkap tipe data R dan antarmuka pemrograman aplikasi (API, Application Programming Interface) Microsoft Excel di luar lingkup topik ini. Panduan Pengembang Microsoft Office XP berisi informasi detail tentang tipe data R, API Microsoft Excel, dan banyak aspek teknis Microsoft Excel lainnya.

Atas halaman

Fungsi Tidak Tetap and Perhitungan Ulang

Microsoft Excel umumnya menghitung fungsi DLL (atau sumber kode) hanya saat dimasukkan ke dalam sel, saat salah satu prioritasnya berubah, atau saat sel dihitung selama makro dijalankan. Di lembar kerja, Anda bisa membuat fungsi DLL atau sumber kode yang tidak tetap, yang berarti bahwa hanya akan menghitung ulang setiap kali lembar kerja menghitung ulang. Untuk membuat fungsi tidak tetap, tambahkan tanda seru (!) sebagai karakter terbaik di argumen type_text.

Sebagai contoh, di Microsoft Excel untuk Windows, rumus lembar kerja berikut menghitung ulang setiap kali lembar kerja menghitung ulang:

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

Atas halaman

Memodifikasi di Tempat — Fungsi Dideklarasikan sebagai Void (tidak mengembalikan nilai)

Anda bisa menggunakan digit tunggal n untuk kode tipe yang dikembalikan di type_text, di mana n adalah angka dari 1 sampai 9. Ini memberitahu Microsoft Excel untuk memodifikasi variabel di lokasi yang ditunjuk oleh argumen ke-n di type_text, bukan mengembalikan nilai. Ini juga disebut sebagai memodifikasi di tempat. Argumen ke-n harus merupakan tipe data kirim secara referensi (C, D, E, F, G, K, L, M, N, O, P, atau R). Fungsi DLL atau sumber kode harus dideklarasi dengan kata kunci void dalam bahasa C (atau kata kunci prosedur dalam bahasa Pascal).

Sebagai contoh, fungsi DLL yang menggunakan string yang diakhiri karakter null bukan nol dan dua penunjuk ke bilangan bulat sebagai argumen bisa memodifikasi string di tempat. Gunakan "1FMM" sebagai argumen type_text, dan deklarasikan fungsi sebagai void.

Versi sebelum Microsoft Excel 4.0 menggunakan karakter > untuk memodifikasi argumen pertama di tempat; tidak ada cara untuk memodifikasi argumen selain argumen pertama. Karakter > sama dengan n = 1 di Microsoft Excel versi 4.0 dan lebih baru.

Atas halaman

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×