Kayıtlar

EXCEL VBADA MSGBOX IFADESİ

 


VBA MsgBox, kullanıcıya basit bir mesaj göstermek için sıklıkla kullanılan basit bir açılır penceredir. MsgBox'ı iki şekilde kullanabiliriz:


  1. Kullanıcıya belirli bir eylem veya daha sonra ne yapması gerektiği hakkında bilgi vermek.
  2. Kullanıcıdan daha sonraki işlem için girdi almak istiyorsanız EVET, HAYIR veya İPTAL diyelim.
İleti kutusu Excel ve makro çalışması, bir girdi verene kadar durdurulacak iletisini gösterdiğinde. Bir girdi, ileti kutusunun tasarımına dayalı olabilir.

ÖNEMLİ NOKTALAR

  • VBA MsgBox, kullanıcılara mesajı göstermek ve aynı zamanda kullanıcılardan girdi almak için kullanılan bir açılır penceredir.
  • VBA MsgBox, ihtiyaçlara göre mesajları, ikonları ve butonları özelleştirmemize olanak tanır.
  • Değişkenin değerini mesaj kutusuna, mesaj kutusu değerini de değişkene atayabiliriz.
  • VBA MsgBox, kullanıcıdan gelen yanıtı almamızı ve kullanıcının seçtiği seçeneğe göre ilerlememizi sağlar.
  • vbDefaultButton kullanarak istediğimiz butonu varsayılan olarak vurgulayabiliriz.

Bir VBA MsgBox'ın Anatomisi

Anatomi bir bilim kelimesidir, ancak VBA mesaj kutusunun gövde yapısını açıklamak için bu kelimeyi kullanmamız gerekir.

VBA Mesaj Kutusunun yapısı aşağıdadır.

VBA Mesaj Kutusu - Yapı

1. Başlık: Bu, mesaj kutusunun başlığını göstermek için kullanılır. Başlık, kullanıcının gereksinimine göre değiştirilebilir. Varsayılan olarak herhangi bir başlık vermediğimizden, bu örnekte uygulama adı, yani "Microsoft Excel" gösterilir.

2. İstem: Bu, kullanıcılara iletmemiz gereken mesajı görüntüleyen bölümdür. Mesajı gereksinimlerimize göre tasarlayabilir veya bazı veriler veya tablolar da gösterebiliriz.

3. Sembol: Bu, kullanıcılara iletmemiz gereken mesaja göre tasarlayabileceğimiz simgedir. Bu örnekte, Bilgi simgesini kullandık, bu şekilde kritik, önemli veya diğer birçok simge tasarlayabiliriz.

4. Düğme(ler): OK, aldığımız varsayılan düğmedir. OK düğmesine tıklarsak mesaj kutusu kaybolur . EVET veya HAYIR, İptal, Yoksay, Yeniden Dene vb. gibi kendi düğmelerimizi tasarlayabiliriz.

5. İptal Butonu: Bu ikona tıklayarak mesaj kutusunu kapatabiliriz.


VBA MsgBox Fonksiyonunun Sözdizimi

MsgBox'ın söz dizimi aşağıdaki gibidir –

VBA MsgBox - Sözdizimi.jpg

İstem: Bu, MsgBox işlevinin zorunlu argümanıdır. Argümanda, son kullanıcılara iletmek istediğimiz mesajı tasarlayabiliriz. Mesaj kutusunun anatomisinde "Bugün nasılsınız?" verdiğimiz istemdir.

Mesajımızı 1024 karaktere kadar iletebiliriz. Bu argümanda değişkenlerin değerlerini de görüntüleyebiliriz ve ayrıca mesajı birden fazla satırda gösterebiliriz.

[Buttons]: Bu isteğe bağlı bir argümandır. Varsayılan olarak OK butonunu alacağız . Ancak OK & CANCEL , YES veya NO gibi butonlar tasarlayabiliriz , vb.

Bunun dışında Kritik , Bilgi ve Uyarı gibi mesaj simgelerini de görüntüleyebiliriz .

[Başlık]: Mesaj kutusuna vermemiz gereken başlığı tasarlayabiliriz. Mesaj kutusunun en üstünde başlığı alacağız. Bu isteğe bağlı bir argüman olduğundan, bu argümanı yoksayarsak varsayılan olarak uygulama adı Microsoft Excel'i alacağız.

[YardımDosyası]: Bu argümanı kullanarak kullanıcılar için yardım dosyasını belirtebiliriz. Bu, kullanıcının yardım düğmesine tıklayarak yardım dosyasını bulmasına yardımcı olacaktır. Bunu belirtirsek, [context] numarasını belirtmek zorunludur.

[Bağlam]: Bu sayısal bir ifadedir, yani ilgili yardım konusuna atanmış yardım bağlamı numarasıdır.

