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 untuk web.
Di artikel ini
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.
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 * |
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 pass-by-reference untuk nilai yang dikembalikan, Anda bisa melewati penunjuk null sebagai nilai yang dikembalikan. Microsoft Excel akan menginterpretasikan penunjuk null sebagai #NUM! nilai kesalahan.
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.
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.
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 bisa mengubah array yang dilewati oleh tipe data O. Untuk melakukan ini, Anda dapat menggunakan ">O" sebagai argumen type_text. Untuk informasi selengkapnya, lihat "Memodifikasi di Tempat — Fungsi Dideklarasikan sebagai Batal" di bawah ini.
Tipe data O dibuat untuk kompatibilitas langsung dengan DLL Fortran, yang mengirim argumen sesuai dengan referensi.
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 |
64 |
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.
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.
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!")
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.