With स्टेटमेंट

With स्टेटमेंट एक ही ऑब्जेक्ट पर कई ऑपरेशन करते समय दोहराव वाले ऑब्जेक्ट संदर्भों को समाप्त करता है। यह आपके VBA कोड को अधिक पठनीय और कुशल बनाता है।

With स्टेटमेंट का उद्देश्य

With स्टेटमेंट के बिना, समान ऑब्जेक्ट को बार-बार संदर्भित करना होता है:

without_with.bas
' With के बिना - दोहराव वाला कोड
Sub WithKeBina()
    Range("A1").Value = "नाम"
    Range("A1").Font.Bold = True
    Range("A1").Font.Size = 14
    Range("A1").Font.Color = RGB(0, 0, 255)
    Range("A1").Interior.Color = RGB(255, 255, 0)
End Sub

With स्टेटमेंट के साथ, कोड बहुत साफ हो जाता है:

with_example.bas
' With के साथ - साफ कोड
Sub WithKeSaath()
    With Range("A1")
        .Value = "नाम"
        .Font.Bold = True
        .Font.Size = 14
        .Font.Color = RGB(0, 0, 255)
        .Interior.Color = RGB(255, 255, 0)
    End With
End Sub

बेसिक सिंटैक्स

With ऑब्जेक्ट
    .प्रॉपर्टी = मूल्य
    .मेथड
End With
チェック
With ब्लॉक के अंदर, डॉट (.) से शुरू करें जो With ऑब्जेक्ट को संदर्भित करता है।

With के लाभ

1. बेहतर पठनीयता

लंबे ऑब्जेक्ट संदर्भों को दोहराने की आवश्यकता नहीं:

readability.bas
Sub PadhneYogyKod()
    With ThisWorkbook.Worksheets("Data").Range("A1:D100")
        .Font.Name = "Arial"
        .Font.Size = 11
        .Borders.LineStyle = xlContinuous
    End With
End Sub

2. बेहतर प्रदर्शन

ऑब्जेक्ट को एक बार मूल्यांकित किया जाता है:

performance.bas
Sub PradarshhanSudhar()
    ' ऑब्जेक्ट केवल एक बार मूल्यांकित होता है
    With Worksheets("Sheet1").Range("A1:Z1000")
        .Value = 0
        .NumberFormat = "#,##0"
        .Font.Bold = True
    End With
End Sub

3. कम टाइपिंग

लंबी ऑब्जेक्ट श्रृंखलाओं के लिए विशेष रूप से उपयोगी।

नेस्टेड With स्टेटमेंट

With स्टेटमेंट को नेस्ट किया जा सकता है:

nested_with.bas
Sub NestedWith()
    With Range("A1")
        .Value = "टेस्ट"

        With .Font
            .Bold = True
            .Size = 14
            .Color = RGB(255, 0, 0)
        End With

        With .Borders
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
    End With
End Sub
チェック

नेस्टेड With में, सबसे अंदर का With लागू होता है। बाहरी With को एक्सेस करने के लिए पूर्ण संदर्भ उपयोग करें।

प्रैक्टिकल उदाहरण

Excel रेंज फॉर्मेटिंग

range_format.bas
Sub RangeFormat()
    With Range("A1:D10")
        ' मूल्य
        .Value = 100

        ' फॉन्ट
        With .Font
            .Name = "Arial"
            .Size = 12
            .Bold = True
        End With

        ' बॉर्डर
        .Borders.LineStyle = xlContinuous

        ' संरेखण
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
End Sub

चार्ट फॉर्मेटिंग

chart_format.bas
Sub ChartFormat()
    With ActiveChart
        .ChartType = xlColumnClustered
        .HasTitle = True
        .ChartTitle.Text = "बिक्री रिपोर्ट"

        With .Legend
            .Position = xlLegendPositionBottom
            .Font.Size = 10
        End With
    End With
End Sub

सावधानियां

1. With के अंदर ऑब्जेक्ट न बदलें

caution_change.bas
Sub SavdhaniParivarthan()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")

    With ws
        .Range("A1").Value = "टेस्ट"
        ' ws को यहां न बदलें - अप्रत्याशित व्यवहार हो सकता है
        .Range("B1").Value = "डेटा"
    End With
End Sub

2. त्रुटि प्रबंधन

error_handling.bas
Sub WithTrutiPrabandhan()
    On Error GoTo ErrorHandler

    With Range("A1")
        .Value = "टेस्ट"
        .Font.Bold = True
    End With

    Exit Sub

ErrorHandler:
    MsgBox "त्रुटि: " & Err.Description
End Sub

सारांश

पहलूविवरण
उद्देश्यदोहराव वाले ऑब्जेक्ट संदर्भ हटाना
सिंटैक्सWith ऑब्जेक्ट ... End With
लाभपठनीयता, प्रदर्शन, कम टाइपिंग
नेस्टिंगसमर्थित
सावधानीWith के अंदर ऑब्जेक्ट न बदलें

With स्टेटमेंट VBA कोड को साफ और कुशल बनाने का एक शक्तिशाली तरीका है।

#VBA #With Statement #कोड अनुकूलन #Excel