TOP

VBA-पाठ 10. डायलॉग विंडो (Dialog boxes)

YouLibreCalc for Excel logo

Excel VBA में डायलॉग बॉक्स (Dialog Boxes) का उपयोग उपयोगकर्ता को जानकारी प्रदर्शित करने के लिए किया जाता है।

MsgBox फ़ंक्शन एक संवाद बॉक्स में एक संदेश प्रदर्शित करता है, उपयोगकर्ता द्वारा एक बटन पर क्लिक करने की प्रतीक्षा करता है, और एक पूर्णांक देता है जो दर्शाता है कि उपयोगकर्ता ने किस बटन पर क्लिक किया है।

उपयोग किया जाने वाला सबसे आम संवाद संदेश बॉक्स है, लेकिन हम इनपुट बॉक्स का भी उपयोग कर सकते हैं।


MsgBox

अब तक, हमने स्क्रीन पर जानकारी प्रदर्शित करने के लिए MsgBox डायलॉग बॉक्स का उपयोग किया है।

Sub delete_B2()
    Range("B2").ClearContents
    MsgBox "The contents of B2 have been deleted !"  '"सेल B2 की सामग्री हटा दी गई है!"
End Sub

इस मामले में MsgBox को केवल एक तर्क के साथ बुलाया जाता है। देखना नीचे दिया गया कोड:

अब हम एक डायलॉग बॉक्स बनाएंगे जो दो निर्देशों के निष्पादित होने से पहले डिलीट करने की पुष्टि मांगेगा। फिर तीन तर्क हैं जिनका हम उपयोग करेंगे:

MsgBox([पाठ], [बटन], [शीर्षक])
  • पाठ: संवाद बॉक्स पाठ
  • Buttons: बटनों का चयन (हाँ, नहीं, रद्द करें, आदि) + अन्य विकल्प
  • Title: संवाद बॉक्स का शीर्षक
  • Sub delete_B2()
    
        If MsgBox("Are you sure that you wish to delete the contents of B2 ?", vbYesNo, "Confirm") = vbYes
        Then
          Range("B2").ClearContents
          MsgBox "The contents of B2 have been deleted !"
        End If
        
    End Sub
    

    परिणाम:

    Private Sub warning(var_text As String)
        MsgBox "Caution : " & var_text & " !"
    End Sub
    
    Sub macro_test()
        If Range("A1") = "" Then
            warning "empty cell"           '"खाली सेल"
        ElseIf Not IsNumeric(Range("A1")) Then
            warning "non-numerical value"  '"गैर-संख्यात्मक मान"
        End If
    End Sub
    

    vbहाँनहीं निर्दिष्ट करता है कि संवाद बटन "Yes" और "No" हैं, और vbहाँ "Yes" बटन का प्रतिनिधित्व करता है:

    If MsgBox("Text", vbYesNo, "Title") = vbYes Then 'यदि yesbl_ बटन दबाया जाता है...
    

    MsgBox में दूसरे तर्क का उपयोग करने के विकल्प

    नियत अंकीय मूल्य विवरण
    vbOKOnly0ok - dialog boxes
    vbOKCancel1ok - dialog boxescancel - dialog boxes
    vbAbortRetryIgnore2abort - dialog boxesretry - dialog boxesignore - dialog boxes
    vbYesNoCancel3yes - dialog boxesno - dialog boxescancel - dialog boxes
    vbYesNo4yes - dialog boxesno - dialog boxes
    vbRetryCancel5retry - dialog boxescancel - dialog boxes
    vbCritical16critical - dialog boxes
    vbQuestion32question - dialog boxes
    vbExclamation48exclamation - dialog boxes
    vbInformation64information - dialog boxes

    MsgBox में दूसरे तर्क का उपयोग करने का उदाहरण

    यहां एक उदाहरण है MsgBox जो लूप में हर बार तब तक प्रदर्शित होता रहेगा जब तक उपयोगकर्ता Yes नहीं दबाता:

    Sub humor()
        Do
            If MsgBox("Do you like the Moonexcel site ?", vbYesNo, "Survey") = vbYes Then
                Exit Do '=> प्रतिक्रिया Yes = हाँ, हम लूप से बाहर निकलते हैं
            End If
        Loop While 1 = 1 '=> अंतहीन लूप
        MsgBox ";-)"
    End Sub
    

    एक नया रिबन प्रदर्शित करने के लिए, आप तर्क 10 के साथ Chr फ़ंक्शन का उपयोग कर सकते हैं, जो रिबन को स्थानांतरित करने के लिए ज़िम्मेदार है, उदाहरण के लिए:

    MsgBox "Example 1" & Chr(10) & "Example 2" & Chr(10) & Chr(10) & "Example 3"
    

    हमें निम्नलिखित परिणाम मिलता है:

    इनपुट बॉक्स

    एक इनपुटबॉक्स उपयोगकर्ता को संवाद बॉक्स में एक मान दर्ज करने के लिए संकेत देता है, उदाहरण के लिए:

    Sub example()
        Dim result As String
       
        result = InputBox("Text ?", "Title") 'वेरिएबल को इनपुटबॉक्स में दर्ज मान निर्दिष्ट किया गया है
       
        If result <> "" Then 'यदि मान कुछ भी है लेकिन "" नहीं है, तो परिणाम प्रदर्शित किया जाएगा
           MsgBox result
        End If
    End Sub
    

    हमें निम्नलिखित परिणाम मिलता है:

    तीसरे तर्क का उपयोग डिफ़ॉल्ट मान सेट करने के लिए किया जा सकता है:

    InputBox("Text ?", "Title", "Default value")
    

    परिणाम इस प्रकार है: