वीबीए मैक्रोज़ के साथ वैज्ञानिक नाम फ़ॉर्मेटिंग को बढ़ाना
वर्ड दस्तावेजों में वैज्ञानिक नामों को प्रारूपित करने के लिए वीबीए मैक्रोज़ का उपयोग एक शक्तिशाली उपकरण है, खासकर एक्सेल से डेटा खींचते समय। यह आलेख एक विशिष्ट वीबीए मैक्रो पर चर्चा करता है जो बोल्डिंग, इटैलिकाइज़िंग और वैज्ञानिक नामों के फ़ॉन्ट को बदलने में उत्कृष्टता देता है, लेकिन पाठ को वाक्य मामले में अपडेट करने में संघर्ष करता है।
अन्य स्वरूपण पहलुओं में इसकी प्रभावशीलता के बावजूद, मैक्रो वैज्ञानिक नामों को वांछित वाक्य मामले में परिवर्तित करने में विफल रहता है। यह लेख समस्या और संभावित समाधानों की पड़ताल करता है, जिसका लक्ष्य यह सुनिश्चित करना है कि सभी वैज्ञानिक नाम उचित प्रारूपण मानकों का पालन करें।
आज्ञा | विवरण |
---|---|
Application.FileDialog(msoFileDialogFilePicker) | किसी फ़ाइल का चयन करने के लिए एक फ़ाइल संवाद बॉक्स खोलता है, इस मामले में, एक Excel कार्यपुस्तिका। |
GetObject("", "Excel.Application") | यदि यह पहले से ही चल रहा है, तो एक्सेल का मौजूदा उदाहरण प्राप्त करें। |
CreateObject("Excel.Application") | यदि एक्सेल पहले से नहीं चल रहा है तो उसका एक नया इंस्टेंस बनाता है। |
xlbook.Workbooks.Open(strSource) | चयनित Excel कार्यपुस्तिका खोलता है. |
xlsheet.Range("A1").CurrentRegion.Value | एक्सेल शीट में सेल A1 से शुरू होने वाले वर्तमान क्षेत्र का मान प्राप्त करता है। |
Selection.HomeKey wdStory | चयन को दस्तावेज़ की शुरुआत में ले जाता है। |
Selection.Find.ClearFormatting | खोज ऑपरेशन में किसी भी पिछली फ़ॉर्मेटिंग सेटिंग को साफ़ करता है। |
StrConv(rng.Text, vbProperCase) | श्रेणी के पाठ को उचित केस (शीर्षक केस) में परिवर्तित करता है। |
वैज्ञानिक नाम फ़ॉर्मेटिंग के लिए VBA मैक्रो को समझना
प्रदान किया गया वीबीए मैक्रो एक्सेल शीट से डेटा का उपयोग करके वर्ड दस्तावेज़ में वैज्ञानिक नामों को प्रारूपित करने की प्रक्रिया को स्वचालित करने के लिए डिज़ाइन किया गया है। स्क्रिप्ट एक फ़ाइल डायलॉग बॉक्स खोलकर शुरू होती है (Application.FileDialog(msoFileDialogFilePicker)) उपयोगकर्ता को प्रारूपित किए जाने वाले वैज्ञानिक नामों वाली एक्सेल वर्कबुक का चयन करने की अनुमति देने के लिए। इसके बाद यह एक्सेल के मौजूदा उदाहरण से जुड़ने का प्रयास करता है GetObject("", "Excel.Application") या यदि एक्सेल पहले से नहीं चल रहा है तो एक नया इंस्टेंस बनाता है (CreateObject("Excel.Application")). एक बार कार्यपुस्तिका खुलने के बाद, मैक्रो निर्दिष्ट सीमा से डेटा पढ़ता है (xlsheet.Range("A1").CurrentRegion.Value) और इसे आगे की प्रक्रिया के लिए एक सरणी में संग्रहीत करता है।
सरणी में प्रत्येक वैज्ञानिक नाम के लिए, मैक्रो का उपयोग करता है Selection.Find Word दस्तावेज़ में शब्द खोजने के लिए ऑब्जेक्ट। जब कोई मिलान मिलता है, तो स्क्रिप्ट टेक्स्ट पर विभिन्न स्वरूपण विकल्प लागू करती है, जैसे इटैलिकाइज़िंग (rng.Font.Italic = True), बोल्डिंग (rng.Font.Bold = True), फ़ॉन्ट का रंग बदलना (rng.Font.Color = RGB(200, 187, 0)), और फ़ॉन्ट प्रकार को टाइम्स न्यू रोमन पर सेट करें (rng.Font.Name = "Times New Roman"). इस मैक्रो का एक प्रमुख पहलू टेक्स्ट को वाक्य केस में बदलने का प्रयास करना है rng.Case = wdTitleSentence, जो दुर्भाग्य से इच्छानुसार काम नहीं करता है। स्क्रिप्ट में टेक्स्ट को मैन्युअल रूप से उचित केस में परिवर्तित करके एक वैकल्पिक दृष्टिकोण भी शामिल है StrConv(rng.Text, vbProperCase).
वर्ड में वैज्ञानिक नाम फ़ॉर्मेटिंग को अद्यतन करने के लिए VBA मैक्रो
वर्ड और एक्सेल के लिए विजुअल बेसिक फॉर एप्लीकेशन (वीबीए)।
Sub format_scientific_names()
Dim xlapp As Object
Dim xlbook As Object
Dim xlsheet As Object
Dim myarray As Variant
Dim FD As FileDialog
Dim strSource As String
Dim i As Long, lognum As Long
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Title = "Select the workbook that contains the terms to be italicized"
.Filters.Clear
.Filters.Add "Excel Workbooks", "*.xlsx"
.AllowMultiSelect = False
If .Show = -1 Then
strSource = .SelectedItems(1)
Else
MsgBox "You did not select the workbook that contains the data"
Exit Sub
End If
End With
On Error Resume Next
Set xlapp = GetObject("", "Excel.Application")
If Err Then
bstartApp = True
Set xlapp = CreateObject("Excel.Application")
End If
On Error GoTo 0
Set xlbook = xlapp.Workbooks.Open(strSource)
Set xlsheet = xlbook.Worksheets(1)
myarray = xlsheet.Range("A1").CurrentRegion.Value
If bstartApp = True Then xlapp.Quit
Set xlapp = Nothing
Set xlbook = Nothing
Set xlsheet = Nothing
For i = LBound(myarray) To UBound(myarray)
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(FindText:=myarray(i, 1), Forward:=True, _
MatchWildcards:=True, Wrap:=wdFindStop, MatchCase:=False) = True
Set rng = Selection.Range
Selection.Collapse wdCollapseEnd
rng.Font.Italic = True
rng.Font.Bold = True
rng.Font.Color = RGB(200, 187, 0)
rng.Font.Name = "Times New Roman"
rng.Text = StrConv(rng.Text, vbProperCase)
Loop
End With
Next i
End Sub
एक्सेल डेटा से केस इनहेरिट करने के लिए वीबीए स्क्रिप्ट
एक्सेल और वर्ड एकीकरण के लिए वीबीए
Sub format_scientific_names_inherit_case()
Dim xlapp As Object
Dim xlbook As Object
Dim xlsheet As Object
Dim myarray As Variant
Dim FD As FileDialog
Dim strSource As String
Dim i As Long, lognum As Long
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Title = "Select the workbook that contains the terms to be italicized"
.Filters.Clear
.Filters.Add "Excel Workbooks", "*.xlsx"
.AllowMultiSelect = False
If .Show = -1 Then
strSource = .SelectedItems(1)
Else
MsgBox "You did not select the workbook that contains the data"
Exit Sub
End If
End With
On Error Resume Next
Set xlapp = GetObject("", "Excel.Application")
If Err Then
bstartApp = True
Set xlapp = CreateObject("Excel.Application")
End If
On Error GoTo 0
Set xlbook = xlapp.Workbooks.Open(strSource)
Set xlsheet = xlbook.Worksheets(1)
myarray = xlsheet.Range("A1").CurrentRegion.Value
If bstartApp = True Then xlapp.Quit
Set xlapp = Nothing
Set xlbook = Nothing
Set xlsheet = Nothing
For i = LBound(myarray) To UBound(myarray)
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(FindText:=myarray(i, 1), Forward:=True, _
MatchWildcards:=True, Wrap:=wdFindStop, MatchCase:=False) = True
Set rng = Selection.Range
Selection.Collapse wdCollapseEnd
rng.Text = myarray(i, 1)
rng.Font.Italic = True
rng.Font.Bold = True
rng.Font.Color = RGB(200, 187, 0)
rng.Font.Name = "Times New Roman"
Loop
End With
Next i
End Sub
वर्ड में टेक्स्ट को फ़ॉर्मेट करने के लिए उन्नत VBA तकनीकें
Word दस्तावेज़ों में टेक्स्ट को फ़ॉर्मेट करने के लिए VBA मैक्रोज़ के साथ काम करते समय, सरल फ़ॉर्मेटिंग कमांड से परे विचार करने के लिए कई पहलू हैं। एक महत्वपूर्ण तत्व यह सुनिश्चित करना है कि टेक्स्ट केस को ठीक से संभाला जाए, खासकर जब वैज्ञानिक नामों जैसे विशिष्ट नामकरण से निपटते समय। एक मैक्रो जो एक्सेल से डेटा को एकीकृत करता है और वर्ड में विभिन्न स्वरूपण विकल्पों को लागू करता है, दस्तावेज़ की तैयारी को महत्वपूर्ण रूप से सुव्यवस्थित कर सकता है। हालाँकि, सही टेक्स्ट केस, जैसे वाक्य केस, प्राप्त करना चुनौतीपूर्ण हो सकता है। यह समस्या अक्सर इसलिए उठती है क्योंकि डिफ़ॉल्ट VBA केस बदलने के लिए कार्य करता है, जैसे wdUpperCase और wdLowerCase, हमेशा अधिक सूक्ष्म टेक्स्ट केस समायोजन की आवश्यकताओं को पूरा नहीं करते हैं।
एक अन्य दृष्टिकोण में वर्ड में डेटा स्थानांतरित करने से पहले टेक्स्ट केस को प्रबंधित करने के लिए कस्टम फ़ंक्शन का उपयोग करना या एक्सेल की क्षमताओं का लाभ उठाना शामिल है। उदाहरण के लिए, यह सुनिश्चित करना कि वर्ड मैक्रो चलाने से पहले एक्सेल में वैज्ञानिक नाम सही ढंग से स्वरूपित किए गए हैं, समय बचा सकता है और त्रुटियों को कम कर सकता है। वीबीए StrConv फ़ंक्शन, जो स्ट्रिंग्स को विभिन्न मामलों में परिवर्तित करता है, उपयोगी हो सकता है लेकिन सावधानीपूर्वक कार्यान्वयन की आवश्यकता होती है। इसके अतिरिक्त, यह समझना कि कैसे हेरफेर करना है Selection.Find टेक्स्ट को सटीक रूप से ढूंढने और बदलने के लिए ऑब्जेक्ट का प्रभावी ढंग से उपयोग करना आवश्यक है। त्रुटि प्रबंधन को शामिल करने और यह सुनिश्चित करने से कि मैक्रो विभिन्न पाठ परिदृश्यों को संभाल सकता है, अधिक मजबूत और विश्वसनीय स्वचालन को बढ़ावा मिलेगा।
टेक्स्ट फ़ॉर्मेटिंग के लिए VBA मैक्रोज़ के बारे में सामान्य प्रश्न
- मैं VBA में फ़ाइल संवाद कैसे खोलूँ?
- उपयोग Application.FileDialog(msoFileDialogFilePicker) एक फ़ाइल संवाद खोलने और उपयोगकर्ताओं को एक फ़ाइल चुनने की अनुमति देने के लिए।
- मैं वीबीए में एक्सेल का एक उदाहरण कैसे प्राप्त कर सकता हूं?
- आप उपयोग कर सकते हैं GetObject("", "Excel.Application") एक्सेल का मौजूदा उदाहरण प्राप्त करने के लिए या CreateObject("Excel.Application") एक नया बनाने के लिए.
- मैं वीबीए में एक्सेल वर्कबुक कैसे खोलूं?
- उपयोग xlbook.Workbooks.Open("filePath") निर्दिष्ट फ़ाइल पथ से एक्सेल कार्यपुस्तिका खोलने के लिए।
- एक्सेल से वीबीए में डेटा की एक श्रृंखला को पढ़ने का सबसे अच्छा तरीका क्या है?
- का उपयोग करते हुए xlsheet.Range("A1").CurrentRegion.Value सेल A1 से शुरू होकर शीट के संपूर्ण वर्तमान क्षेत्र को एक सरणी में पढ़ता है।
- मैं VBA में कर्सर को Word दस्तावेज़ की शुरुआत में कैसे ले जा सकता हूँ?
- आदेश Selection.HomeKey wdStory चयन को दस्तावेज़ की शुरुआत में ले जाता है।
- चयन.Find.ClearFormatting VBA में क्या करता है?
- यह खोज ऑपरेशन पर लागू किसी भी पिछली फ़ॉर्मेटिंग सेटिंग्स को साफ़ करता है, जिससे एक नई खोज सुनिश्चित होती है।
- मैं वीबीए में टेक्स्ट को उचित केस में कैसे बदलूं?
- उपयोग StrConv(text, vbProperCase) टेक्स्ट को उचित केस में बदलने का कार्य।
- मैं VBA में टेक्स्ट में एकाधिक फ़ॉर्मेटिंग विकल्प कैसे लागू करूँ?
- आप अलग-अलग फ़ॉर्मेटिंग जैसे इटैलिक, बोल्ड और फ़ॉन्ट रंग का उपयोग करके लागू कर सकते हैं rng.Font.Italic = True, rng.Font.Bold = True, और rng.Font.Color = RGB(200, 187, 0).
निष्कर्ष और अगले चरण
संक्षेप में, Word दस्तावेज़ों में वैज्ञानिक नामों को प्रारूपित करने के लिए VBA मैक्रो बनाने में कई चरण शामिल होते हैं, जिसमें Excel से डेटा पुनर्प्राप्त करना और एकाधिक स्वरूपण विकल्प लागू करना शामिल है। हालाँकि मैक्रो फ़ॉन्ट शैलियों और रंगों को प्रभावी ढंग से बदल सकता है, लेकिन वाक्य केस फ़ॉर्मेटिंग को प्राप्त करना एक चुनौती बनी हुई है। भविष्य के सुधारों में निरंतरता सुनिश्चित करने के लिए एक्सेल में कस्टम फ़ंक्शंस या प्री-फ़ॉर्मेटिंग डेटा शामिल हो सकता है। टेक्स्ट केस के उचित प्रबंधन से वैज्ञानिक दस्तावेजों की पठनीयता और व्यावसायिकता में वृद्धि होगी।