Tipe variabel visual basic. bahasa pemrograman Visual Basic

Karena Dasar visual dapat menentukan tipe variabel oleh dia arti(cm. Varian), maka tipe variabel tidak boleh dideklarasikan (tidak ditentukan). Namun, deklarasi variabel adalah aturan praktik pemrograman yang baik, dan juga memungkinkan Anda untuk menghindari beberapa kesalahan dalam program, seperti ejaan nama variabel yang tidak sama di tempat yang berbeda dalam program, ketidakpatuhan tipe data dalam perhitungan.

Variabel dideklarasikan di awal jendela kode atau pada awal prosedur menggunakan operator Redup dengan entri seperti itu:

Dim VariableName Sebagai VariableType

Kata-kata ditentukan sebagai tipe variabel Byte, Panjang, String dan lainnya dari tabel tipe (lihat di atas).

Misalnya:
Redupkan As Byte
Variabel dideklarasikan A jenis byte. Dalam variabel seperti itu, Anda dapat memasukkan angka dari 0 hingga 255. Saat Anda mencoba menetapkan variabel lagi kesalahan akan terjadi, dan nomor tersebut memiliki bagian pecahan akan dibulatkan.

Dim b As String
Variabel dideklarasikan B jenis Rangkaian. Variabel ini akan berisi teks (walaupun teks bisa berupa angka, tetapi 2 ditambah 3 adalah 23).

Saat mendeklarasikan banyak variabel, Anda dapat menghitungnya menggunakan koma:
Redupkan As Byte , b Sebagai String

Setelah baris deklarasi, Anda dapat menetapkan nilai ke variabel.

Misalnya:
Redupkan As Byte
a=5

Visual Basic juga memungkinkan Anda untuk membuat tipe data Anda sendiri. Fitur ini penting ketika Anda berurusan dengan sekelompok elemen data yang terkait satu sama lain tetapi termasuk dalam kategori data yang berbeda. Anda dapat membuat tipe Anda sendiri ( UDT - tipe yang ditentukan pengguna) dengan pernyataan Struktur, dan mendeklarasikan variabel yang terkait dengan tipe baru ini dengan pernyataan Dim. Namun perlu diingat bahwa pernyataan Struktur tidak dapat ditempatkan dalam prosedur acara - itu harus ditempatkan di bagian atas kode formulir bersama dengan deklarasi variabel lain, atau dalam kode modul.

Misalnya, deklarasi berikut membuat tipe data khusus bernama Karyawan yang dapat menyimpan nama, tanggal lahir, dan tanggal kerja karyawan tertentu:

Structure Employee Dim Name As String Dim DateOfBirth As Date Dim HireDate As Date End Structure

Setelah tipe data dibuat, Anda dapat menggunakannya dalam kode untuk formulir atau dalam prosedur acara modul. Pernyataan berikut menggunakan tipe Karyawan baru. Pernyataan pertama membuat variabel bernama ProductManager bertipe Employee , dan pernyataan kedua menyetel komponen Name dari variabel ini ke nama "Eric Cody":

Dim ProductManager Sebagai Karyawan ProductManager.Name = "Eric Cody"

Kedengarannya seperti menyetel properti, bukan? Visual Basic menggunakan notasi yang sama untuk hubungan antara objek dan properti seperti halnya untuk hubungan antara tipe data yang ditentukan pengguna dan komponen variabel.

Konstanta: variabel yang tidak berubah

Jika variabel dalam program Anda berisi nilai yang tidak pernah berubah (seperti angka pi, yang merupakan entitas matematis tetap), Anda dapat mempertimbangkan untuk menyimpan nilai tersebut sebagai konstanta daripada variabel. Konstanta adalah nama bermakna yang menggantikan angka atau string uji yang tidak pernah berubah. Konstanta berguna karena meningkatkan keterbacaan kode program, mengurangi jumlahnya kesalahan perangkat lunak dan membuatnya lebih mudah untuk membuat perubahan global dalam kode. Konstanta bertindak seperti variabel, tetapi Anda tidak dapat mengubah nilainya saat program sedang berjalan. Mereka dideklarasikan dengan kata kunci Const, seperti yang ditunjukkan pada contoh berikut:

Konst Pi Sebagai Ganda = 3,14159265

Pernyataan ini membuat sebuah konstanta bernama Pi yang dapat digunakan dalam kode program sebagai pengganti nilai pi. Untuk membuat konstanta tersedia untuk semua objek dan prosedur kejadian di formulir Anda, tempatkan pernyataan ini di bagian atas kode formulir Anda, bersama dengan deklarasi variabel dan struktur lainnya yang tercakup ke semua prosedur kejadian formulir Anda. Untuk menyediakan konstanta dari semua formulir dan modul program (tidak hanya dari Form1 ), buat konstanta dalam kode modul dengan mengawalinya dengan kata kunci publik. Misalnya:

Const Publik Pi As Double = 3.14159265

Dalam latihan berikut, kita akan menggunakan konstanta dalam prosedur kejadian.

Menggunakan konstanta dalam prosedur acara
  1. Dari menu File, pilih Open lalu klik Project. Kotak dialog Open Project akan muncul.
  2. Buka proyek Constant Tester yang terletak di folder c:\vbnet03sbs\ch.5\penguji konstan.
  3. Jika formulir proyek tidak ditampilkan, klik Form1.vb di Solution Explorer, lalu klik tombol Lihat Desainer. Formulir akan muncul di Windows Forms Designer Tes konstan. Constant Tester adalah "kerangka" program. Antarmuka pengguna selesai, tetapi Anda harus memasukkan kode program.
  4. Lakukan klik dua kali pada tombol Tampilkan Konstan formulir. Prosedur kejadian Button1_Click muncul di Editor Kode.
  5. Masukkan pernyataan berikut dalam prosedur kejadian Button1_Click:

    Const Pi Sebagai Ganda = 3,14159265 Label1.Teks = Pi

    Nasihat. Pilih lokasi deklarasi Anda berdasarkan rencana Anda untuk menggunakan konstanta atau variabel. Biasanya, pemrogram mencoba untuk menjaga ruang lingkup deklarasi sekecil mungkin, tetapi pada saat yang sama, itu harus tersedia di semua bagian kode jika diperlukan. Misalnya, jika sebuah konstanta diperlukan hanya dalam satu prosedur kejadian, Anda harus menempatkan deklarasi konstanta tersebut di dalam prosedur kejadian tersebut. Namun, jika Anda harus membuatnya tersedia untuk semua prosedur kejadian formulir Anda, tempatkan deklarasinya di bagian atas kode formulir Anda.

    Untuk menjalankan program, klik tombol Mulai pada bilah alat standar.

    Klik tombolnya Tampilkan Konstan. Konstanta Pi akan muncul di bidang label, seperti yang ditunjukkan di bawah ini.

    Untuk menghentikan program, klik tombol KELUAR.

    Konstanta berguna dalam kode program, terutama saat menghitung rumus matematika. Bagian selanjutnya menjelaskan cara menggunakan operator dan variabel untuk menulis rumus.

BAHASA PEMROGRAMAN VISUAL BASIC. JENIS DATA. DESKRIPSI VARIABEL, KONSTAN, ARRAY

tipe data adalah cara data disimpan dan disajikan dalam sistem komputer.

Jenis data berikut dapat disimpan dan diproses dalam bahasa Visual Basic.

Byte adalah bilangan bulat non-negatif. Menerima nilai dari 0 hingga 255, menempati 1 byte.

Boolean - nilai logis. Mengambil salah satu dari dua nilai Benar dan Salah, menempati 2 byte.

Mata uang - angka perluasan desimal. Digunakan untuk melakukan perhitungan moneter dengan angka desimal tetap, menempati 8 byte. (Hingga 15 digit di sebelah kiri koma desimal dan hingga 4 digit di sebelah kanan koma desimal).

Tanggal - tanggal. Digunakan untuk menyimpan tanggal/waktu, menempati 8 byte.

Ganda - angka desimal presisi ganda, menempati 8 byte.

Integer - nilai integer pendek, menempati 2 byte. Digunakan untuk mewakili bilangan bulat dalam rentang -32768 hingga 32767.

Long - long integer, menempati 4 byte. Digunakan untuk mewakili bilangan bulat dalam rentang -2147483648 hingga 2147483647.

Tunggal - angka desimal presisi normal, menempati 4 byte. Digunakan untuk mewakili angka negatif dalam rentang -3.402823E 38 hingga -1.401298E-45 dan untuk mewakili angka positif dalam rentang 1.401298E-45 hingga 3.402823E 38.

String - string panjang variabel. Memori yang ditempati secara linier bergantung pada jumlah karakter dalam string.

String * panjang - string dengan panjang konstan.

Varian - nilai sewenang-wenang. Digunakan untuk penyimpanan data jenis apapun. Menempati 16 byte ditambah satu byte per karakter jika nilainya adalah string.

Obyek – obyek. Digunakan hanya untuk menyimpan referensi ke objek, menempati 4 byte.

Variabel adalah area memori bernama yang dirancang untuk menyimpan data yang berubah selama eksekusi program. Untuk mengakses isi area memori ini, cukup mengetahui nama variabelnya.

Nama variabel (pengidentifikasi) adalah string karakter yang membedakan variabel ini dari objek program lainnya (mengidentifikasi variabel dalam program).

Saat memberi nama variabel, aturan berikut harus diperhatikan:

Karakter pertama dari nama harus berupa huruf. Karakter yang tersisa adalah huruf dan angka (huruf besar dan huruf kecil berbeda). Anda dapat menggunakan karakter "_";

  • karakter "." tidak dapat digunakan dalam nama;
  • jumlah karakter dalam nama tidak boleh lebih dari 255;
  • nama variabel tidak boleh sama dengan kata-kata (layanan) bahasa yang dicadangkan.

Visual Basic memiliki fitur-fitur berikut. deklarasi tipe variabel.

  1. Variabel mungkin tidak dideklarasikan sama sekali. Dalam hal ini, tipe defaultnya adalah Variant. Namun, hal ini dapat menyebabkan operasi program menjadi lambat, tidak efisien, dan penggunaan memori yang boros.
  2. Variabel dapat dideklarasikan secara eksplisit menggunakan pernyataan definisi variabel:Dim VariableName [As VariableType],
    misalnya: Dim d as Long.
    Untuk selalu mendeklarasikan variabel secara eksplisit, gunakan opsi Opsi Eksplisit di bagian (Umum) (Deklarasi) dari formulir, modul, atau kelas yang ada. Setelah menyetel opsi ini, Visual Basic memerlukan deklarasi variabel secara eksplisit, dan jika variabel yang tidak dideklarasikan digunakan dalam kode, ini akan menghasilkan pesan kesalahan.
  3. Variabel dapat dideklarasikan secara implisit:

    Dengan operator deklarasi tipe:

DefType Huruf awal [- Huruf akhir];

Alih-alih OrgType, salah satu kata kunci yang menunjukkan jenis tersebut ditunjukkan:

Deflnt (untuk tipe Integer);
- DefLng (untuk tipe Panjang);
- DefSng (untuk tipe Tunggal);
- DefStr (untuk tipe String) dan seterusnya;

Jenis variabel terkadang dapat disimpulkan dari akhiran yang melekat pada nama variabel. Hanya enam jenis variabel yang dapat memiliki sufiks:

- % - Jenis bilangan bulat;
- & - Jenis panjang;
- ! - Jenis tunggal;
- # - Tipe ganda;
- $ - Jenis string;
- @ - Jenis mata uang.

Jika suatu variabel yang jenisnya secara implisit ditunjukkan oleh sufiks terjadi berkali-kali dalam suatu program, maka sufiks hanya dapat ditentukan satu kali, pertama kali variabel tersebut digunakan dalam program.

Konstanta- jumlah yang nilainya tidak dapat diubah. Seperti variabel, konstanta dideklarasikan di awal teks kode program oleh operator:

Const ConstantName = Nilai, contoh: Const Pi = 3.14159

Hanya nilai konstanta dan kombinasinya, termasuk operator aritmatika dan/atau logika, yang dapat digunakan sebagai nilai.

Himpunan adalah sekumpulan elemen dengan tipe tertentu, yang masing-masing memiliki nomor urutnya sendiri, yang disebut indeks.