Not: [helpfile] ve [context] argümanlarını nadiren kullanırız , bu yüzden bunlar üzerinde çok durmayalım.

Mesaj kutusu fonksiyonunda sadece Prompt argümanı zorunludur, diğerleri zorunlu değildir.

Excel VBA MsgBox Düğme Sabitleri

Örnek 1 – Varsayılan Düğme Olarak Tamam

Öncelikle mesaj kutusunu sıfırdan tasarlayacağız.

Excel makrosuna bir isim vererek alt rutin prosedürünü başlatın .

Örnek 1

MsgBox fonksiyonuna girin.

Örnek 1 - Adım 2

Mesaj kutusunun istem argümanı için mesajı çift tırnak içinde verin.

Örnek 1 - Adım 3

MsgBox fonksiyonunun diğer tüm argümanlarını yok sayarsak kod şu şekilde okunacaktır.

Kod:

Sub Mesaj_Kutusu()
MsgBox “Merhaba, Nasılsınız?”
End Sub

Bu kodu çalıştırdığımızda aşağıdaki mesaj kutusunu alacağız.

VBA MsgBox - Düğme sabiti - Örnek 1 - Çıktı

Gördüğümüz gibi varsayılan olarak OK butonunu aldık. MsgBox fonksiyonunun butonun argümanında vbOkOnly'yi de belirtebiliriz .


Örnek 2 – Tamam ve İPTAL Düğmesi

Mesaj kutusunda OK ve CANCEL butonlarını göstermek istiyorsak MsgBox fonksiyonunun Button argümanında vbOkCancel seçeneğini seçmemiz gerekiyor.

Örnek 2 - Adım 1

IntelliSense listesine ulaşmak için Ctrl + Space tuşlarına basın .

VBA MsgBox - Düğme sabiti - Örnek 2 - Adım 2

vbOKCancel seçeneğini seçtiğimizde aşağıdaki kod karşımıza çıkacak.

Sub Mesaj_Kutusu()
MsgBox “Merhaba, Nasılsınız?”, vbOKCancel
End Sub

Bu kodu çalıştırdığımızda aşağıdaki MsgBox'ı alacağız.

Örnek 2 - Çıktı

Örnek 3 – EVET veya HAYIR Düğmesi

Eğer EVET veya Hayır butonunu göstermek istiyorsak o zaman vbYesNo butonu seçeneğini seçmemiz gerekiyor.

Sub MsgBox_vbYESNO ()
MsgBox “Merhaba, Nasılsınız?”, vbYesNo
End Sub

Mesaj kutucuğuna aşağıdaki butonları alacağız.

VBA MsgBox - Düğme sabiti - Örnek 2 - Çıktı

Örnek 4 – EVET, HAYIR ve İPTAL Düğmesi

Evet, Hayır ve İptal butonlarını göstermek için vbYesNoCancel komutunu vermemiz gerekiyor.

Sub MsgBox_vbYESNOCANCEL ()
MsgBox “Merhaba, Nasılsınız?”, vbYesNoCancel
End Sub

Aşağıdaki mesaj kutusunu alacağız.

VBA MsgBox - Düğme sabiti - Örnek 2 - Çıktı

Örnek 5 – TEKRAR DENE ve İPTAL Düğmesi

Retry ve Cancel butonlarını göstermek için vbRetryCancel kullanmamız gerekiyor.

Sub MsgBox_vbRetryCancel ()
MsgBox “Merhaba, Nasılsınız?”, vbRetryCancel
End Sub

Aşağıdaki mesaj kutusunu alacağız.

Örnek 2 - Çıktı

Örnek #6 – ABORT, RETRY ve IGNORE Düğmeleri

Eğer Abort, Retry ve Ignore butonlarını göstermek istiyorsak vbAbortRetryIgnore'u kullanmamız gerekiyor.

Alt MsgBox_vbRetryCancel ()
MsgBox “Merhaba, Nasılsınız?”, vbRetryCancel
Alt Bitiş

Aşağıdaki mesaj kutusu görüntülenecektir.

Örnek 2 - Çıktı

Örnek 7 – Birden Fazla Düğmeyi Göster

Mesaj kutusunda birden fazla sabit buton gösterebiliriz. Örneğin, YES, NO'yu HELP butonuyla birlikte göstermek istiyorsak, aşağıdaki gibi bir kod yazmamız gerekir.

Sub MsgBox_vbRetryCancel()
MsgBox “Merhaba, Nasılsınız?”, vbYesNo + vbMsgBoxHelpButton
End Sub

Artı sembolünü ekleyerek iki adet sabit buton elde etmiş olduk.

Aşağıdaki mesaj kutusunu alacağız.

