2012-08-16 94 views
8

सारांश के माध्यम से एक फॉर्म एमएस-शब्द वीबीए/सबसे प्रभावी बुद्धिमान नेविगेशन भरना सारांश: मेरी कंपनी ग्राहकों को पत्र भेजती है और चाहता है कि मैं एक अलग-अलग टेक्स्ट फॉर्म फ़ील्ड भरने के लिए मैक्रो लिखूं शब्द दस्तावेज़ बहुत अलग मात्रा में भेजे गए विभिन्न अक्षरों के बीच बदलते हैं। मैं एक्सेल में मैक्रोज़ किया है, लेकिन इस एमएस-शब्द मैक्रो के साथ मेरी पहली मुठभेड़ हैवर्ड

समस्या: मैं एमएस-शब्द के माध्यम से प्रभावी, बुद्धिमान नेविगेशन पाने के बहुत मेहनत करनी पड़ी है। मुझे इस लेख को moving in different directions के बारे में पता चला जो वास्तव में तीर कुंजी के समान है। शब्द दस्तावेज़ नेविगेट करने के सर्वोत्तम तरीके में कुछ अंतर्दृष्टि प्राप्त करने की उम्मीद कर रहा था। उदाहरण के लिए, क्या मुझे सही 1 स्थान पर जाने का लूप करना चाहिए जब तक कि मुझे कुछ अर्थपूर्ण न हो या क्या कोई और प्रभावी तरीका हो?

प्रश्न: क्या एक चर में एक विशिष्ट रूप स्थान को स्टोर करना संभव है या क्या एमएस-शब्द में कोई समन्वय प्रणाली नहीं है?

अग्रिम धन्यवाद!

+3

+ 1 एक अच्छी तरह से समझाया गया प्रश्न के लिए। शब्द में आप अपने दस्तावेज़ के चारों ओर नेविगेट करने के लिए 'फिंड' या 'लूप्स' या 'गोटो' का उपयोग कर सकते हैं। यदि आपके पास फ़ील्ड फ़ील्ड हैं तो आपको लूप की आवश्यकता नहीं है। मैं उत्सुक हूं कि आप एक चर में स्थान को स्टोर करने के लिए क्यों चाहते हैं? आप सीधे उनके नाम का उपयोग कर सामग्री नियंत्रण के साथ काम कर सकते हैं। –

+0

@ सिद्धार्थ रूट मैंने सोचा कि शायद मैं नाम से घटकों को संदर्भित कर सकता हूं, लेकिन इसके लिए वाक्यविन्यास सुनिश्चित नहीं था। हालांकि, एक चर में निर्देशांक संग्रहीत करने के बारे में मेरी जिज्ञासा इस सवाल के लिए पूरी तरह से प्रासंगिक नहीं थी हालांकि यह सहायक हो सकता है –

+1

यहां एक बहुत ही बुनियादी उदाहरण है: http: // stackoverflow।कॉम/प्रश्न/10823874/साथ-एक-शब्द-सामग्री नियंत्रण-डेटपिकर-कैसे-करें-i-get-the-value/10824117 # 10824117 –

उत्तर

5

वर्ड - कंटेंट कंट्रोल, "लीगेसी फॉर्म फ़ील्ड" और एक्टिवएक्स फॉर्म फ़ील्ड्स के हाल के विंडोज संस्करण में कम से कम तीन प्रकार के फॉर्म फ़ील्ड हैं। मान लीजिए कि आप लीगेसी फॉर्म फ़ील्ड्स से निपट रहे हैं, आपको बुकमार्क नाम का उपयोग करके फॉर्मफिल्ड्स संग्रह को अनुक्रमणित करने में सक्षम होना चाहिए, फिर उपयोग करें, उदा।

ActiveDocument.FormFields("Text1").Result = "mytextformfieldresult" 

ActiveDocument.FormFields("DropDown1").Result = "mydropdownformfieldresult" 

ActiveDocument.FormFields("Check1").Checkbox.Value = True 
+0

सरल और मैंने जो किया वह किया। –

2

आपको उस दस्तावेज़ में विभिन्न स्थानों पर बुकमार्क बनाने में सक्षम होना चाहिए जिन्हें आपको जाना है। आधुनिक शब्द में, यह "लिंक" समूह में "सम्मिलित करें" टैब पर है।

ActiveDocument.Bookmarks("myBookmark").Range.InsertBefore "Inserted Text" 

यह MVP site तकनीक पर और अधिक डेटा है: तो फिर आप बुकमार्क VBA से उन्हें में कोड की इस तरह के साथ पहुँच सकते हैं और पाठ सम्मिलित कर सकते हैं। इसके अलावा, MSDN में बुकमार्क ऑब्जेक्ट्स पर कुछ डेटा है।

+0

यह वास्तव में सहायक था। किसी और ने इस दस्तावेज़ को फॉर्म फ़ील्ड के साथ बनाया है और प्रत्येक फॉर्म फ़ील्ड में टेक्स्ट 1, टेक्स्ट 2, टेक्स्ट 3 ... आदि के तहत इसके लिए बुकमार्क किया गया है। मैं इन बुकमार्कों को देखने और संदर्भित करने जा रहा हूं (या संभवतः सिद्धार्थ के नाम से नियंत्रण)। मैं आपको बता दूंगा कि मैं किसके साथ आया हूं। धन्यवाद dsolimano –

7

सामग्री नियंत्रण के साथ काम करने के लिए, आपको यह सुनिश्चित करना होगा कि आपने नियंत्रण के Title को सेट किया है। यदि आप चाहें तो Tag भी सेट कर सकते हैं। स्नैपशॉट

enter image description here

देखें और फिर आप सामग्री नियंत्रण को अपडेट करने या फिर से प्राप्त यह मूल्य

Sub Sample() 
    Dim cc As ContentControl 

    For Each cc In ActiveDocument.ContentControls 
     If cc.Title = "MyTextBox1" Then 
      cc.Range.Text = "Hello World!" 
      Exit For 
     End If 
    Next cc 
End Sub 

है जब आप कोड को चलाने के लिए इस कोड का उपयोग कर सकते हैं, तो यह

enter image description here लग रहा है

नियंत्रण का पाठ प्राप्त करने के लिए आप Debug.Print cc.Range.text

का उपयोग कर सकते हैं
+0

आपकी मदद और प्रयास के लिए धन्यवाद, अच्छा उदाहरण –

+0

मैंने वास्तव में इस कोड का उपयोग किया क्योंकि मुझे एक अलग अक्षर दस्तावेज़ मिला जो फॉर्म फ़ील्ड के बजाय सामग्री नियंत्रण का उपयोग करता था। धन्यवाद: पी –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^