Definisi array dilakukan oleh operator:

Dim VariableName([LowerLimitTo]
Batas atas) .

Contoh: Dim b (a to 15) - deklarasi array b, terdiri dari 15 elemen.

Visual Basic, secara default, mengindeks elemen array, mulai dari nol, yaitu indeks 0 menunjukkan elemen pertama array, indeks 1 yang kedua, dan seterusnya. Pernyataan Option Base 1 memungkinkan Anda menentukan pengindeksan array dari 1. Pernyataan ini harus ada di bagian (Umum) (Deklarasi).

Pada bagian ini, Anda akan mempelajari tentang tipe data yang dapat dimanipulasi oleh VBA, cara VBA menyimpan data sementara, cara menggabungkan variabel dan konstanta untuk membuat nilai baru, dan mempelajari cara menyertakan fungsi bawaan dalam ekspresi.

Pekerjaan laboratorium nomor 3. Ikhtisar tipe data VB. variabel dan

konstanta. Kompatibilitas tipe data. operator penugasan. Operator aritmatika dan logika. Fungsi bawaan

Tujuan pelajaran: Mengetahui tipe data. Ketahui cara membuat variabel. Ketahui cara menetapkan tipe data ke variabel. Mampu membuat konstanta bernama. Ketahui ruang lingkupnya

variabel dan konstanta. Tahu jenis konversi. Ketahui cara menggunakan operator penugasan. Mengetahui operasi aritmatika dan logika. Ketahui cara menggunakan penggabungan string. Ketahui cara menggunakan fungsi VBA bawaan. Bahan untuk pelajaran: ms.excel 2003.

Gambaran umum tipe dataVisualDasar (VB)

Sebelum belajar tentang variabel, Anda harus memahami bagaimana VBA menyimpan berbagai jenis informasi. VBA, seperti kebanyakan sistem pemrograman lainnya, memisahkan data yang diproses menjadi angka, tanggal, teks, dan jenis lainnya. Tipe data(data jenis) adalah istilah yang mengacu pada jenis data tertentu yang disimpan dan dapat dimanipulasi oleh VBA. Di meja. 9 tipe umum informasi VBA, menunjukkan berapa banyak memori yang ditempati setiap jenis, menjelaskan secara singkat jenis data, dan memberikan rentang nilai yang dapat disimpan oleh jenis tersebut.

Tabel 9– Tipe data VBA

Ketik nama

Ukuran masukbyte

bilangan bulat positif dari 0 sampai 255

Bilangan bulat dari -32768 hingga 32767

Bilangan bulat panjang dari -2147483648 hingga 2147483647

Bilangan real presisi biasa dengan

titik mengambang.

Angka negatif:

dari -3.402823E38 hingga -1.401298E-45.

Angka positif:

dari 1,401298Е-45 hingga 3,402823Е38

Bilangan real presisi ganda dengan

titik mengambang.

Angka negatif:

dari -1.79769313486232E308 ke

4.94065645841247E-324.

Angka positif:

dari 4.94065645841247E-324 ke

1.79769313486232E308

Angka dengan hingga 15 digit sebelum titik desimal dan 4 digit setelahnya (satuan mata uang). -922337203685477.5808 ke 922337203685477.5807

Untuk menyimpan nilai boolean; hanya dapat berisi nilai Benar (Benar) atau Salah (Salah).

Ketik nama

Ukuran masukbyte

Deskripsi dan rentang nilai

Untuk menyimpan kombinasi informasi tanggal dan waktu. Rentang tanggal dapat dari 1 Januari 100 hingga 31 Desember 9999. Rentang waktu dari 00:00:00 hingga 23:59:59

String (string panjang variabel)

10 byte + Digunakan untuk menyimpan teks. Panjang string bisa dari 0 karakter hingga (kira-kira) 2 miliar karakter

Tali (tali

panjang tetap)

Panjang Digunakan untuk menyimpan teks. Dapat string (satu berisi dari satu hingga (kira-kira) 65400 byte per karakter karakter)

16 byte + 1 byte/karakter

Tipe Variant dapat menyimpan tipe data lainnya. Kisaran untuk data Varian bergantung pada data aktual yang disimpan. Dalam kasus teks, rentang sesuai dengan tipe string; dalam hal angka, kisarannya sama dengan tipe Ganda

Digunakan untuk mengakses objek apa pun yang dikenali oleh VBA. Menyimpan alamat suatu objek dalam memori

Di meja. 9 Anda telah menemukan representasi data yang disebut notasi eksponensial(ilmiah notasi), yang digunakan untuk menampilkan pada perangkat eksternal (monitor, printer, dll.) angka yang sangat besar dan sangat kecil dalam format yang ringkas. Dalam notasi eksponensial, nilai ditulis tanpa nol di depan atau di belakang, dan hanya ada satu digit di sebelah kiri titik desimal. Angka tersebut dikalikan dengan 10 sampai tingkat tertentu untuk menunjukkan di mana letak desimal sebenarnya.

VBA memiliki enam tipe data numerik yang berbeda: byte, Bilangan bulat, Panjang, Lajang, Dobel Dan Mata uang. Tipe data numerik digunakan untuk menyimpan (dan memanipulasi) angka dalam berbagai format, bergantung pada tipe tertentu.

Biasanya program VBA (seperti program lainnya) "membuat" keputusan dengan memeriksa apakah berbagai kondisi benar. Untuk menyederhanakan kondisi pengujian dan memastikan bahwa hasil pengujian tersebut disimpan, VBA menyediakan tipe data Boolean. Nilai Boolean BENAR Dan PALSU ditelepon boolean(Boolean) nilai. Nama mereka dikaitkan dengan nama ahli matematika yang mengembangkan sistem logika matematika. Tipe data boolean VBA disebut juga tipe data. Boolean. Tipe boolean VBA membutuhkan dua byte memori dan dapat memiliki satu dari dua nilai: BENAR atau PALSU. Jika Anda menampilkan type Boolean di layar, VBA akan secara otomatis mengubahnya menjadi string yang berisi kata tersebut BENAR, atau PALSU. Nilai Boolean diperoleh sebagai

hasil operasi perbandingan.

VBA menggunakan tipe Tanggal untuk menyimpan tanggal dan waktu. Tidak perlu khawatir tentang bagaimana VBA menyimpan data tipe. Tanggal, - Anda cukup menampilkan, menyimpan, atau memanipulasi tanggal; VBA secara otomatis mengelola semua detail konversi nomor seri menjadi tahun, bulan, hari, dan waktu. tipe VBA Tanggal adalah tipe tanggal berturut-turut(serial tanggal). Tanggal berurutan menyimpan tanggal sebagai jumlah hari dari tanggal mulai yang diberikan. Tanggal dasar untuk tipe VBA Tanggal adalah 30 Desember 1899. VBA menggunakan angka negatif untuk mewakili tanggal sebelum 12/30/1899 dan angka positif untuk tanggal setelah 12/30/1899. Angka 0 melambangkan tanggal 30/12/1899 itu sendiri. Dalam skema ini, 1 Januari 1900 ditulis sebagai 2 (1/1/1990 adalah 2 hari setelah 12/30/1899), tetapi -2 adalah tanggal 28/12/1899 (dua hari sebelum 12/30/1899) . Untuk memverifikasi ini, tulis prosedur sederhana.

Latihan 1. Tulis prosedur yang menampilkan pesan tanggal.

Untuk ini:

Menulis prosedur (Listing 3):

Daftar 3 Prosedurtes tanggal

1 Sub TesTanggal()

2 Dim d Sebagai Tanggal 3

Sebagai hasil dari prosedur ini, tanggal dasar akan ditampilkan di layar (Gbr. 15).

