Sebuah proyek tunggal dapat berisi hingga 32.000 pengidentifikasi (kata-kata yang tidak dicadangkan), termasuk (namun tidak terbatas pada) formulir, kontrol, modul, variabel, konstanta, prosedur, fungsi, dan objek. Perhatikan bahwa jumlah pengidentifikasi sebenarnya dibatasi oleh memori yang tersedia.
Nama variabel dalam Visual Basic tidak boleh melebihi 255 karakter, dan nama formulir, kontrol, modul, dan kelas tidak boleh melebihi 40 karakter. Visual Basic tidak membatasi jumlah aktual objek berbeda dalam suatu proyek.
◆Batasan Kontrol◆
Setiap kontrol nongrafis (semua kontrol kecuali bentuk, garis, gambar, dan label) menggunakan jendela. Setiap jendela menggunakan sumber daya sistem, sehingga jumlah jendela yang bisa ada secara bersamaan dibatasi oleh sumber daya yang tersedia. Batas pastinya bergantung pada sumber daya sistem yang tersedia dan jenis kontrol yang digunakan. Untuk mengurangi konsumsi sumber daya sistem, Anda dapat menggunakan kontrol bentuk, garis, label, dan gambar alih-alih kontrol kotak gambar saat membuat atau menampilkan grafik.
1. Jumlah total kontrol
Jumlah maksimum kontrol yang diperbolehkan pada satu formulir bergantung pada jenis kontrol yang digunakan dan sumber daya sistem yang tersedia. Namun, ada batasan tetap yaitu hanya 254 nama kontrol yang diperbolehkan per formulir. Karena semua kontrol dalam array mempunyai nama kontrol yang sama, array kontrol hanya menghitung batas ini satu kali. Di semua versi, batas indeks array kontrol berada pada rentang 0 hingga 32.767. Jika Anda menempatkan kontrol di atas setiap kontrol, seperti kontrol bingkai bertumpuk dalam sebuah bingkai, Visual Basic umumnya hanya menerima tidak lebih dari 25 level kontrol bertumpuk.
2. Pembatasan pengendalian khusus
Tabel berikut mencantumkan batasan properti untuk kontrol khusus di Visual Basic.
Kontrol kotak daftar Daftar dan ListCount serta kontrol kotak kombo: jumlah maksimum item adalah 32K, dan batas ukuran untuk setiap item adalah 1K (1024 byte);
Kontrol kotak teks teks: terbatas pada 64K;
Kontrol label keterangan: terbatas pada 1024 byte;
Kontrol tombol perintah, kontrol kotak centang, kontrol bingkai, dan kontrol tombol opsi: dibatasi hingga 255 karakter, dan judul apa pun yang melebihi batas ini akan terpotong;
Judul properti kontrol khusus: terbatas pada 32K
Kontrol menu: dibatasi hingga 235 karakter
Tandai semua kontrol: terbatas pada ukuran memori yang tersedia
Beri nama semua kontrol: dibatasi hingga 40 karakter
Perhatikan bahwa dalam Visual Basic, nama properti kontrol dibatasi hingga 30 karakter.
◆Pembatasan kode◆
Jumlah total baris kode yang dapat dimuat ke dalam formulir, kelas, atau modul standar dibatasi hingga 65.534 baris. Satu baris kode dibatasi hingga 1023 byte. Tidak boleh ada lebih dari 256 spasi di depan sebelum teks sebenarnya dalam satu baris, dan tidak lebih dari 25 karakter lanjutan baris (_) dalam satu baris logis.
1. Prosedur, jenis dan variabel
Tidak ada batasan jumlah prosedur per modul. Setiap proses dapat berisi hingga 64 ribu kode. Jika prosedur atau modul melebihi batas ini, Visual Basic menghasilkan kesalahan waktu kompilasi. Jika Anda mengalami kesalahan seperti ini, Anda dapat menghindari kesalahan semacam ini dengan membagi prosedur yang sangat besar menjadi beberapa prosedur yang lebih kecil atau memindahkan deklarasi tingkat modul ke modul lain. Visual Basic menggunakan tabel untuk menyimpan nama pengenal (variabel, prosedur, konstanta, dll.) dalam kode. Setiap meja dibatasi hingga 64K.
2. Tabel deklarasi perpustakaan tautan dinamis
Setiap modul formulir dan kode menggunakan tabel yang menjelaskan struktur titik masuk perpustakaan tautan dinamis. Setiap struktur berukuran sekitar 40 byte dan ukuran tabel dibatasi hingga 64K, sehingga menghasilkan sekitar 1500 deklarasi per modul.
3. Daftar proyek
Seluruh aplikasi menggunakan tabel yang berisi semua nama. Nama-nama tersebut antara lain:
· Nama konstan
·Nama variabel
· Nama definisi tipe yang disesuaikan
·Nama modul
· Nama deklarasi prosedur DLL
Tidak ada batasan ukuran total tabel nama proyek, namun entri peka huruf besar-kecil tidak boleh melebihi 32K. Jika batas 32K terlampaui, pengidentifikasi PRIvate dapat digunakan kembali dalam modul berbeda untuk membatasi jumlah entri peka huruf besar-kecil hingga 32K.
4. Tabel masukan
Setiap kali pengidentifikasi direferensikan dalam modul yang berbeda, sebuah entri dibuat di tabel input. Setiap entri tersebut setidaknya berukuran 24 byte, tetapi dibatasi hingga 64K, sehingga setiap modul dapat memiliki sekitar 2000 referensi.
5. Tabel entri modul
Setiap modul dalam tabel ini berukuran hingga 125 byte, namun terdapat batas total sebesar 64K, sehingga setiap proyek dapat menghasilkan sekitar 400 modul.
◆Batasan Data◆
Pembatasan berikut berlaku untuk variabel dalam bahasa Visual Basic.
1. Data modul form, standar dan kelas
Bagian data modul VBA (yaitu, data yang ditentukan di bagian deklarasi) dari segala bentuk atau modul di Visual Basic memiliki hingga 64K bagian data, yang mencakup data berikut:
·Variabel lokal dideklarasikan dengan Statis
·Variabel tingkat modul yang bukan array dan string dengan panjang variabel
·Setiap array modul dan string dengan panjang variabel menempati 4 byte
2. Prosedur, tipe dan variabel
Jika prosedur atau modul melebihi batas kode 64K, Visual Basic menghasilkan kesalahan waktu kompilasi.
Jika variabel lokal yang ditentukan dalam suatu prosedur melebihi 64K, kesalahan "Terlalu banyak variabel non-statis lokal" akan dihasilkan.
Jika variabel tingkat modul yang ditentukan dalam modul melebihi 64K, atau tipe kustom yang ditentukan lebih besar dari 64K, kesalahan "Data tetap atau statis tidak dapat melebihi 64K" terjadi.
Jika Anda mengalami kesalahan seperti ini, Anda dapat menghindari kesalahan ini dengan membagi prosedur yang terlalu besar menjadi beberapa prosedur yang lebih kecil atau memindahkan deklarasi tingkat modul ke modul lain.
Array yang dideklarasikan sebagai variabel tidak dapat menggunakan seluruh ruang array; hanya deskriptor array yang berkontribusi pada batas 64K. Misalnya, dideklarasikan dalam prosedur atau sebagai deklarasi tingkat modul, Dimx(1000000)AsByte. Namun, jika Anda mendeklarasikan array rekaman berukuran besar dan tetap, lalu mendeklarasikan instans rekaman tersebut sebagai variabel, kelebihan memori dapat terjadi.
3. Jenis yang disesuaikan
Meskipun jumlah dari banyak string dengan panjang variabel tipe khusus dapat melebihi 64K (setiap string dengan panjang variabel tipe khusus hanya menempati 4 byte; dan konten sebenarnya dari string disimpan secara terpisah), variabel tipe khusus Tidak dapat melebihi 64K. Tipe kustom dapat ditentukan dengan tipe kustom lainnya, namun ukuran total tipe ini tidak boleh melebihi 64K.
4. Ruang tumpukan
Parameter dan variabel lokal selama runtime menempati ruang tumpukan. Variabel tingkat modul dan variabel statis tidak menempati ruang tumpukan karena dialokasikan di bagian data formulir atau modul. Setiap prosedur DLL yang dipanggil menggunakan tumpukan saat dijalankan.
Visual Basic sendiri menggunakan tumpukan, misalnya, untuk menyimpan nilai perantara saat mengevaluasi ekspresi.
Total ukuran tumpukan yang tersedia di Visual Basic adalah satu megabyte (1MB) per thread. Namun, ukuran tumpukan dapat melebihi batas ini jika terdapat memori bebas yang berdekatan.
◆Keterbatasan sumber daya sistem◆
Keterbatasan tertentu pada Visual Basic dan aplikasi yang dibangun dengannya dipengaruhi oleh Microsoft Windows. Pembatasan ini bervariasi tergantung pada versi Microsoft Windows.
Setiap jendela yang terbuka menggunakan sumber daya sistem (area data yang digunakan oleh Microsoft Windows). Jika dijalankan di luar jangkauan sumber daya sistem, kesalahan runtime "Sumber daya yang tersedia tidak mencukupi untuk operasi Windows" akan terjadi. Anda dapat memilih "Tentang" dari menu "Bantuan" pada "Manajer Program" atau "Manajer File" di Windows NT3.51, atau pilih "Tentang" dari menu "Bantuan Windows Explorer" di Windows 95 dan Windows NT4.0. untuk mendeteksi persentase sumber daya sistem yang tersisa. Aplikasi juga dapat memanggil Windows API GetFreeSystemResources untuk mendapatkan kembali sumber daya sistem, menutup jendela (seperti formulir terbuka dan jendela "kode", dan jendela di aplikasi lain) dan keluar dari aplikasi yang sedang berjalan.
->