Excel'de mesaj kutusu işlevleri nasıl oluşturulur?

VBA hakkında öğrendiğim ilk şey mesaj kutusunun (“msgbox işlevi”) nasıl kullanılacağıydı. Belirli bir mesajı görüntülemek için Excel pencerenizdeki basit bir açılır kutuya benzer. Düşünürseniz iki şekilde kullanabilirsiniz.

  • Kullanıcıya bir mesaj iletin.
  • Kullanıcıdan basit bir yanıt alın.

Çoğu VBA programcısı, makro kodlarında onları daha etkileşimli hale getirmek için kullanır ve eğer bilmiyorsanız, bahse girerim bu makaleyi okuduktan sonra ona aşık olacaksınız.

Uzman İpucu: VBA’ya yeni başlıyorsanız, VBA mesaj kutusu hakkında daha fazla bilgi edinmek iyi bir fikir olabilir.

Bu nedenle, bugün bu makalede Excel’de mesaj kutusu kullanımına ilişkin tüm ayrıntıları ve gerçek dünyadan bazı örnekleri sizlerle paylaşmak istiyorum.

…Başlayalım.

Sözdizimi

=MSGBOX(istem, [düğmeler], [başlık], [yardım dosyası, bağlam])

msgbox vba işlevi sözdizimi

  • istem Bir mesaj olarak görüntülemek için kullanılan dize ifadesi. Maksimum karakter uzunluğu, karakter genişliğine bağlı olarak 1024’tür.
  • [düğmeler] Bu bağımsız değişkeni düğmeleri, simge stilini, düğme kimliğini ve mesaj kutusu modunu belirtmek için kullanabilirsiniz.
  • [title] Bu argümanı mesaj kutunuzun başlık metnini belirtmek için kullanabilirsiniz.
  • [yardım dosyası] Bu argüman, kullanıcı için bir yardım dosyası belirlemenize yardımcı olacaktır. Kullanıcı bu yardım dosyasına yardım butonunu kullanarak erişebilir. Bir yardım dosyası belirtirseniz bağlam numarası belirtmeniz zorunludur.
  • [bağlam] Yardım menüsünden bir yardım konusu atamak için kullanılan sayısal ifade.

Not: Yukarıdaki listede köşeli parantez içindeki bağımsız değişkenler isteğe bağlıdır; bunları belirtmeyi atlayabilirsiniz.

Bir mesaj kutusu nasıl özelleştirilir ve farklı düğmeler nasıl kullanılır?

Bir VBA mesaj kutusunu mevcut tüm seçeneklerle kolayca özelleştirebilirsiniz. Bu seçeneklere bir göz atalım.

#1. vbOKYalnızca

Bu size basit bir Tamam düğmesi verir. Kullanıcı mesajı okuduktan sonra kapatmak için üzerine tıklayabilir. Ayrıca Tamam düğmesine tıklandığında çalıştırmak için bir makro da kullanabilirsiniz.

OKOnly() altında

MsgBox Komut İstemi := “Bu bir MsgBox’tır”, _

Düğmeler:=vbOKOnly, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#2. vbOKİptal

Bu sabit size bir Tamam ve iptal düğmesi verir. Kullanıcının artık devam etmek için Tamam’a basmak veya çıkmak için iptal etmek için iki seçeneği vardır.

OKCancel() altında

MsgBox istemi:= »İyi misin? », _

Düğmeler:=vbOKCancel, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#3. vbAbortYeniden DeneYoksay

Bu, Hakkında, Yeniden Dene ve Atla için üç düğme görüntülemenize olanak tanır. Kullanıcı işlemi iptal edebilir, yeniden deneyebilir veya göz ardı edebilir.

OKCancel() altında

MsgBox istemi:= »İyi misin? », _

Düğmeler:=vbOKCancel, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#4. vbEvetHayırİptal

Bu sabit Evet, Hayır ve İptal için üç düğme görüntüler. Kullanıcı kabul edip devam etmek için Evet’i, reddetmek için Hayır’ı veya mesaj kutusunu kapatmak için iptal edebilir.

YesNoCancel() altında

MsgBox Prompt := “Artık üç düğmeniz var”, _

Düğmeler:=vbYesNoCancel, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#5. vbEvetHayır

Bu sabit, Evet ve Hayır için iki düğme görüntüler. Kullanıcı kabul etmek ve devam etmek için Evet’e veya reddetmek için Hayır’a tıklayabilir.

EvetHayır() altında