Beras. 15 Dalam nilai tanggal berurutan, bagian bilangan bulat (digit di sebelah kiri titik desimal) adalah jumlah hari dari tanggal dasar. Tanggal seri VBA dapat memiliki angka di sebelah kanan titik desimal; angka-angka ini menunjukkan waktu hari sebagai bagian dari hari itu. Satu jam adalah 1/24 hari (sekitar 0,0416. Demikian pula, satu menit adalah 1/1440 hari, dan satu detik adalah 1/86400 hari. Anda dapat mengurangi satu tanggal dari yang lain, menambah tanggal, atau kurangi angka untuk mengubahnya. Tanggal, VBA "tahu" bahwa tujuan penghitungan adalah untuk mendapatkan selisih hari antara kedua tanggal tersebut. Demikian pula, jika Anda perlu menentukan tanggal 60 hari setelah tanggal tertentu, cukup tambahkan 60 pada tanggal tersebut.

VBA memiliki beberapa prosedur bawaan (dijelaskan di bagian ini) untuk mengekstraksi tahun, bulan, hari, jam, menit, dan detik secara terpisah dari jenis variabel Tanggal.

Setiap data teks yang disimpan dalam program VBA dipanggil baris(string). String di VBA disimpan menggunakan tipe data Rangkaian. String dinamakan demikian karena data teks biasanya diperlakukan sebagai rangkaian karakter. Baris mungkin berisi simbol teks jenis apa pun: huruf alfabet, angka, tanda baca, atau berbagai simbol. Ada dua kategori string: string dengan panjang variabel yang ukurannya bertambah atau menyusut, dan string dengan panjang tetap yang ukurannya selalu sama. Semua string di VBA adalah string dengan panjang variabel, kecuali jika Anda menentukan string dengan panjang tetap. Sebagian besar data masukan pengguna (dalam kotak dialog, sel lembar kerja) adalah data string. Selain itu, karena Anda hanya dapat menampilkan teks di layar, semua tipe data lainnya harus diubah menjadi data string sebelum Anda dapat menampilkannya. Banyak prosedur VBA bawaan (seperti kotak pesan) menggunakan data string di semua atau sebagian argumennya. VBA menyediakan beberapa operator untuk rangkaian(menggabungkan), yaitu untuk bergabung bersama dan membandingkan string. VBA juga memiliki beberapa rutinitas bawaan untuk membantu mengekstraksi substring dari string yang lebih panjang, menemukan karakter atau kata dalam string, mengubah huruf kapital dalam string, dan sebagainya. Bagian ini menjelaskan operator dan prosedur string VBA untuk memanipulasi string VBA.

Tipe data Varian adalah tipe data khusus yang dapat menyimpan salah satu tipe yang ditunjukkan pada Tabel. 9, kecuali tipe Obyek. VBA menggunakan tipe Varian untuk semua variabel, kecuali jika Anda secara eksplisit mendeklarasikan tipe variabel, seperti yang dijelaskan nanti di bagian ini. Ketik data Varian mengambil karakteristik dari jenis tertentu yang saat ini mereka simpan. Misalnya, jika tipe datanya Varian berisi data string, Varian mengambil karakteristik tipe String. Jika tipe datanya Varian mengandung angka, Varian mengambil karakteristik dari beberapa tipe numerik, biasanya - Dobel, meskipun jenis Varian juga dapat memiliki karakteristik tipe Bilangan bulat, Panjang, Lajang atau Mata uang. Meskipun jenis Varian nyaman dan menghemat beberapa pekerjaan saat menulis prosedur, mereka membutuhkan lebih banyak memori daripada tipe data lainnya, dengan pengecualian string besar. Selain itu, operasi matematika dan operasi perbandingan pada data bertipe Varian lebih lambat daripada operasi serupa pada data jenis lain. Secara umum, Anda harus menghindari penggunaan variabel Varian: jika Anda mengandalkan variabel seperti Varian, Anda mungkin mengembangkan kebiasaan pemrograman yang ceroboh dan kesulitan menemukan dan memperbaiki bug di program Anda.

Variabel

Variabel(variabel) adalah nama yang diberikan programmer ke area tersebut

memori komputer yang digunakan untuk menyimpan beberapa jenis data. Variabel VBA dapat menyimpan salah satu tipe data yang tercantum dalam Tabel 1. 9.

Pengenal(pengidentifikasi) adalah nama yang Anda berikan untuk elemen dalam prosedur dan modul yang Anda buat, seperti variabel. Pengidentifikasi istilah didasarkan pada fakta bahwa nama yang Anda buat mengidentifikasi lokasi tertentu di memori (dalam kasus nama variabel), kelompok instruksi (dalam kasus nama makro atau prosedur), atau elemen program lainnya.

Nama variabel tidak "peka huruf besar-kecil"(bukan kasus- peka), yaitu menulis nama variabel dalam huruf besar atau huruf kapital tidak masalah.

Cara termudah untuk membuat variabel adalah dengan menggunakannya dalam pernyataan VBA. VBA membuat variabel dan mencadangkan memori untuk lokasi memori variabel saat pertama kali variabel tersebut muncul dalam pernyataan (biasanya pernyataan yang menyimpan nilai data dalam variabel).

Menyimpan nilai data dalam variabel disebut penugasan variabel(menugaskan itu variabel atau membuat sebuah penugasan). Penugasan dilakukan dengan menggunakan operator penugasan yang diwakili oleh tanda sama dengan (=). Baris berikut adalah contoh pemberian nilai ke variabel:

Operator ini menyimpan nilai numerik 25 di lokasi memori yang ditentukan oleh nama variabel MyVar.

Membuat variabel dengan menggunakannya dalam pernyataan disebut deklarasi variabel implisit(implisit variabel pernyataan). Dengan menggunakan variabel dalam pernyataan, Anda secara implisit memberi tahu (mendeklarasikan) ke VBA bahwa Anda ingin membuat variabel itu. Semua variabel yang dibuat VBA dengan deklarasi variabel implisit memiliki tipe data Varian. Deklarasi variabel implisit juga dikenal sebagai deklarasi variabel "dengan cepat"(pada- itu- terbang).

Deklarasi variabel secara implisit nyaman, tetapi memiliki potensi masalah. Misalnya, ketika Anda memiliki variabel bernama MyVar dan kemudian membuat kesalahan nama dengan mengetik MVar. Bergantung pada di mana nama variabel yang salah muncul dalam kode Anda, VBA mungkin memunculkan kesalahan run-time atau hanya membuat variabel baru. Jika VBA membuat variabel baru, Anda mungkin mengalami masalah yang sangat sulit dideteksi.

Untuk alasan ini dan lainnya, VBA memberi Anda kemampuan untuk melakukannya eksplisit(eksplisit) deklarasi variabel.

Untuk mendeklarasikan variabel secara eksplisit, gunakan pernyataan VBA Redup dengan sintaks berikut:

Redup nama1 [, nama2 ]

namaN adalah pengidentifikasi variabel yang valid. Semua variabel yang Anda buat dengan bentuk kata kunci ini Redup, adalah variabel

jenis Varian.

Variabel hanya dapat dideklarasikan sekali dalam satu prosedur atau modul. Karena pernyataan Dim muncul sebelum pernyataan apa pun yang benar-benar menggunakan variabel, Anda dapat menempatkannya di mana saja di dalam prosedur. Dalam praktik pemrograman, merupakan aturan yang baik untuk mengumpulkan semua deklarasi variabel eksplisit di satu tempat di awal prosedur.

Tugas 2. Modifikasi Prosedur halo excel dari bagian sebelumnya, menggunakan definisi variabel eksplisit.

Untuk ini:

mengubah prosedur halo excel (Daftar 4):

Daftar 4 Prosedurhalo excel

1 Sub HaloExcel()

2 Dim HelloMsg " variabel untuk MsgBox 3

Operator Redup (pada baris 2) dari Listing 4 mendeklarasikan sebuah variabel HelloMsg dan mencadangkan area memori untuknya (dalam subrutin ini HelloMsg adalah variabel tipe Varian). Baris 2 menyertakan komentar tambahan yang menunjukkan tujuan dari variabel ini. Baris 4 adalah penugasan ke variabel HelloMsg baris "Halo,unggul!" . Berikutnya (pada baris 5) variabel HelloMsg digunakan sebagai salah satu argumen pada prosedur MsgBox. Fungsi MsgBox menampilkan kotak pesan yang sama seperti sebelumnya. Meskipun MsgBox sekarang menerima argumen pertamanya dari sebuah variabel, variabel ini berisi informasi string yang sama yang sebelumnya (dalam daftar bagian sebelumnya) ditulis langsung ke pernyataan MsgBox.

Semua variabel di VBA, apakah dideklarasikan secara implisit atau eksplisit, bertipe Variant kecuali jika Anda menentukan tipe variabel dalam pernyataan yang mendeklarasikannya. Untuk pengumuman diketik variabel dan jenisnya menggunakan operator Redup tambahkan kata kunci As setelah variabel, lalu masukkan nama tipe data untuk variabel tersebut. Berikut adalah sintaks umum untuk menggunakan operator Redup saat mendeklarasikan variabel yang diketik:

Redup varnamel [, namavarian2 ]

namawarnaN mewakili nama variabel VBA yang valid, a tipeN - salah satu nama tipe data VBA.

Setelah variabel bertipe dideklarasikan, apakah variabel tersebut dideklarasikan secara eksplisit atau implisit, dan bagaimana tipenya ditentukan, variabel tersebut mempertahankan tipe yang sama selama itu ada. Anda tidak dapat mendeklarasikan ulang variabel atau mendefinisikan ulang tipenya.

Dengan deklarasi implisit, Anda juga dapat menentukan tipe variabel dengan menambahkan

karakter khusus yang disebut jenis simbol definisi(jenis- definisi karakter) ke akhir nama variabel. Di meja. Tabel 10 mencantumkan simbol definisi tipe VBA dan tipe yang diwakilinya. Tabel 10– Ketikkan simbol definisi

Jenis

Simbol Definisi

Jenis

Simbol definisi

Bilangan bulatPanjang

Mata uangDobel

Jenis karakter definisi hanya dapat muncul di akhir nama variabel. Meskipun Anda harus mengetahui apa itu simbol definisi tipe dan bagaimana penggunaannya, Anda jarang perlu menggunakannya - menggunakan pernyataan Dim dengan kata kunci As jauh lebih mudah dan jelas. Sebagian besar pemrogram VBA tidak menggunakan simbol definisi tipe.

Tugas 3. Modifikasi Prosedur halo excel dari Tugas 3, menggunakan definisi variabel yang diketik.

Untuk ini:

mengubah prosedur halo excel (Daftar 5):

Daftar 5 Prosedurhalo excel

1 Sub HaloExcel()

2 Redupkan HelloMsg Sebagai String 3

    HelloMsg = "Halo Excel!"

    Judul$ = "Program pertama saya"

    MsgBox HelloMsg, Judul$

Versi prosedur ini halo excel bekerja dengan cara yang hampir sama dengan yang sebelumnya. Baris 1 berisi deklarasi prosedur. Pernyataan baris 2 Redup mendeklarasikan variabel secara eksplisit HelloMsg. Sejak operator Redup termasuk kata kunci Sebagai dan ketik nama Rangkaian, variabel HelloMsg memiliki tipe Rangkaian. Baris 4 menugaskan teks pesan ke variabel string HelloMsg. Baris 5 secara implisit mendeklarasikan sebuah variabel Judul$ dan pada saat yang sama menetapkan teks judul kotak pesan ke variabel. Karena nama variabel Judul$ memiliki karakter definisi tipe untuk string di bagian akhir, variabel ini juga bertipe String. Terakhir, baris 6 menggunakan pernyataan tersebut MsgBox untuk menampilkan kotak pesan; dalam pernyataan ini baik teks pesan maupun bilah judul jendela adalah variabel: HelloMsg Dan Judul$, masing-masing.

Setelah menambahkan karakter definisi tipe ke variabel, Anda harus menyertakan karakter definisi tipe setiap kali Anda menggunakan nama variabel.

Apakah variabel tipe dideklarasikan atau tidak Rangkaian menggunakan operator Redup atau dengan menambahkan karakter definisi tipe $, variabel string yang Anda buat adalah string dengan panjang variabel secara default.

Variabel panjang variabel string berubah panjang tergantung pada panjang string yang disimpan oleh variabel. Terkadang Anda mungkin perlu menggunakan garis panjang tetap(tetap- panjang). String dengan panjang tetap selalu memiliki panjang yang sama. Baris berikut menunjukkan sintaks umum untuk membuat string dengan panjang tetap:

Redup nama Sebagai Tali * N

nama adalah setiap nama variabel yang valid, a N adalah angka dari 1 hingga 65400 karakter

Cakupan: Aksesibilitas Variabel

Ketentuan cakupan(cakupan) mengacu pada ruang lingkup prosedur atau modul VBA tempat variabel, prosedur, atau pengenal lain yang diberikan tersedia. Bagian ini menjelaskan dua tingkat dasar ruang lingkup: prosedural dan modular. Variabel, prosedur, dan pengidentifikasi yang hanya tersedia dalam prosedur memiliki cakupan tingkat prosedural, sedangkan yang tersedia untuk semua prosedur dalam modul memiliki cakupan tingkat modul.

Variabel yang dideklarasikan dalam prosedur hanya dapat diakses oleh prosedur itu. Misalnya variabel HelloMsg dari baris 2 Daftar 5 hanya tersedia dalam prosedur halo excel; tidak ada prosedur lain yang memiliki akses ke variabel ini.

Oleh karena itu, kami mengatakan bahwa variabel HelloMsg Memiliki ruang lingkup prosedural(prosedur- tingkat cakupan). Bahkan, variabel HelloMsg hanya benar-benar ada pada saat VBA benar-benar menjalankan prosedur halo excel.

Tugas 4. Buat dua prosedur yang ruang lingkupnya adalah variabel tingkat prosedural.

Untuk ini:

Masukkan dua prosedur lengkap (Listing 6):

Daftar 6 Prosedurhalo excel

1 Sub HaloExcel()

2 Redupkan HelloMsg Sebagai String 3

    HelloMsg = "Halo Excel!"

    MsgBox HelloMsg, "Program pertama saya"

8 Sub HelloDave()

9 Redupkan HelloMsg Sebagai String 10

    HelloMsg = "Halo Excel!"

    MsgBox HelloMsg, "Kotak pesan lain"

Baris 1-6 berisi prosedur yang sama halo excel dari Listing 4, yang berfungsi persis sama. Prosedur telah ditambahkan ke modul HaloDave, yang dimulai pada baris 8 Listing 6. Prosedur HaloDave bekerja sama dengan prosedur halo excel, itu hanya menampilkan pesan teks dan judul yang berbeda di kotak dialognya. Pada baris 2 dan 9, kedua prosedur menggunakan pernyataan Redup untuk mendeklarasikan variabel bernama lokal HelloMsg.

Terkadang beberapa prosedur perlu memiliki akses ke variabel yang sama. Biasanya lebih efisien untuk menghitung nilai sekali, menyimpannya dalam variabel, dan kemudian menggunakan variabel tersebut dalam beberapa prosedur daripada menghitung nilai yang sama berulang kali.

VBA memungkinkan Anda mendeklarasikan variabel yang tersedia untuk beberapa prosedur. Ketika sebuah variabel tersedia untuk semua prosedur dalam sebuah modul, variabel tersebut dikatakan memiliki ruang lingkup. tingkat modular(modul tingkat). VBA membatasi ruang lingkup variabel tingkat modul ke modul di mana variabel tersebut dideklarasikan (VBA menyediakan cara untuk memperluas ruang lingkup variabel lebih jauh; metode ini dijelaskan nanti).

Untuk membuat variabel tersedia untuk semua prosedur dalam modul tertentu, masukkan pernyataan Redup untuk itu di awal modul, sebelum deklarasi prosedur apa pun.

Latihan 1

Buat dua prosedur dan satu deklarasi variabel tingkat modul (pindah ke baris 1 pernyataan Redup dengan variabel HelloMsg menghapus baris 2 dan 9 dari daftar 6).

Nama variabel harus unik dalam ruang lingkupnya. Namun, dimungkinkan untuk memiliki variabel dengan nama yang sama berbeda tingkat ruang lingkup. Ketika variabel memiliki nama yang sama tetapi cakupannya berbeda, VBA paling sering menggunakan variabel tersebut lokal(lokal) ruang lingkup.

Membutuhkan Deklarasi Variabel Eksplisit

Meskipun deklarasi variabel implisit (mendeklarasikan variabel hanya dengan menggunakannya) nyaman, ada beberapa masalah dengannya. Saat variabel dideklarasikan secara implisit, ada risiko secara tidak sengaja membuat variabel baru saat Anda benar-benar perlu menggunakan variabel yang sudah ada, atau menggunakan variabel yang sudah ada saat pengguna bermaksud membuat yang baru. Kedua situasi ini menyebabkan bug pada kode yang sangat sulit dilacak.

Untuk mempermudah mendeteksi kesalahan yang terkait dengan deklarasi implisit variabel kapan saja, VBA menyediakan perintah PilihanEksplisit. Menggunakan PilihanEksplisit VBA membutuhkan semua variabel untuk dideklarasikan (menggunakan Redup) sebelum menggunakannya dalam modul.

Untuk mengatur mode di mana VBA memerlukan deklarasi eksplisit untuk semua variabel dalam modul, tambahkan perintah PilihanEksplisit ke area deklarasi modul, yaitu, di awal modul, sebelum deklarasi variabel atau prosedur apa pun. Perintah seperti PilihanEksplisit, disebut arahan kompiler(penyusun arahan).

Tim PilihanEksplisit hanya mempengaruhi modul yang muncul. Jika proyek yang berisi modul ini juga berisi modul lain, modul tersebut tidak terpengaruh oleh perintah PilihanEksplisit. Anda harus menyertakan perintah Option Explicit di setiap modul yang memerlukan deklarasi variabel eksplisit.

Karena inklusi PilihanEksplisit untuk semua modul sangat berguna, Editor VB menyediakan cara untuk secara otomatis menyertakan perintah ini di setiap modul baru saat dibuat. Untuk Editor VB untuk menambahkan perintah PilihanEksplisit di setiap modul baru, ikuti langkah-langkah berikut:

y pilih perintah Peralatan/ Pilihan (Layanan/Parameter); Editor VB menampilkan kotak dialog Pilihan;

dan klik pada tab Editor (Editor) untuk menampilkan opsi pengeditan, jika diperlukan;

y pilih kotak centang Memerlukan variabel Pernyataan (Deklarasi eksplisit variabel);

kamu pilih OKE. Editor VB menutup kotak dialog Pilihan.

Latihan 2

Setel perintah untuk mengaktifkan otomatis Pilihan Eksplisit ke setiap modul baru saat dibuat.

Konstanta

Konstan(konstan) adalah nilai dalam program VBA yang tidak berubah. Contoh prosedur yang sudah diberikan di atas menggunakan konstanta tipe string "Halo,unggul!" Dan "Program pertamaku". Konstanta seperti ini disebut konstanta literal(harfiah konstanta) karena nilai literal ditulis langsung ke kode.

Anda juga dapat menulis konstanta dan tanggal numerik literal dalam kode VBA; contoh konstanta literal numerik termasuk angka 25 , 3.14 . Contoh konstanta tanggal literal termasuk tanggal #12/31/96# atau #28 Oktober 1997#(Anda akan mempelajari lebih lanjut tentang menulis konstanta tanggal nanti di bagian ini).

VBA memungkinkan Anda untuk membuat konstanta bernama(bernama konstanta). Konstanta bernama, seperti variabel, memiliki nama yang diberikan padanya; nama ini mewakili nilai abadi tertentu. Namun, tidak seperti variabel, nilai konstanta bernama tidak pernah berubah. Baris berikut menunjukkan sintaks umum untuk mendeklarasikan konstanta bernama:

Konst nama = nilai [operator nama2… ] _

[, pathez =nilai3 [operator nama4 ] … ]

namaN mewakili pengidentifikasi yang valid, nilaiN – nilai data apapun: numerik, string atau tanggal, a operator adalah operasi aritmatika atau perbandingan antara dua nama konstanta yang dijelaskan sebelumnya. Baris berikutnya tampilkan beberapa deklarasi konstanta bernama: Const Pi = 3.14, text = "Hello Excel!"

Konst Pi2 = 2*Pi

Lingkup konstanta

Seperti halnya variabel, Anda dapat mendeklarasikan konstanta bernama dalam prosedur atau di area deklarasi di awal modul. Konstanta yang dideklarasikan dalam prosedur memiliki cakupan tingkat prosedural, sedangkan konstanta yang dideklarasikan dalam cakupan deklarasi modul memiliki cakupan tingkat modul. Konstanta bernama mengikuti aturan ruang lingkup yang sama dengan variabel.

Menulis konstanta literal

Saat menulis konstanta string literal dalam kode VBA, ikuti aturan berikut:

ь konstanta string harus diapit dengan tanda kutip ganda (");

b adalah konstanta string kosong (disebut string nolbatal rangkaian atau kosong rangkaian) dilambangkan dengan dua tanda kutip ganda tanpa ada apa pun di antara keduanya ("");

Konstanta string b semuanya harus berada di baris yang sama.

Saat menulis konstanta numerik literal dalam kode VBA, ikuti aturan berikut:

ь konstanta numerik hanya boleh terdiri dari karakter numerik dari 0 hingga 9;

ь konstanta numerik dapat dimulai dengan tanda (-) dan dapat berisi titik desimal;

b Anda dapat menggunakan notasi eksponensial untuk konstanta numerik.

VBA mengenali konstanta tanggal dalam salah satu dari beberapa format yang berbeda; Anda harus menempatkan semua konstanta tanggal di antara tanda pagar (#). Baris berikut menunjukkan beberapa format konstanta tanggal yang dikenali VBA: #2-5-97 21:17:34# #February 5, 1997 9:17:34pm# #Mag-31-97# #15 April 1997#

Apa pun format penulisan konstanta Tanggal literal, VBA akan memformat ulang konstanta tersebut (ketika titik penyisipan dihapus dari baris setelah konstanta ditulis) untuk mencocokkan salah satu dari dua format berikut, bergantung pada apakah konstanta Tanggal berisi informasi tentang waktu: #2/5/1997 9:17:34 PM# #2/5/1997# Hanya ada dua konstanta Boolean yang valid: Benar dan Salah.

Mengatur jenis konstanta

Saat Anda mendeklarasikan konstanta bernama atau menggunakan konstanta literal, VBA "berpikir" bahwa nilai yang diwakili oleh konstanta tersebut memilikinya

tipe data yang paling cocok dengan ekspresi yang ditetapkan ke konstanta.

Di VBA, Anda dapat mengatur jenis konstanta. Sintaks umum untuk mendeklarasikan konstanta bertipe adalah sebagai berikut:

Konst nama Sebagai jenis = nilai[, nama Sebagai jenis = nilai]

nama adalah nama konstanta yang valid, jenis adalah nama salah satu tipe data VBA, dan nilai adalah nilai yang Anda tetapkan ke konstanta.

Baris berikut mengilustrasikan deklarasi konstanta yang benar dengan tipe tertentu:

Const Pi As Double = 3.14

Internkonstanta

VBA menyediakan beberapa konstanta internal(hakiki konstanta), disebut juga konstanta yang telah ditentukan sebelumnya(ditentukan sebelumnya konstanta). Konstanta internal adalah konstanta bernama yang telah ditentukan oleh pengembang VBA. Konstanta internal yang ditentukan oleh VBA semuanya dimulai dengan huruf vb untuk menunjukkan bahwa mereka ditentukan oleh bahasa Visual Basic for Applications (atau Visual Basic). Misalnya konstanta vbOKOnly, vbOKCancel didefinisikan oleh VBA. Konstanta internal Excel 2002 dimulai dengan huruf xl untuk memperjelas bahwa mereka ditentukan oleh Excel. Berkat konstanta internal, lebih mudah menggunakan beberapa prosedur VBA bawaan, seperti pernyataan MsgBox, yang sudah Anda ketahui, dan operatornya Kotak Masukan, yang dibahas nanti di bagian ini.

Tampilkan kotak pesan. Mendapatkan data dari pengguna

Menerima data dari pengguna, menyimpannya dalam variabel, dan menampilkan hasil tindakan yang dilakukan padanya adalah elemen dasar yang diperlukan untuk menulis prosedur interaktif. Interaktif(interaktif) Prosedur adalah prosedur yang berkomunikasi dengan pengguna, yaitu prosedur berinteraksi dengan pengguna dengan menampilkan pesan dan menerima masukan.

Fungsi MsgBox menampilkan kotak pesan memiliki sintaks berikut:

Kotak Pesan(Mengingatkan [, Tombol ] [, Judul ] [, File Bantuan , Konteks ])

argumen Mengingatkan MsgBox menampilkan string ini di kotak dialog; harus selalu memberikan argumentasi Mengingatkan, karena ini argumen yang dibutuhkan(diperlukan argumen). Argumen Tombol (argumen opsional), adalah ekspresi numerik yang menentukan tombol dan pesan yang akan ditampilkan di kotak dialog. Argumen Judul mewakili nilai string apa pun (literal, konstanta, atau variabel). MsgBoxJudul, VBA ditampilkan di bilah judul kotak dialog MsgBox kata " Microsoftunggul" . Argumen File Bantuan - berkas bantuan Konteks - bagian dalam file bantuan. Teks pesan dapat dilampirkan dalam tanda kurung, tetapi tanda kurung bersifat opsional saat fungsi MsgBox

digunakan sebagai operator.

Masukan pengguna disebut memasukan data(memasukkan). Untuk mendapatkan input dari pengguna prosedur, gunakan fungsi Kotak Masukan. Fungsi(fungsi) adalah tipe khusus dari prosedur VBA yang mengembalikan nilai. Fungsi Kotak Masukan menampilkan kotak dialog berisi teks yang meminta pengguna untuk memasukkan beberapa nilai, dan kotak teks untuk memasukkan nilai tersebut. Kotak dialog ditampilkan Kotak Masukan, berisi juga tombol perintah OKE Dan Membatalkan.

Fungsi Kotak Masukan memiliki sintaks berikut:

stringvar=KotakMasukan( Mengingatkan[, Judul] [, Bawaan] [, XPos] [, YPos] _

[, File Bantuan, Konteks])

Di Sini stringvar mewakili variabel apa pun yang dapat menyimpan string (atau variabel tipe Rangkaian, atau - Varian). Argumen Mengingatkan mewakili nilai string apa pun (literal, konstanta, atau variabel). Kotak Masukan menampilkan string ini sebagai prompt di kotak dialog; harus selalu memberikan argumentasi Mengingatkan, karena ini argumen yang dibutuhkan; semua yang lain adalah opsional. Argumen Judul adalah argumen kedua untuk Kotak Masukan. Judul mewakili nilai string apa pun (literal, konstanta, atau variabel). Kotak Masukan menampilkan teks baris ini di bilah judul kotak dialog. Jika Anda menghilangkan argumen Judul, VBA ditampilkan di bilah judul kotak dialog Kotak Masukan kata " Microsoftunggul" . Argumen Bawaan – ekspresi string ditampilkan di kolom input sebagai default jika pengguna tidak memasukkan string lain; jika argumen ini dihilangkan, kolom input akan dikosongkan. Argumen XPos Dan YPos dapat berupa ekspresi numerik apa pun. Argumen ini memungkinkan Anda untuk menentukan di mana kotak input muncul di jendela aktif dan merupakan koordinat sudut kiri atas kotak dialog: XPos – jarak horizontal dari tepi kiri jendela; YPos adalah jarak vertikal dari tepi atas jendela. Kedua jarak diukur dalam twips ( twips); satu twip sama dengan 1/20 titik (titik adalah ukuran font cetak). Karena satu titik berukuran 1/72 inci, satu putaran kira-kira 0,0007 inci. Dua argumen opsional terakhir untuk fungsi tersebut Kotak Masukan- Ini File Bantuan Dan Konteks. Mereka memiliki tujuan yang sama dengan argumen fungsi serupa. MsgBox.

Menggunakan Argumen Fungsi Bernama

Seperti yang mungkin Anda perhatikan, mudah untuk secara tidak sengaja menghilangkan tanda koma atau mengatur ulang nilai argumen dalam fungsi yang memiliki argumen opsional atau banyak argumen, terlepas dari bantuan properti Mobil Cepat (Informasi singkat) Editor VB. Menghilangkan atau mengatur ulang argumen dalam daftar argumen fungsi dapat menyebabkan kesalahan ketidakcocokan tipe. Kesalahan (lebih buruk lagi) mungkin tidak terdeteksi. Untuk mencegah kesalahan pemrograman dan mempermudah penggunaan fungsi yang memiliki argumen opsional, VBA menyediakan alternatif untuk mencantumkan nilai dalam daftar argumen dalam urutan tertentu. Anda juga dapat mentransfer

nilai argumen fungsi menggunakan argumen bernama(bernama argumen) fungsi. Baris berikut menunjukkan dua pernyataan MsgBox, yang memiliki hasil yang sama; pernyataan pertama menggunakan metode pencacahan argumen normal, dan pernyataan kedua menggunakan metode argumen bernama:

MsgBox AnyMsg, AnyTitle

Pesan MsgBox:=AnyMsg, Judul:=AnyTitle

Karakter yang menetapkan nilai ke argumen bernama (:=) tidak persis sama dengan operator penugasan biasa (=). Jika Anda menghilangkan titik dua (:) saat menetapkan nilai ke argumen bernama, VBA tidak akan mendeteksi kesalahan sintaksis, tetapi mungkin tidak menafsirkan pernyataan dengan benar. Saat VBA mengeksekusi pernyataan ini, VBA menampilkan salah satu dari beberapa kemungkinan error run-time, sering kali berupa error ketidakcocokan tipe.

Anda tidak dapat menggabungkan argumen bernama dengan daftar argumen biasa dalam pemanggilan fungsi yang sama. Anda harus menggunakan argumen bernama atau daftar argumen reguler untuk setiap pemanggilan fungsi individual.

Tugas 5. Tulis prosedur yang menghitung luas lingkaran, tetapi menerima jari-jari lingkaran dari pengguna prosedur.

Untuk ini:

Masukkan prosedur (Listing 7):

Daftar 7 – Menerima input data menggunakan operatorKotak Masukan

    Const Pi As Single = 3,14" perkiraan nilai pi

    Dim CircleArea As Single " menyimpan area lingkaran 3 yang dihitung

4 Sub Daftar3_07()

    Const BoxTitle = "Luas lingkaran"!}

    Radius Redup Sebagai Tunggal, Temp Sebagai String 7

    Temp = InputBox("Masukkan Radius" & Chr(13) & "lingkaran", BoxTitle)

    Radius = CSng(Temp)

    Luas Lingkaran = Pi * Jari-jari * Jari-jari

    MsgBox CircleArea, vbInformation + vbOKCancel, BoxTitle

Baris 1 dan 2 dari Listing 7 menyatakan sebuah konstanta Pi dan variabel daerah lingkaran tingkat modular. Baris 4 berisi deklarasi prosedur aktual. Baris 5 mendeklarasikan konstanta level prosedural Judul Kotak; konstanta ini hanya memiliki akses lokal dalam prosedur Daftar3_07. Pada baris 8, pernyataan memanggil fungsi Kotak Masukan. Ini menampilkan argumen pertamanya sebagai teks dalam kotak dialog, meminta pengguna untuk memasukkan nilai dari beberapa jenis. Di operator ini Kotak Masukan menampilkan teks "Masukkan jari-jari lingkaran" (fungsi Chr(13) adalah simbol transisi ke garis baru) untuk memberi tahu pengguna tentang prosedur nilai apa yang harus mereka masukkan. Kotak Masukan menggunakan argumen kedua,

12 Akhir Sub

diwakili oleh konstanta Judul Kotak, sebagai judul kotak dialog. Saat mengeksekusi pernyataan Kotak Masukan kotak dialog ditampilkan (Gbr. 16)

Luas lingkaran

Masukkan jari-jari lingkaran

Beras. 16 Pengguna memasukkan nomor di kotak teks dan memilih tombol perintah OKE atau Membatalkan untuk menutup dialog seperti jendela Windows lainnya. Setiap kali Anda memanggil fungsi apa pun, Anda harus menggunakan nilai yang dikembalikan oleh fungsi tersebut. Nilai yang dikembalikan oleh suatu fungsi disebut hasil fungsi(fungsi hasil). Seperti yang ditunjukkan pada baris 8 dalam kasus fungsi Kotak Masukan, yang hasilnya ditugaskan ke variabel Suhu. Hasil fungsi Kotak Masukan selalu berupa string (itulah sebabnya variabel Suhu diumumkan sebagai Rangkaian). Sejak variabel Suhu secara eksplisit dinyatakan sebagai Rangkaian, nilai string harus dikonversi ke nilai numerik sebelum dapat digunakan dalam perhitungan matematis. Baris 9 dari Listing 7 melakukan hal itu, menggunakan fungsi VBA bawaan csng untuk mengonversi input pengguna ke sejumlah tipe Single.

Ekspresi diVisualDasar

Ekspresi(ekspresi) adalah nilai atau kelompok nilai yang menyatakan nilai tunggal. Setiap ekspresi dihitung sampai(atau menghasilkan) nilai yang berbeda. Ekspresi terdiri dari satu atau lebih bagian berikut: konstanta (literal atau bernama), variabel (dari tipe data apa pun), tanda operasi, larik, elemen larik, fungsi.

Semua ekspresi menghasilkan nilai tunggal dari tipe data tertentu. Ekspresi juga dapat menghasilkan salah satu nilai khusus Kosong(variabel tipe yang tidak diinisialisasi Varian atau hasil ekspresi yang berisi variabel tipe yang tidak diinisialisasi Varian) atau Batal(Batal mewakili ekspresi yang berisi data tidak valid). Saat Anda menggunakan karakter apa pun dalam ekspresi, elemen data (variabel atau konstanta) yang sedang ditindaklanjuti akan dipanggil operan(operan); sebagian besar operasi membutuhkan dua operan.

Kompatibilitas tipe data. Konversi data otomatis

Tidak semua tipe data kompatibel satu sama lain, dan Anda tidak dapat menggunakan tipe data yang tidak kompatibel dalam ekspresi yang sama. Misalnya, penambahan aritmatika string ke angka tidak masuk akal, karena ekspresi seperti itu tidak bermakna dan VBA tidak dapat mengevaluasinya.

Banyak tipe data yang kompatibel satu sama lain. Misalnya, Anda bisa

menggabungkan tipe data numerik yang berbeda dalam ekspresi yang sama; VBA secara otomatis melakukan konversi tipe yang diperlukan pada berbagai tipe numerik. VBA terkadang juga dapat mengonversi tipe data lain secara otomatis sehingga semua tipe dalam ekspresi kompatibel, meskipun hal ini tidak selalu memungkinkan. Sangat penting untuk mengontrol dan mengetahui jenis ekspresi, karena jika ekspresi berisi jenis yang tidak kompatibel, VBA melempar kesalahan run-time - kesalahan ketidakcocokan jenis(jenis- ketidakcocokan). Saat memproses ekspresi yang berisi tipe data berbeda, VBA pertama-tama "berusaha" untuk menyelesaikan perbedaan tipe apa pun dengan mengonversi nilai dalam ekspresi menjadi tipe data yang kompatibel. Jika konversi tipe gagal menyelesaikan perbedaan apa pun, kesalahan run-time ditampilkan dan prosedur berhenti dijalankan. Misalnya, dalam ekspresi 25 & "Ilmu Komputer", VBA selalu melakukan penggabungan string (menggabungkan dua string), apa pun jenis variabelnya; hasilnya adalah jenis Rangkaian; ungkapan ini tidak pernah menimbulkan kesalahan ketidakcocokan jenis.

VBA biasanya mengonversi semua tipe data numerik dalam ekspresi ke tipe presisi tertinggi, lalu memberikan tipe tersebut ke hasil ekspresi. Misalnya, jika ekspresi berisi nilai numerik dengan tipe Bilangan bulat Dan Lajang, hasil ekspresi adalah tipe Lajang– jenis presisi tertinggi dalam ungkapan ini. Jika Anda menetapkan hasil ekspresi numerik ke variabel dengan presisi kurang dari tipe sebenarnya dari hasil ekspresi, VBA membulatkan hasil ekspresi hingga presisi cocok dengan tipe yang diharapkan. Misalnya, jika Anda menetapkan ekspresi numerik yang menghasilkan angka seperti Dobel, jenis variabel Bilangan bulat, VBA membulatkan angka presisi ganda untuk mengetik Bilangan bulat.

Saat mengonversi angka menjadi string, VBA membuat string yang berisi semua digit angka tersebut, ditambah titik desimal (jika angka tersebut memiliki satu). Angka 3413.72 (tanda titik digunakan untuk menuliskan angka pada kode), misalnya diubah menjadi string “3413.72”. Jika angkanya sangat besar atau sangat kecil, VBA dapat membuat representasi string dari angka tersebut dalam notasi ilmiah; misalnya, angka 0,0000000004927 diubah menjadi string "4.927E-11".

VBA hanya dapat mengonversi string menjadi angka selama string berisi representasi karakter angka dalam format desimal atau eksponensial. String "988.6", "812", "-186.7", "1,3E10" mewakili angka dan VBA dapat mengubahnya menjadi angka. String "1.045", "$74.550", dan "Selamat pagi!" tidak dapat dikonversi ke angka.

Saat VBA mengonversi nilai tipe Boolean menjadi angka, artinya BENAR diubah menjadi 1, dan nilainya PALSU– ke 0. Saat VBA mengonversi angka menjadi tipe Boolean, nol diubah menjadi PALSU, dan nilai lainnya dikonversi menjadi BENAR. Saat VBA mengonversi nilai tipe Boolean ke string, VBA menggunakan string "True" untuk BENAR dan "Salah" untuk PALSU.

Kapan VBA mengonversi tipe data Tanggal menjadi angka, hasilnya adalah nilai numerik - sejumlah tipe Dobel, yang berisi jumlah hari sejak 30 Desember 1899 (angka negatif menunjukkan tanggal sebelum 30/12/1899). Bagian desimal dari angka (jika ada) menunjukkan waktu sebagai bagian dari

hari; 0 adalah tengah malam dan 0,5 adalah tengah hari. Di VBA, mengubah tipe data numerik menjadi tipe Tanggal hanyalah kebalikan dari konversi tipe Tanggal menjadi nomor.

Operator penugasan (=)

Operator ini digunakan untuk menetapkan hasil ekspresi ke variabel. Sintaks dari form operator penugasan adalah sebagai berikut:

nama = ekspresi

variabel nama - variabel apapun, a ekspresi - ekspresi apapun.

Saat mengeksekusi pernyataan penugasan, VBA terlebih dahulu mengevaluasi ekspresi di sebelah kanan pernyataan penugasan (=) dan kemudian menyimpan hasil ekspresi dalam variabel yang namanya berada di sebelah kiri pernyataan penugasan.

Gambar operator penugasan pada flowchart:

varname = ekspresi

Saat Anda menetapkan hasil ekspresi ke variabel dengan tipe data tertentu, hasil tersebut bisa berupa tipe data yang kompatibel dengan tipe variabel yang menerima nilai baru. Dalam banyak kasus, VBA dapat mengonversi tipe data dari hasil ekspresi menjadi tipe yang kompatibel dengan tipe variabel yang mengambil nilai baru jika hasil ekspresi dan variabel belum memiliki tipe yang kompatibel. Jenis variabel Varian tipe data apa pun dapat ditugaskan.

Operasi aritmatika

VBA dapat melakukan semua operasi aritmatika biasa (diimplementasikan melalui ekspresi aritmatika): penjumlahan, pengurangan, perkalian, dan pembagian, serta menaikkan angka ke pangkat tertentu, dan menyediakan operasi matematika khusus tambahan untuk pembagian bilangan bulat dan pembagian modulo (Tabel 11) .

Tabel 11- Tanda operator (notasi) yang digunakan dalam ekspresi aritmatika VBA (Ni adalah ekspresi numerik VBA yang valid)

Tanda

Sintaksis

Nama/Deskripsi

Tambahan. Menambahkan N1 ke N2

Pengurangan. Kurangi N2 dari N1

Perkalian. Kalikan N1 dengan N2

Divisi. Membagi N1 dengan N2.

Divisi bilangan bulat. Membagi N1 dengan N2, membuang setiap bagian pecahan sehingga hasilnya bilangan bulat.

Divisi modulo. Membagi N1 dengan N2, hanya mengembalikan sisa operasi pembagian.

Eksponensial. Menaikkan N1 pangkat N2.

Kedua operan harus berupa ekspresi numerik atau string yang dapat dikonversi oleh VBA menjadi angka.

Operasi perbandingan

Operasi perbandingan terkadang juga disebut operasi relasi(relasional operator). Paling sering, operasi perbandingan digunakan untuk menentukan kriteria untuk membuat keputusan atau untuk merumuskan deskripsi kondisi di mana sekelompok instruksi harus diulang (looping).

Hasil dari setiap operasi perbandingan adalah nilai tipe Boolean: BENAR atau PALSU. Operator perbandingan digunakan untuk membandingkan nilai literal, konstanta, atau variabel dari jenis yang serupa (Tabel 12).

Nama/Deskripsi

Persamaan. BENAR , Jikaelsama dengan E2, jika tidak -PALSU

Kurang dari. BENAR , Jikaelkurang dari E2, jika tidak -PALSU

Kurang dari atau sama.BENAR jika E1 kurang dari atau sama dengan

E2, jika tidak -PALSU

Lebih dari. BENAR , jika E1 lebih besar dari E2, jika tidak -PALSU

Lebih besar dari atau sama.BENAR jika E1 lebih besar dari atau sama dengan

E2, jika tidak -PALSU

Tidak sama.BENAR, jika E1 tidak sama dengan E2, jika tidak - PALSU

Obyek. BENAR jika El mengacu pada objek yang sama seperti E2, jika tidak -PALSU Kesamaan. Kedua operan harus bertipe

Tabel 12– Tanda (notasi) operasi perbandingan (E dalam tabel ini mewakili ekspresi VBA yang valid)

Operasi/Operator

Sintaksis

F

Sampel,

Rangkaian. BENAR, jika El cocok

Perbandingan string biner dan teks

VBA menyediakan dua cara berbeda untuk membandingkan karakter huruf besar-kecil. Metode pertama yang digunakan VBA untuk membandingkan string disebut biner (biner) atau perbandingan biner dan merupakan metode perbandingan default. Untuk memilih metode perbandingan string yang tersedia di VBA (biner atau teks), gunakan direktif PilihanMembandingkan:

Opsi Bandingkan [ Biner | Teks]

Dalam perbandingan teks, VBA "memperlakukan" huruf besar sama dengan huruf kecil.

Penggabungan string

VBA memberi Anda kemampuan untuk menggabungkan (merekatkan) string bersama untuk membentuk string yang lebih panjang. Menggabungkan satu string ke string lainnya disebut rangkaian(rangkaian) baris. Tanda & hanya dapat digunakan untuk penggabungan string. Sintaks umum untuk tanda & adalah:

Operan1 & Operan2 [& Operan3… ]

Operan1 Dan Operan2 – string atau ekspresi numerik apa pun yang valid. Jika satu atau kedua operan adalah ekspresi numerik, VBA mengonversi angka menjadi string sebelum melakukan operasi penggabungan. Tipe data dari hasil penggabungan string selalu bertipe Rangkaian.

Operator logis

Penggunaan pernyataan logis VBA yang paling umum adalah menggabungkan hasil ekspresi perbandingan individual untuk membuat kriteria keputusan yang kompleks dalam suatu prosedur, atau untuk membuat kondisi di mana sekelompok pernyataan harus diulang (Tabel 13).

Tabel 13– Operator Boolean (E dalam tabel ini mewakili setiap ekspresi yang valid dengan hasil Boolean, seperti operasi perbandingan)

Nama/Deskripsi Sintaks Operator

Dan El Dan E2 Konjungsi. BENAR jika E1 dan E2 memiliki nilai

BENAR , jika tidak -PALSU Atau El Atau E2 Pemisahan. BENAR jika satu ekspresi atau keduanya (E1 dan

E2) adalah samaBENAR ; jika tidak -PALSU Bukan Bukan El Penyangkalan. BENAR jika E1 penting PALSU; PALSU,

JikaelsamaBENAR

Pengecualian. BENAR jika E1 dan E2 berbeda

nilai; jika tidak -PALSU

Persamaan derajatnya. BENAR jika E1 memiliki yang sama

nilai sebagai E2; jika tidak -PALSU

implikasi. PALSU ketika E1 sama BENAR Dan

E2 adalahPALSU ; jika tidak -BENAR .

Prioritas Operasi Saat Mengevaluasi Ekspresi Kompleks

kompleks(gabungan) ekspresi(kompleks ekspresi) adalah setiap ekspresi yang terbentuk dari dua atau lebih ekspresi. Banyak ekspresi yang Anda tulis adalah ekspresi kompleks, terutama jika ekspresi tersebut mengontrol urutan eksekusi kode dalam prosedur atau mewakili berbagai rumus matematika (Tabel 14).

Tabel 14– Hierarki operator/operasi dari prioritas tertinggi hingga terendah

Operator/tanda tangani Komentar

eksponensial, prioritas utama

minus unary

Perkalian dan pembagian memiliki prioritas yang sama; mereka dievaluasi seperti yang muncul dalam ekspresi dari kiri ke kanan

Penjumlahan dan pengurangan memiliki prioritas yang sama; mereka dievaluasi seperti yang muncul dalam ekspresi dari kiri ke kanan

Penggabungan string apa pun dilakukan setelah operasi aritmatika apa pun dalam ekspresi dan sebelum operasi perbandingan atau perbandingan apa pun. operasi logis

<, <=, >, >=,

Suka, =,<>, Adalah

Semua operator pembanding memiliki prioritas yang sama dan dievaluasi dari kiri ke kanan dalam ekspresi. Gunakan tanda kurung untuk mengelompokkan operator pembanding dalam ekspresi

Menggunakan fungsiDasar visual

Anda telah menggunakan fungsi VBA bawaan: Kotak Masukan Dan MsgBox. Fungsi(fungsi) adalah rumus bawaan yang beroperasi pada ekspresi dan menghasilkan nilai. Suatu fungsi selalu mengembalikan nilai yang disisipkan VBA ke dalam program pada titik di mana nama fungsi muncul. Fungsi VBA dibagi menjadi beberapa kelompok berdasarkan jenis operasi atau perhitungan yang dilakukannya. Jangan bingung dengan istilah fungsi Dan prosedur. Biasanya, prosedur melakukan tugas tertentu (atau grup tugas) dengan cara yang sama seperti perintah menu tertentu di Excel, Word, atau aplikasi lain yang melakukan tugas tertentu. Suatu fungsi beroperasi pada satu atau lebih nilai dan mengembalikan beberapa nilai hasil (seperti rumus dalam sel lembar kerja Excel). Untuk menggunakan fungsi, cukup masukkan nama fungsi dalam pernyataan VBA, beserta argumen apa pun yang diperlukan fungsi tersebut, pada titik di pernyataan di mana Anda perlu menggunakan hasil fungsi. Menempatkan nama fungsi dalam pernyataan VBA untuk menjalankan fungsi disebut tantangan(panggilan) fungsi.

Fungsi VBA bawaan dibagi menjadi beberapa kategori berdasarkan tujuan umum fungsi (matematika, konversi data, tanggal dan waktu, string, dan manipulasi disk).

Fungsi matematika

VBA menyediakan seperangkat fungsi matematika standar (Tabel 15). Tabel 15– Fungsi matematika VBA (N berarti ekspresi numerik apa pun)

pengembalian/tindakan

Fungsi (ar-

gusi)

Mengembalikan nilai absolutN

abs(N)

Kosinus suatu sudutN, Di manaN

Cos(N)

Mengembalikan sinus suatu sudut;Nadalah sudut yang diukur dalam radian

Dosa(N)

Tan(N)

Mengembalikan tangen suatu sudut;N- sudut dalam radian

Atn(N)

Mengembalikan tangen busurNsebagai sudut dalam radian

Mengembalikan konstanta e, dipangkatkan N ( e adalah basis logaritma natural dan (kurang-lebih) sama dengan 2,718282)

Mengembalikan bagian bilangan bulat dari N. Perbaiki tidak membulatkan angka, tetapi membuang bagian pecahan apa pun. Jika N negatif, Fix mengembalikan bilangan bulat negatif terdekat lebih besar atau samaN

Catatan(N)

Mengembalikan bagian bilangan bulat dari N. Int tidak membulatkan angka, tetapi membuang bagian pecahan apa pun. Jika N negatif, Int mengembalikan bilangan bulat negatif terdekat kurang dari atau samaNMengembalikan logaritma naturalN

acak

argumen

adalah

pengembalian

opsional. Gunakan fungsi Rnd hanya setelahnya

inisialisasi generator nomor acak VBA oleh operator

Acak

Mengembalikan tanda angka: -1 jika N negatif; 1 jika N adalah

positif; 0 jikaNadalah 0

Mengembalikan akar kuadrat dari N. VBA menampilkan kesalahan

waktu pelaksanaan, jikaN- negatif

Fungsi konversi data

Visual Basic menyediakan beberapa fungsi untuk mengubah satu tipe data ke tipe data lainnya (Tabel 16). Gunakan fungsi ini untuk menyelesaikan error ketidakcocokan tipe dan menyediakan kontrol eksplisit atas tipe data dalam ekspresi.

Tabel 16– Fungsi konversi data (N adalah numerik apa saja, S adalah string apa saja, dan E adalah jenis ekspresi apa saja)

Fungsi(ar- Pengembalian/Aksigusi)

Mengembalikan nomor kode karakter yang sesuai dengan huruf pertama barisS. Huruf "A", misalnya, memiliki kode karakter 65

Fungsi (argumen)

pengembalian/tindakan

Mengembalikan string karakter tunggal yang sesuai dengan kode karakter N, yang harus berupa angka antara 0 dan 255, inklusif. Kode karakter 65, misalnya, mengembalikan huruf "A" (Chr(13) adalah karakter carriage return, Chr(10) adalah karakter pergeseran garis)

Mengembalikan string berisi nilai yang diwakili oleh ekspresi E, dalam format sesuai dengan instruksi yang terdapat dalam S

Mengembalikan string yang berisi representasi heksadesimal dari N

Oct(N) Mengembalikan string yang berisi representasi oktal dari N

Mengembalikan bilangan bulat bertipe Panjang A yang mewakili nilai warna primer gambar. N di setiap argumen harus berupa bilangan bulat dalam rentang 0 - 255, inklusif. Argumen (dari kiri ke kanan) adalah nilai untuk merah, hijau, dan biru.

Str(N) Mengembalikan string yang setara dengan ekspresi numerik N

Mengembalikan nilai numerik yang sesuai dengan angka yang diwakili oleh string S, yang hanya boleh berisi angka dan satu titik desimal, jika tidak, VBA tidak dapat mengubahnya menjadi angka. Jika VBA tidak dapat mengubah string menjadi S, maka fungsi Val mengembalikan 0

CBool(N) Mengembalikan persamaan Boolean dari ekspresi numerik N

byte(dari 0 hingga 255); E adalah ekspresi numerik atau string apa pun yang valid yang dapat dikonversi menjadi angka

Mengembalikan nilai numerik tipe Mata uang

Mengembalikan nilai tipe Tanggal. E dapat berupa ekspresi yang valid (string atau angka) yang mewakili tanggal dalam rentang 1/1/100 12/31/9999 , inklusif

Mengembalikan nilai numerik tipe Dobel, yang dapat dikonversi menjadi angka

Mengembalikan nilai numerik tipe Bilangan bulat; E adalah ekspresi numerik atau string apa pun yang valid yang dapat dikonversi menjadi angka

Mengembalikan nilai numerik tipe Panjang; E adalah ekspresi numerik atau string apa pun yang valid yang dapat dikonversi menjadi angka

Fungsi (argumen)

pengembalian/tindakan

Mengembalikan nilai numerik tipe Lajang; E adalah ekspresi numerik atau string apa pun yang valid yang dapat dikonversi menjadi angka

Mengembalikan nilai tipe Rangkaian; E - ekspresi numerik atau string apa pun yang valid

Mengembalikan nilai tipe Varian; E - ekspresi numerik atau string apa pun yang valid

Fungsi tanggal dan waktu

Fungsi tanggal dan waktu VBA biasanya digunakan untuk mendapatkan tanggal dan waktu saat ini, memecah nilai tanggal menjadi bagian-bagian komponennya, atau mengonversi string dan angka menjadi nilai bertipe Tanggal(Tabel 17).

Tabel 17– Fungsi tanggal dan waktu (N adalah ekspresi numerik yang valid, dan D adalah ekspresi yang valid seperti Tanggal(termasuk nilai seperti Tanggal, angka, atau string yang dapat diubah oleh VBA menjadi tanggal); semua argumen fungsi diperlukan kecuali dinyatakan lain)

pengembalian/tindakan

Fungsi (ar-

gusi)

Mengembalikan tanggal sistem. Anda juga dapat menggunakan fungsi ini sebagai prosedur untuk mengatur jam sistem komputer. Rincian lebih lanjut dapat ditemukan di bantuan sistemVBA

Mengembalikan waktu sistem komputer sebagai nilai tipe Tanggal. Anda juga dapat menggunakan fungsi ini sebagai prosedur untuk mengatur jam sistem. Rincian lebih lanjut dapat ditemukan dari sistem bantuan VBAMengembalikan tanggal dan waktu sistem

Tanggal Dan

Mengembalikan bilangan bulat yang merupakan bagian dari ekspresi tipe Tanggal,

inklusif

Mengembalikan bilangan bulat yang merupakan bagian dari ekspresi tipe Tanggal Dan

Hari Kerja(H) Jam(H)

inklusif

Mengembalikan bilangan bulat yang berisi hari dalam seminggu untuk ekspresi tipe

Tanggal. Hari dalam seminggu dikembalikan sebagai angka antara 1 dan 7,

inklusif; 1 adalah hari Minggu, 2 adalah hari Senin, dan seterusnya.

Mengembalikan bilangan bulat yang berisi jam sebagai bagian dari waktu,

angka antara 0 dan 23, inklusif. Jika ekspresi D tidak

mengandung nilai waktu, makaJammengembalikan 0

Fungsi (ar-gusi)

TanggalTambah(S, N, D)

DateSerial(N, N, N)

TimeSerial(N, N, N)

pengembalian/tindakan

Mengembalikan bilangan bulat yang berisi menit sebagai bagian dari waktu

jenis ekspresi Tanggal. Menit dikembalikan sebagai angka antara 0

dan 59, inklusif. Jika ekspresi D tidak mengandung nilai

waktuMenitmengembalikan 0

Mengembalikan bilangan bulat yang berisi detik sebagai bagian dari waktu

jenis ekspresi Tanggal. Detik dikembalikan sebagai angka antara

0 dan 59, inklusif. Jika ekspresi D tidak mengandung nilai

waktuKeduamengembalikan 0

Mengembalikan nilai [type Varian(Tanggal)], berisi tanggal ke

DateDiff(S, D1, Mengembalikan nilai [tipe Varian(Panjang)] jumlah sementara D2[,Nl [, N2 ]]) interval antara dua tanggal tertentu DatePart(S, D, [, Mengembalikan bagian yang ditentukan [type Varian(Bilangan bulat)] N1 [, N2]]) tanggal yang diberikan

yang interval waktu yang diberikan ditambahkan

Mengembalikan nilai tanggal berurutan untuk tanggal tertentu. Dari kiri ke kanan, argumen mewakili tahun, bulan, dan hari. Argumen tahun harus bilangan bulat antara 100 dan 9999, bulan antara 1 dan 12, hari antara 1 dan 31 (semua rentang inklusif)

Mengembalikan nilai waktu serial. Dari kiri ke kanan, argumen mewakili jam, menit, dan detik. Argumen jam harus bilangan bulat antara 0 dan 23, argumen menit dan detik keduanya harus berupa angka dari 0 hingga 59 Mengembalikan nilai tipe Tanggal, setara dengan tanggal yang diberikan oleh argumen E, yang harus berupa string, angka, atau konstanta yang mewakili tanggal

tengah malam sesuai dengan waktu sistem komputer Beberapa dari fungsi ini telah digunakan dalam contoh di buku ini, yang lainnya akan digunakan nanti.

Fungsi Tali

Fungsi string VBA sering digunakan untuk menemukan string yang diberikan di dalam string lain, untuk membandingkan satu string dengan yang lain, dan untuk menyalin bagian string yang dipilih (Tabel 18).

Mengembalikan nilai tipe Tanggal A berisi waktu yang ditentukan oleh argumen E, yang bisa berupa string, angka, atau konstanta yang mewakili waktu Mengembalikan angka yang mewakili jumlah detik dari

Tabel 18– Fungsi string (N adalah ekspresi numerik yang valid, dan S adalah ekspresi string yang valid)

getah)

Mengembalikan posisi S2 di S1. N1 adalah posisi awal untuk

mencari; N2 mendefinisikan jenis perbandingan. N1 dan N2 adalah opsional. Jika N2 dihilangkan, maka arus instalasiPilihan Membandingkan InStrRev(Sl, S2 Mengembalikan posisi di mana string S2 muncul di dalam S1

[, Nl[, N2]]) LCase(S)

Len(S) LTrim(S)

Ruang(N) StrKomp(Sl, S2, N)

dalam arah dari akhir (atau N1) ke awal string. N2 mendefinisikan jenis perbandingan. Jika N2 dihilangkan, maka pencarian menggunakan instalasi saat iniPilihan Membandingkan

Mengembalikan string (tipe Rangkaian) berisi salinan S dengan semua karakter huruf besar diubah menjadi karakter huruf kecil

Mengembalikan string; menyalin N karakter dari S, mulai dari kiri karakter ekstrimS

Mengembalikan jumlah karakter dalam S, termasuk awal dan akhir spasi

dari sisi kiri string (spasi depan) Mengembalikan string; menyalin N2 karakter dari S, mulai dari posisi karakter di S yang ditentukan oleh argumen N1. N2 adalah opsional; jika N2 dihilangkan, maka Mid mengembalikan semua karakter dalam sebuah stringSdari posisiN1 sampai akhir baris Mengembalikan nilai bertipe String; menyalin N karakter dari S,

mulai dari karakter paling kananS

Mengembalikan salinan string S setelah menghapus karakter spasi

dari sisi kanan string (karakter terminal)

Mengembalikan string spasi panjangNsimbol

Membandingkan S1 dengan S2 dan mengembalikan angka yang menunjukkan hasil perbandingan: -1 jika SI< S2; 0, если SI = S2; 1, если SI >S2. N bersifat opsional dan menunjukkan apakah perbandingan harus peka huruf besar-kecil. Jika N dihilangkan, string dibandingkan menggunakan pengaturan saat ini. PilihanMembandingkan

Mengembalikan string yang dikonversi menjadi bentuk baru tergantung pada kode numerik yang ditentukan oleh argumen N. VBA menyediakan konstanta internal untuk digunakan dengan fungsi StrConv; yang paling berguna adalah: vbProperCase(mengonversi string sehingga setiap huruf yang memulai kata menjadi kapital), vbLowerCase(mengubah string menjadi huruf kecil) dan vbUpperCase(mengubah string menjadi huruf besar)

Fungsi(ar- Pengembalian/Aksigetah)

String(N, S) Mengembalikan string dengan panjang N karakter, terdiri dari karakter

diberikan oleh karakter pertama diS Trim(S) Mengembalikan salinan string S setelah awalan dan

membuntuti karakter spasi putih dari string ini UCase(S) Mengembalikan S dengan semua karakter huruf kecil,

dikonversi ke karakter huruf besar Beberapa tercantum dalam Tabel. 16 fungsi konversi tipe data juga berlaku untuk manipulasi string: khususnya Chr, Format, CStr.

Memformat Nilai Data

Meskipun VBA dapat secara otomatis mengonversi jenis data apa pun menjadi string untuk ditampilkan dengan fungsi MsgBox atau untuk dimasukkan ke dalam lembar kerja Excel, format data yang dipilih VBA mungkin bukan yang Anda inginkan. Saat mengonversi angka menjadi string, VBA tidak menambahkan pemisah seribu, tanda dolar, atau pemformatan numerik lainnya ke string. Selain itu, jika angkanya sangat besar atau sangat kecil, VBA akan membuat string yang mewakili angka tersebut dalam format eksponensial. Saat mengonversi tanggal, VBA selalu menggunakan format tanggal dan waktu singkat yang digunakan oleh sistem operasi komputer dan selalu menampilkan tanggal dan waktu.

Untuk mendapatkan hampir semua format tanggal saat mengonversi angka atau tanggal menjadi string, Anda dapat menggunakan fungsi tersebut Format; Anda bahkan dapat menggunakan fungsi tersebut Format untuk memformat data string menurut pola tertentu. Anda juga dapat membuat format layar khusus jika Anda membutuhkan data untuk muncul dalam format tertentu. Sintaks operator Format adalah:

Format( ekspresi [, Format[, hari pertama dalam seminggu [, minggu pertama tahun ini]]])

ekspresi – ekspresi yang valid (wajib); Format – ekspresi format bernama atau ditentukan pengguna yang valid (opsional); hari pertama dalam seminggu – konstanta yang menentukan hari pertama dalam seminggu (opsional); minggu pertama tahun ini – konstanta yang menentukan minggu pertama tahun ini (opsional).

Untuk argumen hari pertama dalam seminggu Dan minggu pertama tahun ini VBA telah menamai konstanta, yang dapat Anda pelajari di sistem bantuan VBA di bawah Konstanta Tanggal.

Untuk menggunakan fungsi Format, Anda dapat menentukan format yang telah ditentukan sebelumnya (disebut bernama format(bernama format), atau buat gambar dengan format tertentu menggunakan kombinasi grup karakter khusus yang disebut placeholder(placeholder). Jika Anda perlu membuat format khusus untuk angka, tanggal, atau waktu, Anda perlu membuat string yang berisi karakter placeholder untuk menentukan gambar format yang harus digunakan fungsi tersebut. Format saat mengonversi nilai menjadi string (Tabel 19). Selain itu, di Tabel. 19 digunakan

sebagai contoh, nilai numeriknya adalah 1234,5.

untuk membuat kustom

Tabel 19– Memformat placeholder

karakter pengganti

Tindakan

Karakter numerik, menampilkan digit jika ada di posisi tersebut, atau 0 jika tidak ada. Anda dapat menggunakan karakter 0 untuk menampilkan nol di depan untuk bilangan bulat dan nol di belakang untuk desimal; 00000.000 menampilkan 00124.500

Karakter numerik, menampilkan digit jika ada di posisi itu, jika tidak, tidak menampilkan apa pun. Isi karakter # setara dengan 0, kecuali nol di depan dan di belakang tidak ditampilkan; #####.### menampilkan 1234.5

$ Menampilkan tanda dolar; $###,###.00 menampilkan $1.234,50

Placeholder desimal, menampilkan titik desimal pada posisi yang ditentukan dalam string placeholder 0; #.##.## menampilkan 1234.5

Persen karakter, mengalikan nilai dengan 100 dan menambahkan tanda persen pada posisi yang ditunjukkan oleh placeholder 0; #0.00% menampilkan angka 0,12345 sebagai 12,35% (12,345 dibulatkan menjadi 12,35)

, (koma)

Pemisah ribuan, menambahkan koma sebagai pemisah ribuan dalam string karakter placeholder 0 dan #; ###,###,###. 00 menampilkan 1.234,50

Menampilkan nilai dalam format eksponensial dengan tanda eksponen hanya untuk nilai negatif; #.#### e00 menampilkan 1.2345E03; 0,12345 ditampilkan sebagai 1,2345E-01

Menampilkan nilai dalam format eksponensial dengan eksponen untuk nilai positif dan negatif; #.#### E+00 menampilkan 1,2345E+03

Pisahkan hari, bulan, dan tahun untuk memformat nilai tanggal. mm/ DD/ Y y menampilkan 06/06/97. Karakter "/" dapat diganti dengan karakter tanda hubung untuk ditampilkan sebagai 06-06-97

Menentukan cara menampilkan bulan dalam tanggal; M menampilkan 2, mm– 02, hmmm– Feb mmmm- Februari

Menentukan cara menampilkan hari dalam tanggal; D menampilkan 1, DD menampilkan 01, dd– Jum, dddd- Jumat

y Menampilkan hari dalam setahun sebagai angka dari 1 hingga 366

Menentukan cara menampilkan tahun dalam tanggal; Y y menampilkan 99, UU UU– 1999

Menampilkan kuartal tahun ini sebagai angka antara 1 dan 4

Menampilkan hari dalam seminggu sebagai angka (1 adalah hari Minggu)

Menampilkan minggu dalam setahun sebagai angka antara 1 dan 54

karakter pengganti

Tindakan

: (titik dua) Memisahkan jam, menit, dan detik dalam nilai format waktu; hh: mm: ss menampilkan 02:02:02

Menentukan cara menampilkan jam; untuk nilai waktu 02:01:38 H menampilkan 2, hh menampilkan 02

Placeholder menit untuk waktu; untuk nilai waktu 02:01:08 N menampilkan 1 dan nn menampilkan 01

Placeholder detik untuk waktu; untuk nilai waktu 02:01:08 S menampilkan 8, dan ss menampilkan 08

Menampilkan waktu dalam format waktu 12 jam dengan tambahan AM dan PM; H: nnAM/PM menunjukkan pukul 16:00. Format alternatif termasuk am/pm, A/P dan a/p

Placeholder karakter, menampilkan spasi jika tidak ada karakter yang cocok dalam string yang sedang diformat (urutan padding default adalah dari kanan ke kiri)

Menampilkan semua karakter dalam huruf besar

Menampilkan semua karakter dalam huruf kecil

Menggunakan fitur aplikasi host

Selain fungsi yang dibangun ke dalam Visual Basic for Applications, beberapa fungsi aplikasi host VBA tersedia dari kode VBA. Tuan rumah-aplikasi adalah aplikasi yang mengembangkan prosedur VBA seperti Word, Excel, PowerPoint, Outlook, atau FrontPage. Excel, misalnya, memiliki berbagai fungsi yang menjalankan operasi matematika, logika, keuangan, dan statistik pada data di lembar kerja. Banyak (walaupun tidak semua) fungsi Excel ini dapat diakses dari kode VBA. Fungsi aplikasi host yang tersedia untuk VBA bukan bagian dari VBA, melainkan bagian dari aplikasi host. Fungsi yang tersedia untuk VBA di satu aplikasi host mungkin tidak tersedia di aplikasi lain.

Untuk menggunakan fungsi milik beberapa aplikasi host, rujuk ke fungsi melalui objek program Aplikasi. Objek Application VBA mewakili aplikasi host dan semua sumber dayanya. Objek dijelaskan lebih detail di Bagian 6.

Tugas 6. Tulis prosedur yang menggunakan fungsi Excel Max.

Untuk ini:

Masukkan prosedur (Listing 8):

Daftar 8 – Menggunakan Fungsi ExcelMaks

1 Sub Daftar3_08()

2 Aplikasi MsgBox.Maks(9, 17, -18, 20)

Dibalik kata Aplikasi diikuti dengan titik (.) dan kemudian nama fungsinya maks tanpa spasi. Titik ini disebut titik pembatas(dot pemisah) menunjukkan bahwa operator mengacu pada suatu fungsi maks, yang merupakan bagian dari objek

Aplikasi.

Hasil dari fungsi Excel tidak dapat diabaikan. Anda harus selalu menyertakan tanda kurung dalam pemanggilan fungsi Excel, dan selalu menggunakan hasil fungsi dalam beberapa cara: sebagai nilai dalam ekspresi, sebagai argumen untuk fungsi atau prosedur lain, atau dalam pernyataan penugasan.

Tidak semua fitur aplikasi host tersedia untuk VBA. Jika Anda tidak yakin apakah fitur aplikasi host tertentu tersedia untuk VBA, gunakan Obyek Peramban untuk memeriksa apakah daftar tersebut termasuk Anggota (Komponen) fungsi ini, dengan yang dipilih WorksheetFunction dalam daftar kelas (Kelas) dan dengan aplikasi host yang dipilih dalam daftar proyek/ Perpustakaan (Proyek / Perpustakaan). Jika fungsi yang diinginkan tidak terdaftar, tidak tersedia untuk VBA.

Kontrol pertanyaan

    Definisikan konsep "tipe data". Tipe data apa yang digunakan dalam VBA?

    Apa itu pengidentifikasi?

    Apa itu variabel? Apa arti ungkapan "mendefinisikan variabel secara implisit", dan apa artinya "secara eksplisit"?

    Konstanta apa yang digunakan dalam VBA? Apa itu konstanta internal?

    Untuk apa fungsi InputBox dan MsgBox?

    Apa itu ekspresi?

    Tentukan sintaks operator penugasan.

    Apa itu operasi relasional?

    Apa prioritas operasi matematika?

    Kata kunci apa yang ada di VBA untuk digunakan saat mengakses Fungsi Excel? Untuk apa Anda menggunakan jendela Peramban Objek?

  • Boolean- tipe data boolean hanya dapat menyimpan dua nilai: Benar atau Salah, benar atau salah. Menggunakannya sebagai pengganti variabel integer adalah gaya pemrograman yang bagus.
  • byte- tipe byte baru di Visual Basic 5 dan dirancang untuk menyimpan bilangan bulat dari 0 hingga 255. Penggunaannya memungkinkan Anda menghemat RAM dan mengurangi ukuran array dibandingkan dengan versi sebelumnya Dasar visual. Selain itu, ini digunakan saat bekerja dengan file biner.
  • Mata uang - jenis yang diberikan absen dari versi GW-BASIC dan QuickBASIC. Ini dirancang untuk menghindari kesalahan konversi. angka desimal ke bentuk biner dan sebaliknya. (Tidak mungkin menyatakan 1/10 sebagai jumlah dari 1/2, 1/4, 1/8, 1/16, dll.) Jenis ini dapat memiliki hingga 4 digit setelah titik desimal, dan hingga 14 sebelum dia. Dalam rentang ini, perhitungan akan akurat. Pengidentifikasi adalah karakter "@". Karena semua operasi aritmatika, kecuali penjumlahan dan pengurangan, dilakukan selambat dalam kasus variabel presisi ganda, jenis ini lebih disukai untuk perhitungan finansial. (Bagi mereka yang bertanya-tanya, jenis ini menggunakan bilangan bulat 19 digit, yang kemudian dibagi dengan 10.000. Ini memungkinkan 15 tempat desimal dan 4 tempat desimal.)
  • Tanggal- Jenis data ini memungkinkan Anda menyimpan nilai waktu dan tanggal antara tengah malam 1 Januari 100 dan tengah malam 31 Desember 9999. Nilai tersebut dilambangkan dengan karakter "#" dalam teks program, misalnya: Tahun Baru = #1 Januari 2000# Jika hanya nilai tanggal yang dimasukkan, Visual Basic mengasumsikan bahwa waktu adalah 00:00.
  • Desimal adalah tipe numerik yang paling kuat. Untuk menyimpan variabel jenis ini, 16 byte dialokasikan. Batas negatif dan positif dari interval di mana nilai yang mungkin dari variabel ini berada sama dalam nilai absolut dan sama dengan +/- 79 228 162 514 264 337 593 543 950 335, jika bilangan bulat digunakan. Jika perlu untuk menyimpan nilai pecahan, maka batas nilai yang mungkin akan digeser beberapa kali lipat, tergantung pada berapa banyak tempat desimal yang digunakan pengembang. Jenis ini hanya dapat digunakan untuk menyimpan desimal. Pengembang dapat menggunakan hingga 28 tempat desimal.
  • Dobel- Variabel jenis ini memungkinkan Anda menyimpan angka dengan akurasi hingga 16 digit dan panjang hingga 300 karakter. Pengenalnya adalah "#". Perhitungan dengan mereka juga merupakan perkiraan, dan kecepatannya relatif kecil. Variabel ganda terutama digunakan untuk perhitungan ilmiah.
  • Bilangan bulat- Variabel bilangan bulat hanya dapat menyimpan bilangan bulat yang relatif kecil (antara -32768 dan +32767). Operasi aritmatika atas nomor tersebut dilakukan dengan sangat cepat. Karakter "%" digunakan untuk menunjukkan tipe ini: IntegerPerem% = 3
  • Panjang- jenis ini pertama kali muncul dalam bahasa QuickBASIC. Variabel tersebut menyimpan nilai integer dari -2 147 483 648 hingga +2 147 483 647. Dilambangkan dengan simbol "&". Operasi aritmatika pada angka-angka tersebut juga sangat cepat, dan saat bekerja dengan prosesor 386DX atau 486DX, hanya ada perbedaan kecil dalam kecepatan kalkulasi antara Long dan Integer. LongPerem& = 123456789
  • Obyek- sebenarnya, variabel jenis ini hanyalah referensi ke instance tertentu dari suatu objek. Variabel disimpan dalam 4 byte.
  • Lajang- pengenal untuk angka-angka ini adalah simbol "!". Jenis variabel ini memungkinkan Anda menyimpan bilangan pecahan hingga tujuh digit. Artinya jika hasilnya 12345678.97, maka bagian 8.97 tidak akurat. Hasilnya bisa jadi, misalnya, 12345670,01. Panjang angka bisa mencapai 38 karakter. Perhitungan dengan variabel-variabel ini juga akan menjadi perkiraan. Selain itu, aritmatika lebih lambat dibandingkan dengan variabel integer.
  • Rangkaian- variabel string menyimpan karakter. Salah satu cara untuk menetapkan tipe variabel ini adalah dengan menambahkan karakter "$" di akhir namanya, misalnya: StringPerem$. Secara teoritis, variabel seperti itu dapat berisi hingga 2 miliar karakter. Bagaimanapun, pada komputer tertentu, jumlah ini akan jauh lebih sedikit karena volume yang terbatas. memori akses acak, sumber daya Windows, atau jumlah karakter yang digunakan dalam formulir. Salah satu kegunaan paling dasar dari variabel string adalah untuk memilih informasi dari field input.

Misalnya, jika Anda mengubah teks di kotak teks 1, kotak teks akan menampilkan teks yang sama, tetapi tanpa karakter terakhir di sebelah kanan:

Option Explicit Dim strText As String Private Sub Form_Load() Text1.Text = "" Text2.Text = "" End Sub Private Sub Text1_Change() Pada Error Lanjutkan Next Text2.Text = strText strText = Left(Text1.Text, Len(Text1 .Teks) - 1) Sub Akhir

Varian- tipe ini ditambahkan di Visual Basic 5 dari versi 2.0. Variabel varian tipe dapat berisi data dari tipe apa pun. Jika Visual Basic tidak mengetahui jenis data yang diterima, Anda harus menggunakan varian. Jenis informasi tidak menjadi masalah, karena varian dapat berisi semua jenis data (numerik, tanggal/waktu, string). Visual Basic melakukan transformasi data yang diperlukan secara otomatis, jadi Anda tidak perlu khawatir tentang itu. Di sisi lain, Anda dapat menggunakan fungsi bawaan untuk memeriksa jenis data yang disimpan dalam variabel varian jenis. Mereka memudahkan untuk memeriksa apakah pengguna memasukkan informasi dengan benar. Menggunakan tipe data seperti varian memperlambat program, karena membutuhkan waktu dan sumber daya untuk operasi konversi tipe. Selain itu, banyak pemrogram menyadari bahwa menggunakan konversi tipe data otomatis menyebabkan program ceroboh. Alasan satu-satunya dalam penggunaan varian terletak pada kemungkinan kesalahan dalam konversi tipe langsung oleh programmer.

Terkadang, saat menggunakan beberapa operator, fungsi API, atau hanya untuk kebutuhan Anda sendiri, Anda perlu membuat tipe data Anda sendiri. Mereka sering disebut sebagai struktur. Pada intinya, sebuah struktur seperti array satu dimensi yang kita jejalkan ke dalam satu variabel. Tapi itu bisa termasuk data dari berbagai jenis.

Membuat tipe data Anda sendiri dilakukan dengan menggunakan pernyataan Type, yang digunakan di bagian Umum kode formulir.