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