MsgBox Prompt := “Artık iki butonunuz var”, _

Düğmeler:=vbEvetHayır, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#6. vbYeniden Deneİptal

Şimdi iki düğme gösteriliyor; yeniden dene ve iptal et. Kullanıcıdan işlemi yeniden denemesini veya iptal etmesini istemek için bunu kullanabilirsiniz.

Sub RetryCancel()MsgBox Prompt:=”Lütfen tekrar deneyin”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub

#7. vbİnceleme

Bu sabit, mesaj kutusunda mesajın kritik olduğunu belirten bir simge görüntüler.

Subkritik()

MsgBox Komut İstemi := “Bu kritik”, _

Düğmeler:=vbCritical, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#8. vbSoru

Bu sabit kullanıcıya bir soru sorulduğunda kullanılabilir.

Alt Soru()

MsgBox Komut İstemi := »Şimdi ne yapmalı? », _

Düğmeler:=vbSoru, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#9. vbÜnlem

Bu sabit, mesajla birlikte bir ünlem simgesi görüntüleyecektir.

Ünlem Altında()

MsgBox Komut İstemi := »Şimdi ne yapmalı? », _

Düğmeler:=vbÜnlem, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#on. vbBilgi

Mesajın bilgi olduğunu belirten bir simge görüntülenecektir.

Sub Information()MsgBox Prompt:=”Şimdi ne yapmalı?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub

#11. vbDefaultButton1

Mesaj kutunuzdaki ilk düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.

Sub DefaultButton1()MsgBox Prompt:=”Button1 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub

#12. vbDefaultButton2

Mesaj kutunuzdaki ikinci düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.

Sub DefaultButton2()MsgBox Prompt:=”Button2 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub

#13. vbDefaultButton3

Mesaj kutunuzdaki üçüncü düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.

Sub DefaultButton3()MsgBox Prompt:=”Button3 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub

#14. vbDefaultButton4

Mesaj kutunuzdaki dördüncü düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.

Sub DefaultButton4()MsgBox Prompt:=”Button4 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub

#15. vbApplicationModal

Bu sabit uygulamayı (Excel) askıya alacaktır, kullanıcının uygulamayı kullanabilmesi için msgbox’a yanıt vermesi gerekir.

OKOnly() altında

MsgBox Komut İstemi := “Bu bir MsgBox’tır”, _

Düğmeler:=vbOKOnly, _

Başlık: = “Posta Kutusu”, _

Altyazı bitişi

#16. vbSystemModal

Bu sabit işletim sisteminizdeki tüm uygulamaları askıya alacaktır, kullanıcının öncelikle mesaj kutusuna yanıt vermesi gerekir.

Sub ApplicationModal()MsgBox Prompt := »Bu uygulama modelidir», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub

#17. vbMsgBoxYardımDüğmesi

Posta kutunuza bir yardım düğmesi eklemek için bu sabiti kullanın. Yardım düğmesini kullanmak için bir yardım dosyası ve bağlam numarası ekleyebilirsiniz.

Sub HelpButton()MsgBox Prompt:=”Yardım Düğmesini Kullan”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub

Kullanıcı yardım düğmesine tıkladığında bir yardım menüsü açılır.

#18. vbMsgBoxSetÖn Plan

Bu sabit, mesaj kutusu pencerenizi ön plan penceresi yapmanıza yardımcı olacaktır.

Sub SetForeground()MsgBox Prompt:=”Bu MsgBox ön plandadır”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub

#19. vbMsgBoxRight

Metin bu sabit kullanılarak sağa hizalanacaktır.

MsgBoxRight() altında

MsgBox Prompt := “Metin sağda”, _

Düğmeler:=vbOK + vbMsgBoxRight, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

#20. vbMsgBoxRtlReading

Bu sabiti kullanarak mesaj kutusu sağa dönecektir. Bu sabit öncelikle İbranice ve Arapça sistemler için tasarlanmıştır.

MsgBoxRtlRead() altında

MsgBox Prompt := “Bu kutu ters çevrildi”, _

Düğmeler:=vbOK + vbMsgBoxRtlRead, _

Başlık: = “Posta Kutusu”

Altyazı bitişi

Dönüş değerleri

Bir kullanıcı düğmelerden birine tıklayarak mesaj kutusuna her yanıt verdiğinde bir sayı oluşturulur. Bu, kullanıcının hangi düğmeyi tıkladığını belirlemenize yardımcı olacaktır.

