VBA ByVal

VBA ByVal

Argumen Fungsi Excel VBA ByVal

ByVal adalah pernyataan di VBA. ByVal adalah singkatan dari “By Value,” yaitu, ketika subprosedur memanggil dari prosedur, nilai variabel diatur ulang ke nilai baru dari prosedur baru yang dipanggil.

Di VBA, saat kita bekerja dengan fungsi yang memanggil fungsi berbeda, ada keadaan tertentu di mana nilai argumen asli diubah saat memanggil fungsi. Pernyataan ByVal melarang prosedur atau kode mengubah nilai argumen.

Dengan membaca penjelasannya, kita tahu itu tidak mudah dipahami. Namun dengan contoh-contoh praktis fungsi, kita dapat memahaminya dengan lebih baik.

Anda bebas menggunakan gambar ini di situs web Anda, templat, dll., Harap berikan kami tautan atribusiBagaimana Memberikan Atribusi? Tautan Artikel menjadi Hyperlink
Misalnya: Sumber: VBA ByVal (wallstreetmojo.com)

Bagaimana cara menggunakan Argumen ByVal di VBA?

Contoh 1

Lihat kode VBAKode VBAKode VBA mengacu pada serangkaian instruksi yang ditulis oleh pengguna dalam bahasa pemrograman Visual Basic Applications pada Visual Basic Editor (VBE) untuk melakukan tugas tertentu.Baca lebih lanjut di bawah ini.

Kode:

Sub Macro1() Dim k As Integer k = 50 Macro2 k MsgBox k End Sub

Sub Makro2(ByVal k Sebagai Integer) k = k + 5 End Sub

Dua prosedur makro di atas memiliki variabel umum, “k,” di seluruh prosedur. Izinkan saya menjelaskan ini secara detail sebelum kita melihat hasilnya.

Di Makro pertama, kami telah menetapkan nilai 50 ke variabel “k”.

Dim k Sebagai Integer k = 50

Selanjutnya, kami memanggil prosedur makro kedua dari Makro pertama.

Makro2 k

Di Macro2, kami telah mengatur ulang nilai variabel ke k = k + 5. Di makro ini, kami telah menggunakan argumen ByVal untuk menetapkan nilai ke variabel “k”.

Sekarang, untuk memahami “ByVal”, mari jalankan kode VBA dengan menekan tombol F8.

#1 – Setelah menekan tombol F8 terlebih dahulu, baris pertama Macro1 akan disorot.

Pada titik ini, tempatkan kursor pada variabel “k.” Itu harus menunjukkan nilai variabel “k.”

Saat ini, nilai ‘k’ adalah nol.

#2 – Tekan tombol F8 lagi, dan itu akan melompat ke baris ketiga.

Bahkan sekarang, nilai “k” masih nol.

#3 – Tekan tombol F8 sekarang. Lihat nilai k.

Karena nilai “k” disetel ke 50 dan kode dijalankan, nilainya ditampilkan sebagai 50.

#4 – Garis yang disorot adalah “Macro2 k,” yaitu, menekan tombol F8 akan melompat ke prosedur kedua, Macro2.

#5 – Bahkan sekarang, nilai variabel “k” dalam prosedur ini juga ditampilkan sebagai 50. Namun di dalam makro ini, kami menyetel ulang nilai variabel “k” sebagai k = k + 5, yaitu 55. Jadi, sekarang tekan tombol F8 dua kali lagi.

Seperti yang Anda lihat di atas, nilai “k” adalah 55 sekarang.

#6 – Tekan tombol F8. Ini akan melompat kembali ke prosedur Macro1.

Ketika makro melompat kembali ke prosedur asli Macro1, nilai variabel “k” kita tidak lagi 55 melainkan nilai asli dalam prosedur ini, yaitu 50.

Ketika Anda menekan tombol F8, kita hanya dapat melihat 50 di kotak pesan di Kotak VBAMessage Dalam fungsi VBAVBA MsgBox adalah fungsi keluaran yang menampilkan pesan umum yang disediakan oleh pengembang. Pernyataan ini tidak memiliki argumen dan pesan yang dipersonalisasi dalam fungsi ini ditulis di bawah tanda kutip ganda sedangkan untuk nilai referensi variabel disediakan.baca lebih lanjut.

Seperti yang telah kami ceritakan di awal artikel “ByVal”, argumen tidak membawa nilai dari satu prosedur ke prosedur lainnya meskipun ia membawa nilai variabel dari makro pertama ke makro kedua pada saat itu. Itu bertemu garis “ByVal” saat kembali ke makro asli. Ini mereset nilai ke nilai asli hanya dalam prosedur.

Contoh #2

Sekarang, lihat dua makro di bawah ini.

Kode:

Sub P1() Dim k Sebagai Integer: k = 10 Call P2(k) MsgBox k End Sub

Sub P2(ByVal k Sebagai Integer) k = 15 End Sub

  • Mirip dengan contoh pertama. Di makro “P1”, kami telah menetapkan nilai 10 ke variabel “k”, dan di makro yang sama “P1”, kami menyebut makro kedua “P2” dengan variabel “k”.
  • Di makro kedua, “P2,” kami telah menggunakan argumen ByVal. Kali ini, nilai variabel “k” adalah 15.

Makro ini membawa nilai variabel “k” sebagai sepuluh dari makro “P1” ke makro “P2 . Jadi , makro ini akan mereset nilainya menjadi 15, tetapi saat kembali menyelesaikan makro ke makro pertama, “P1 ” , nilai “k” kembali ke 10, bukan 15.

Hal-hal untuk diingat

Argumen ByVal tidak memengaruhi nilai variabel bahkan setelah menjalankan makro. Tetap saja, kita bisa membawa nilai variabel dari satu makro ke makro lainnya dengan argumen By Ref.

Artikel yang Direkomendasikan

Artikel ini telah menjadi panduan untuk VBA Byval. Di sini, kita membahas penggunaan argumen ByVal di VBA beserta contoh dan template Excel yang dapat diunduh. Anda dapat mempelajari lebih lanjut tentang VBA dari artikel berikut: –

  • Ketidaksesuaian Jenis Argumen VBA ByRef
  • VBA Membagi String menjadi Array
  • Tetapkan Rentang di VBA
  • Contoh VBA

Related Posts