Menggunakan Prosedur dan Fungsi
Berikut ini dijelaskan penggunaan-penggunaan dasar untuk prosedur dan fungsi di dalam LibreOffice Basic.
Ketika kamu membuat modul baru, LibreOffice Secara otomatis akan memasukkan sebuah SUB yang disebut "Main". Nama default ini tidak ada hubungannya dengan pesanan atau titik awal dari proyek dasar LibreOffice. Anda juga dapat mengganti nama SUB ini dengan aman.
Beberapa batasan berlaku untuk nama variabel publik Anda, subs, dan fungsi. Anda tidak boleh menggunakan nama yang sama dengan salah satu modul dari pustaka yang sama
Prosedur (SUBS) dan Fungsi (FUNCTIONS) membantu Anda menjaga ringkasan yang terstruktur dengan memisahkan program menjadi bagian yang logis.
Satu keuntungan dari prosedur dan fungsi adalah ketika Anda selesai mengembangkan sebuah kode program yang mengandung komponen-komponen tugas di dalamnya, maka kode-kode ini bisa Anda pakai pada proyek yang lain.
Melewatkan Variabel ke Prosedur (SUB) dan Fungsi (FUNCTION)
Variabel dapat diteruskan untuk prosedur dan fungsi. SUB atau FUNCTION harus dideklarasikan untuk mengharapkan parameter:
Sub SubName(Parameter1 As Type, Parameter2 As Type,...)
Kode program
End Sub
SUB dipanggil dengan sintaksis berikut:
SubName(Value1, Value2,...)
Parameter yang diteruskan ke SUB harus sesuai dengan yang ditentukan dalam deklarasi SUB.
Proses yang sama berlaku untuk FUNGSI. Sebagai tambahan, fungsi selalu mengembalikan hasil fungsi. Hasil dari fungsi ditetapkan dengan memberikan nilai kembalian ke nama fungsi:
Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Kode program
NamaFungsi=Hasil
End Function
FUNCTION dipanggil dengan sintaksis berikut:
Variabel=NamaFungsi(Parameter1, Parameter2,...)
Anda juga dapat menggunakan fully qualified name untuk memanggil prosedur atau fungsi:
Library.Module.Macro()
Contohnya, untuk memanggil makro Autotext dari pustaka Gimmicks, gunakan perintah berikut:
Gimmicks.AutoText.Main()
Meneruskan Variabel berdasarkan Nilai atau Referensi
Beberapa parameter dapat diteruskan ke sebuah SUB atau sebuah FUNCTION antara berdasarkan acuan atau berdasarkan nilai. Kecuali jika tidak ditentukan, sebuah parameter selalu diteruskan berdasarkan acuan. Itu berarti bahwa sebuah SUB atau sebuah FUNCTION mengambil parameter dan dapat membaca dan memodifikasi nilainya.
Jika Anda ingin meneruskan parameter dengan memasukkan nilai kata kunci "ByVal" di depan parameter ketika Anda menyebut SUB atau FUNGSI, contohnya:
Hasil = Fungsi(ByVal Parameter)
Dalam hal ini, konten asli dari parameter tidak akan dimodifikasi oleh FUNGSI karena hanya mendapat nilai dan bukan parameter itu sendiri.
Cakupan Variabel
Sebuah variabel yang didefinisikan dalam SUB atau FUNGSI, hanya tetap berlaku sampai prosedurnya keluar. Ini dikenal sebagai variabel "lokal". Dalam banyak kasus, Anda memerlukan variabel untuk berlaku di semua prosedur, di setiap modul semua pustaka, atau setelah SUB atau FUNGSI dikeluarkan.
Mendeklarasikan Varibel di Luar SUB atau FUNCTION
GLOBAL VarName As TYPENAME
Variabel ini berlaku selama LibreOffice sesi berlangsung.
PUBLIC VarName As TYPENAME
Variabelnya sah untuk semua modul.
PUBLIC VarName As TYPENAME
Variabelnya hanya sah untuk modul ini.
PUBLIC VarName As TYPENAME
Variabelnya hanya sah untuk modul ini.
Contoh untuk variabel privat
Terapkan variabel pribadi menjadi pribadi di seluruh modul dengan menyetel CompatibilityMode (Benar).
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Hello"
print "in module1 : ", myText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( true )
initMyText
' Sekarang menghasilkan string kosong
' (or raises error for Option Explicit)
print "Now in module2 : ", myText
End Sub
Menyimpan Isi Variabel Usai Keluar dari SUB atau FUNCTION
STATIC VarName As TYPENAME
Variabel mempertahankan nilainya sampai waktu selanjutnya FUNCTION atau SUB dimasukkan. Deklarasi harus ada di dalam SUB atau FUNGSI.
Menentukan Tipe Nilai Pengembalian dari FUNGSI
Seperti halnya variabel, menyertakan sebuah karakter deklarasi tipe setelah nama fungsi, atau jenis yang ditunjukkan oleh "As" dan kata kunci yang sesuai di akhir daftar parameter untuk menentukan jenis nilai pengembalian fungsi, sebagai contoh:
Function WordCount(WordText As String) As Integer