Devamlı
Değer
Tanım
vbOK
1
ELBETTE
vbİptal
2
İptal etmek
vbİptal
3
Kürtaj
vbTekrar dene
4
Tekrar başla
vbAtla
5
Görmezden gelmek
vb Evet
6
Evet
vbHayır
7
HAYIR

Excel’de VBA Mesaj Kutusu İşlevini Kullanmanın Gerçek Dünya Örnekleri

Burada gerçek hayattaki bazı VBA mesaj kutusu örneklerini listeledim ve bu örneklerin size onu kullanmanız için ilham vereceğinden eminim.

#1. VBA MsgBox ile makro çalıştırma

Artık msgbox fonksiyonunun yardımıyla, bir makroyu çalıştırmadan önce kullanıcıya soru sorabilirsiniz. Anlamak için aşağıdaki makroya bakalım.

SaveThis() altında

Tamsayı Olarak Loş Sonuç

Sonuç = MsgBox(“Bu dosyayı kaydetmek istiyor musunuz?”, vbOKCancel)

Sonuç = vbOK ise

ActiveWorkbook.Save

Altyazı bitişi

vba msgbox ile çalışma kitabını kaydet

Kullanıcıdan çalışma kitabını kaydetmesini isteyebilirsiniz ve kullanıcı Tamam düğmesini tıklatırsa makro kodu çalışma kitabını kaydedecektir.

#2. Mesaj kutusuna tablo ekleme

Mesaj kutusuna tablo halinde veri girmek için vbTab’ı kullanabilirsiniz. Bu örnekte tablo A1 hücresinden başlamaktadır.

AddToMsgBox() altında

Dize Olarak Mesajı Karart

int olarak dim r

int olarak c’yi kıs

rc’yi int olarak kıs

CC’yi int olarak kıs

myRows’u Aralık Olarak Dimle

myColumns’ı Aralık Olarak Karart

Mesaj = “”

MyRows = Aralık’ı Ayarla(“A:A”)

myColumns’u Ayarla = Aralık(“1:1”)

rc = Application.CountA(myRows)

cc = Application.CountA(myColumns)

r = 1’den rc’ye için c = 1’den cc’ye

Mesaj = Mesaj ve Hücreler(r, c).Metin

Eğer c <= cc ise O zaman

Mesaj = Mesaj & vbTab

sonraki cMsg = Mesaj & vbCrLf

Sonraki r

Mesaj Kutusu Mesaj

Altyazı bitişi

#3. Bir dosyayı açarken mesaj kutusunu göster

Aşağıdaki makroya bakarsanız, çalışma kitabı açıldığında görüntülenecek bir mesaj oluşturmak için auto_open’ı kullandım.

auto_open() altında

MsgBox “Exceladvisor’a hoş geldiniz & Bu dosyayı indirdiğiniz için teşekkür ederiz” _

+ vbNewLine + vbNewLine + “Burada MsgBox fonksiyonunun detaylı açıklamasını bulacaksınız. » _

+ vbNewLine + vbNewLine + “Ve diğer harika şeylere de göz atmayı unutmayın. »

Altyazı bitişi

Paket servis

  1. Yardım düğmesini dördüncü düğme olarak kullanmazsanız, mesaj kutusuna dört düğme ekleyemezsiniz.
  2. Mesaj kutunuza yardım dosyası oluşturmak için aşağıdaki örnek dosyaya başvurabilirsiniz.

Örnek dosya

Bu konuda daha fazla bilgi edinmek için bu örnek dosyayı buradan indirin .

Çözüm

Mesaj kutusu yalnızca mesajı iletmenize yardımcı olmakla kalmaz, aynı zamanda kullanıcı üzerinde yaratıcı bir izlenim bırakır. Onlara mesaj gönderebilir ve basit bir yanıt alabilirsiniz.

Ve dediğim gibi, eğer VBA’da yeniyseniz mesaj kutusunun nasıl kullanılacağını öğrenmek en iyi şeylerden biridir. Umarım bu makale VBA’da uzmanlaşma hayalinize yaklaşmanıza yardımcı olmuştur, ama şimdi bana bir şey söyleyin.

MsgBox fonksiyonunun VBA’daki en havalı şeylerden biri olduğunu mu düşünüyorsunuz?

Görüşlerinizi yorum kısmında benimle paylaşmayı unutmayın, sizden haber almayı çok isterim ve bu ipucunu arkadaşlarınızla paylaşmayı unutmayın.

VBA hakkında daha fazla bilgi edinin

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir