VBA IIF

Excel VBA IIF

Jika Anda adalah pengguna makro VBA biasa, Anda pasti pernah menemukan fungsi yang disebut "IIF" atau Anda mungkin pernah melihat fungsi ini di internet. Pada pandangan pertama, karena Anda pasti mengira itu adalah kondisi IF seperti pernyataan IF biasa kami di Excel. Tetapi ini bukan pernyataan IF yang sama yang kami gunakan untuk mengevaluasi tes logis dan mendapatkan hasil berdasarkan kriteria yang kami berikan. Dalam artikel ini, kami akan memandu Anda mempelajari kondisi "VBA IIF" di VBA.

Apa yang Dilakukan Kondisi IIF di VBA?

Ini sangat mirip dengan kondisi IF kita tetapi sifatnya sedikit berbeda. Kondisi "VBA IIF" menguji ekspresi atau pengujian logika yang diberikan dan mengembalikan TRUE atau FALSE sebagai hasilnya.

VBA IIF Syntax

Lihatlah sintaks dari fungsi IIF.

  • Ekspresi: Ini hanyalah tes logis yang ingin kami lakukan.
  • Bagian Ture: Jika tes logika BENAR maka apa yang seharusnya menjadi hasil dari bagian BENAR.
  • Bagian False: Jika tes logika adalah FALSE maka apa yang seharusnya menjadi hasil dari bagian FALSE.

Kita bisa memasukkan hasil kita sendiri dengan bagian TRUE & FALSE. Meskipun argumen terlihat mirip dengan kondisi IF, ini akan sedikit berbeda. Kita akan melihat itu dalam contoh fungsi Excel VBA IIF.

Salah satu perbedaan utama antara “IF” reguler dan “IIF” ini adalah kita dapat mengurangi kode menjadi satu baris dengan IIF di mana dengan kondisi IF dibutuhkan minimal 5 baris untuk mendapatkan hasil yang sama.

Contoh Fungsi VBA IIF

Di bawah ini adalah contoh Fungsi VBA IIF di excel.

Anda dapat mengunduh Template Excel VBA IIF ini di sini - Template VBA IIF Excel

Contoh # 1 - VBA IIF

Oke, kita akan melihat satu contoh sederhana dari fungsi IIF. Sekarang kita akan menguji apakah satu angka lebih besar atau lebih kecil dari pada angka lain. Ikuti langkah-langkah di bawah ini untuk menulis kode VBA.

Langkah 1: Mulai makro.

Langkah 2: Tentukan variabel sebagai String di VBA.

Kode:

 Sub IIF_Example () Redupkan FinalResult Sebagai String End Sub 

Langkah 3: Tentukan dua variabel lagi sebagai Long in VBA.

Kode:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long End Number2 As Long End Sub 

Langkah 4: Sekarang untuk variabel "Number1" tetapkan nilai 105 dan untuk variabel "Number2" tetapkan nilai 100.

Kode:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub 

Langkah 5: Sekarang untuk variabel pertama yang didefinisikan "FinalResult", kita akan menetapkan hasil dari fungsi IIF. Jadi buka IIF untuk variabel tersebut.

Langkah 6: Masukkan ekspresi sebagai Number1> Number2.

Langkah 7: Sekarang jika ekspresi BENAR apa yang seharusnya menjadi hasilnya. Saya akan menetapkan hasilnya sebagai "Nomor 1 lebih besar dari Nomor 2".

Langkah 8: Sekarang jika ekspresi SALAH, apa yang seharusnya menjadi hasilnya. Saya akan menetapkan hasilnya sebagai "Nomor 1 kurang dari Nomor 2".

Sekarang nilai variabelnya adalah salah satu dari di bawah ini.

Jika Benar: "Nomor 1 lebih besar dari Nomor 2"

Jika Salah: "Nomor 1 lebih kecil dari Nomor 2"

Langkah 9: Mari tunjukkan hasilnya di kotak pesan di VBA.

Kode:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is Less than Number 2") MsgBox FinalResult End Sub 

Sekarang mari kita jalankan kodenya dan lihat hasilnya.

Karena nilai Angka 1 adalah 105 yang lebih besar dari nilai Angka 2 dari 100 kita mendapatkan hasil sebagai “Angka 1 Lebih Besar dari Angka 2”. Karena Ekspresi BENAR, kondisi IIF mengembalikan hasil ini.

Contoh # 2 - IF vs IIF

Anda pasti bertanya-tanya apa perbedaan antara IF & IIF. Ya, ada perbedaan dalam pengkodean. Misalnya, lihat kode kondisi IF.

Kode:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If Akhiri Sub 

Menggunakan IF terlebih dahulu kami telah menerapkan tes logis.

 Jika Number1> Number2 Then 

Kemudian jika tes logis benar kita telah menerapkan hasilnya.

MsgBox "Nomor 1 Lebih Besar dari Nomor 2"

Kemudian jika tes logis salah kami telah menerapkan hasil yang berbeda.

MsgBox "Nomor 1 Lebih Kecil dari Nomor 2"

Kedua fungsi tersebut mengembalikan hasil yang sama tetapi dengan IIF kita hanya dapat membuat kode dalam satu baris, di mana pernyataan IF memerlukan banyak baris.

Contoh # 3 - Kondisi IIF Bersarang VBA

Like how we use nested IF to test multiple conditions similarly we can use multiple IIF as well. Take a look at the below code.

Code:

 Sub IIF_Example2() Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf(Marks > 90, "Dist", IIf(Marks > 80, "First", IIf(Marks > 70, "Second", IIf(Marks > 60, "Third", "Fail")))) MsgBox FinalResult End Sub 

The above IIF condition tests five logical tests and returns the result accordingly.