Materi
Sub menjalankan tindakan: menulis ke sel, memformat, membuka berkas. Function menghitung lalu mengembalikan nilai, dan nilainya dikembalikan dengan mengisi nama fungsi di dalam badannya. Bila nama fungsi tidak pernah diisi, fungsi angka mengembalikan 0, fungsi String mengembalikan teks kosong, dan fungsi Variant mengembalikan Empty.
Function KodeWilayah(kota As String) As String
Select Case kota
Case "Medan", "Padang"
KodeWilayah = "SUM"
Case Else
KodeWilayah = "LAIN"
End Select
End FunctionFunction di modul biasa bisa dipakai di sel seperti fungsi bawaan, misalnya =KodeWilayah(A2); bentuk ini disebut fungsi buatan pengguna (UDF). Fungsi seperti itu hanya boleh mengembalikan nilai. Bila ia mencoba bertindak, seperti mengubah huruf atau warna sel atau menyunting rumus, sel pemanggilnya menampilkan #VALUE!. Buku kerja tempat fungsi berada harus terbuka; bila tidak, sel menampilkan #NAME?.
Argumen adalah nilai yang dikirim ke prosedur. Di VBA argumen dikirim ByRef secara bawaan: bila prosedur mengubah argumennya, variabel milik pemanggil ikut berubah. Tulis ByVal bila prosedur hanya boleh memakai salinannya. Sub dipanggil dengan HitungUlang a, b atau Call HitungUlang(a, b), sedangkan hasil Function dipakai dengan tanda kurung, seperti x = KodeWilayah("Medan").