VBA MsgBox - Düğme sabiti - Örnek 2 - Çıktı

Bu şekilde artı işareti ekleyerek birden fazla buton gösterebiliriz.

Örnek 8 – Varsayılan Bir Düğme Ayarlama

Önceki tüm kodlara bakarsak, ilk butonun varsayılan buton olduğunu, yani ilk butonun vurgulandığını görüyoruz.

Örneğin aşağıdaki mesaj kutusuna bakın.

VBA MsgBox - Düğme sabiti - Örnek 2 - Çıktı

Önceki mesaj kutusunda, YES varsayılan düğmedir. Ancak, varsayılan düğmeyi 2 olarak ekleyerek bunu no olarak değiştirebiliriz.

Sub MsgBox_vbYESNO_Default ()
MsgBox “Merhaba, Nasılsınız?”, vbYesNo + vbDefaultButton2
End Sub

Yukarıdaki koda vbDefaultButton2 sabitini ekledik , yani mesaj kutusunun ikinci butonunu aşağıdaki gibi varsayılan yapacak.

VBA MsgBox - Düğme sabiti - Örnek 2 - Çıktı

Benzer şekilde, daha fazla butonumuz olduğunda, bunları varsayılan butonlar yapmak için varsayılan sabit 1, 2, 3 ve 4'ü kullanabiliriz.

Excel VBA MsgBox Simge Sabitleri

Örnek 1 – Bilgi Simgesini Göster

Düğmeleri göstermenin yanı sıra, ilettiğimiz mesajı belirtmek için simgeler de gösterebiliriz. Örneğin, kullanıcılara düğmelerle birlikte bilgi veriyorsak, vbInformation sabitini kullanmamız gerekir.

Sub MsgBox_vbInforamtion ()
MsgBox “Sonraki sayfaya yönlendirileceksiniz”, vbOKCancel + vbInformation
End Sub

Gördüğümüz gibi, OK ve Cancel butonlarına vbInformation sabitini ekledik . Aşağıdaki mesaj kutusunu alacağız.

VBA MsgBox - Simge sabiti - Örnek 1.jpg

Örnek 2 – Kritik Simge

Kritik ikonunu göstermek istiyorsak vbCritical sabitini kullanmamız gerekiyor.

Sub MsgBox_vbCritical()
MsgBox “Sonraki sayfaya yönlendirileceksiniz”, vbOKCancel + vbCritical
End Sub

Bu kritik simgesini gösterecektir.

VBA MsgBox - Simge sabiti - Örnek 2 - çıktı

Örnek 3 – Soru İşareti Simgesi

Soru işaretini simge olarak göstermek için vbQuestion sabitini kullanmamız gerekir .

Sub MsgBox_VbQuestion()
MsgBox “Devam etmek ister misiniz?”, vbYesNo + vbQuestion
End Sub

Bu soru işareti simgesini gösterecektir.

VBA MsgBox - Simge sabiti - Örnek 3 - output.jpg

Örnek 4 – Ünlem Simgesi

Bir ünlem işaretini simge olarak göstermek için vbExclamation sabitini kullanmamız gerekir .

Sub MsgBox_vbExclamation()
MsgBox “Devam etmek ister misiniz?”, vbYesNo + vbExclamation
End Sub

Bu soru işareti simgesini gösterecektir.

VBA MsgBox - Simge sabiti - Örnek 4 - output.jpg

MsgBox'ta Başlık ve İstemi Özelleştirme

VBA MsgBox varsayılan olarak herhangi bir başlık belirtmezsek uygulama adını Microsoft Excel olarak alır. Ancak, başlığı ihtiyaçlarımıza göre değiştirebiliriz.

Sub MsgBox_Title ()
MsgBox “Would you like to continue to the next stage?”, vbYesNo, “Stage 1 of 5”
End Sub

Bu, mesaj kutusunda başlığın aşağıdaki görüntüdeki gibi görüntülenmesini sağlayacaktır.

VBA MsgBox - Başlık ve istem - Çıktı

İki satır göster:

Mesajı birden fazla satırda göstermemiz gereken durumlar olabilir. Bunun için, vbNewLine'ı ve ampersand (&) sembolünü kullanarak iki satırlık mesajları birleştirmemiz gerekir.

Sub MsgBox_Title ()
MsgBox “Would you like to continue to the next stage?” & _
vbNewLine & “Press Yes to Proceed”, vbYesNo, “Stage 1 of 5”
End Sub

Aşağıdaki gibi bir mesaj gösterilecektir.

VBA MsgBox - Başlık ve istem - Mesaj

Mesajı ikinci satırda göstermek için ve (&) sembolünü kullandık ve ardından mesajı ikinci satıra itmek için vbNewLine'ı kullandık.


