Option Explicit
Private Sub Form_Load()
Dim iNumber As Integer
iNumber = 1
MsgBox TampilkanPesan(iNumber)
End Sub
Function TampilkanPesan(ByVal Pesan As String) As String
TampilkanPesan = Pesan
End Function
Coba bedakan dengan yang iniFungsinya akan menampilkan error yakni argumen yang tidak sama (cocok/mismatch)
Private Sub Form_Load()
Dim iNumber As Integer
iNumber = 1
MsgBox TampilkanPesan(iNumber)
End Sub
Function TampilkanPesan(Pesan As String) As String
TampilkanPesan = Pesan
End Function
Untuk mengatasi error di atas maka cocokan saja argumennya yaknidengan mengubah variable iNumber yang asalnya integer menjadi String
Private Sub Form_Load()
Dim iNumber As String
iNumber = 1
'sekarang tidak akan terjadi error karena type datanya sama yakni string
MsgBox TampilkanPesan(iNumber)
End Sub
Function TampilkanPesan(Pesan As String) As String
TampilkanPesan = Pesan
End Function
Atau Anda beri statement ByVal pada argumen fungsinyaPrivate Sub Form_Load()
'Dim iNumber As String
iNumber = 1
'sekarang tidak akan terjadi error karena type datanya sama yakni string
MsgBox TampilkanPesan(iNumber)
End Sub
Function TampilkanPesan(ByVal Pesan As String) As String
TampilkanPesan = Pesan
End Function
Maka kesimpulannya:- Secara default Visual Basic 6.0 telah menyertakan ByRef pada argumen walaupun kita tidak menuliskannya, terkecuali secara explicit kita menuliskan ByVal pada argumen tersebut.
- Penggunaan ByVal akan memaksa sebuah argumen untuk dijadikan data type tertentu sebagai contoh:
- ByVal Pesan As String maka pesan akan dipaksa untuk memiliki data type string.
- Penggunaan KeyWord ByVal menjadikan sebuah argumen tidak lagi memiliki hubungan dengan variable yang melewatinya. Sebagai contoh:
Dim i as integer
i = 1
Msgbox TampilkanPesan(i)
Msgbox i 'maka i disini, tetap saja memiliki nilai satu.
Function TampilkanPesan(ByVal Pesan As String) As String
Pesan = 2
TampilkanPesan = Pesan
End Function
Semoga bermanfaat
No comments:
Post a Comment