MsgBox Değerini Bir Değişkene Atama

Değişken değerini bir MsgBox'a atayabileceğimiz gibi, aynı zamanda mesaj kutusunun değerini de değişkene atayabiliriz.

Örneğin aşağıdaki koda bakın.

Sub MsgBox_Variable ()
Dim k As String
k = “Merhaba, Günaydın!!!”
MsgBox k
End Sub

Değişkeni string veri tipinde tanımladık.

Daha sonra değişkene Merhaba, Günaydın!!! değerini atadık.

Benzer şekilde MsgBox istemine k değişken adını girdik .

Artık MsgBox'ta k değişkenine verilen değer gösterilmelidir .

VBA MsgBox - Değişken - Çıktı

MsgBox Tarafından Verilen Değeri Değişkene Ata

Kullanıcıdan butonlar aracılığıyla seçenekleri seçmesi istendiğinde, kullanıcının girdisine göre belirli bir dizi eylem gerçekleştirebiliriz.

Örneğin, EVET'e tıkladıklarında A1 hücresine bir değer girmeleri için kullanıcıdan girdi almamız gerektiğini varsayalım, aksi takdirde herhangi bir değer girmemize gerek kalmayacak.

Aşağıdaki kod aynı şeyin gösterimidir.

Sub MsgBox_Variable_Input ()
Dim User_Input As String
User_Input = MsgBox(“A1 hücresine 'Merhaba' değerini girmek ister misiniz?”, vbYesNo)
Range(“A1”).Value = User_Input
End Sub

Burada User_Input değişkenini string veri tipinde tanımladık .

Daha sonra bu değişken için mesaj kutusunun verdiği değeri yani Evet veya Hayır değerini saklıyoruz.

Daha sonra değişken değerini A1 hücresine kaydediyoruz.

Bu kodu çalıştırdığımızda A1 hücresinde aşağıdaki sonucu alacağız.

VBA MsgBox - değer ata - sonuç

EVET'e tıkladığımızda A1 hücresinde EVET değeri almamız gerekirken, bunun yerine 6 değerini aldık.

Bunun nedeni, vb sabitlerinin metin değerleri değil sayısal değerler döndürecek olmasıdır. Aşağıdaki tablo, döndürdükleri sabit ve sayısal değerleri göstermektedir.

vb SabitDüğme AdıDeğer
vbOkTamam1
vbCancelİptal etmek2
vbAbortİptal etmek3
vbYRetryTekrar dene4
vbIgnoreGörmezden gelmek5
vbYesEvet6
vbNoHAYIR7

EVET'e tıkladığımızdan EVET yerine 6 değerini aldık.

Kullanıcı Girişine Dayalı Eylem Gerçekleştir: Aşağıdaki kod kullanıcıya A1 hücresine Hello değerini ne zaman girmesi gerektiğini soracaktır . Kullanıcıların isterlerse EVET'e, isterlerse HAYIR'a tıklamaları gerekmektedir .

Kullanıcının butondan yapacağı seçime göre A1 hücresine değer ekleme veya eklememe eylemini gerçekleştireceğiz.

Alt MsgBox_Variable_Input()
Dim User_Input As String
User_Input = MsgBox(“A1 hücresine 'Merhaba' değerini girmek ister misiniz?”, vbYesNo)
If User_Input = vbYes Then
Range(“A1”).Value = “Merhaba”
Else
MsgBox “Hayır veya iptal düğmesine tıkladınız”
End If
End Sub

Bu kodu çalıştırdığımızda aşağıdaki mesaj kutusunu alacağız.

VBa msgbox - Kullanıcı Girişi - Sonuç

EVET'e tıkladığımızda A1 hücresine Merhaba değerini alacağız .

Kullanıcı Girişi - Evet

HAYIR'a tıkladığımızda aşağıdaki mesaj kutusuyla karşılaşacağız.

VBa msgbox - kullanıcı Girişi - Hayır

Dikkat Edilmesi Gereken Önemli Noktalar

  • MsgBox VBA'da bir fonksiyondur.
  • VBA MsgBox'ta yalnızca Prompt argümanı zorunludur, diğerleri isteğe bağlı argümanlardır.
  • Varsayılan olarak VBA MsgBox'ta OK sabit butonunu alacağız.
  • MsgBox'a bir değer atadığımızda parantez içindeki değerleri vermemiz gerekiyor.
  • Değişken veri tipi, mesaj kutusunun çıktısıyla aynı olmalıdır.
  • İki veya daha fazla butonu, + sembolü ve hem butonları hem de ikonları birleştirerek birleştirebiliriz.
  • VBA MsgBox butonları sonuç olarak sayısal değerler döndürecektir.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...