2009-06-08 8 views
5

मैं एक PowerPoint TextRange में कुछ पाठ सम्मिलित करने के लिए VBA का उपयोग करने की कोशिश कर रहा हूँ, मैं कुछ इस तरह का उपयोग करें:PowerPoint पाठ के लिए फ़ॉन्ट स्वरूपण लागू प्रोग्राम के

ActiveWindow.Selection.SlideRange.Shapes("rec1").TextFrame.TextRange.Text = "Hi" 

हालांकि, मैं समझ नहीं कैसे बोल्ड लागू करने के लिए , इटालिक और प्रोग्रामलाइन रूप से रेखांकित (मुझे एक RichText संपत्ति या कुछ समान नहीं दिख रहा है)।

मेरे पास बोल्ड, इटैलिक और रेखांकित टेक्स्ट के साथ कुछ सरल HTML टेक्स्ट है जो मैं कन्वर्ट करना चाहता हूं।

क्या कोई यह जानता है कि यह कैसे करें?

+0

मुझे लगता है कि मैंने नीचे दिए गए मेरे संपादित उत्तर में आपकी सभी चिंताओं को संबोधित किया है। –

+0

मेरी स्क्रिप्ट में काम करने के लिए अपना उदाहरण कैसे प्राप्त करें, यह जानने का प्रयास कर रहा है। मुझे लगता है कि (प्रारंभ: = 2, लंबाई: = 3) वीबीस्क्रिप्ट को फेंक रहा है, हालांकि यह वीबीए में काम करता प्रतीत होता है (मेरी गलती - निर्दिष्ट होना चाहिए कि मैं वीबीस्क्रिप्ट का उपयोग कर रहा था)। ऐसा लगता है कि इसे काम करना चाहिए, हालांकि क्या दर्द है - मेरी इच्छा है कि उन्होंने इससे बेहतर तरीके से कार्यान्वित किया। एक बार वापस पोस्ट करेंगे जब मैं इसे आवश्यकतानुसार काम करने में सक्षम हूं। धन्यवाद - – OneNerd

+0

मैंने आपकी पोस्ट को प्रतिबिंबित करने के लिए प्रतिबिंबित किया है कि आप VBScript का उपयोग कर रहे हैं। मुझे यह जानने में दिलचस्पी है कि आप इस समस्या को कैसे हल करते हैं। –

उत्तर

7

यह आसानी से TextRange के Characters, Words, Sentences, Runs और Paragraphs वस्तुओं का उपयोग करके पूरा किया जाता है और फिर इसे स्थापित करने के लिए बोल्ड Font वस्तु है, रेखांकन और इटैलिक (अन्य संपत्तियों के बीच)। उदाहरण के लिए:

Sub setTextDetails() 
    Dim tr As TextRange 
    Set tr = ActiveWindow.Selection.SlideRange.Shapes(1).TextFrame.TextRange 
     With tr 
      .Text = "Hi There Buddy!" 
      .Words(1).Font.Bold = msoTrue 
      .Runs(1).Font.Italic = msoTrue 
      .Paragraphs(1).Font.Underline = msoTrue 
     End With 
End Sub 
4

TextRange object पर MSDN's documentation पर देखने का प्रयास करें। इसमें TextRange ऑब्जेक्ट के फ़ॉन्ट गुणों का उपयोग करने के नमूने शामिल हैं।

संपादित करें: आप प्रोग्राम के रूप में इस तरह से बोल्ड और इटैलिक जैसी चीजों का उपयोग कर सकते हैं:

TextRange.Font.Bold = msoTrue 

संपादित: ऐसे कई तरीके है जिसके द्वारा आप एक पाठ रेंज में केवल कुछ पाठ का चयन कर सकते हैं। निम्नलिखित देखें:

this link से sames के अनुसार, आप इन तरीकों में से एक का उपयोग कर पाठ का एक भाग का चयन कर सकते हैं और प्रोग्राम प्रोग्रामिक रूप से सेट करें। उदाहरण के लिए:

Application.ActiveDocument.Pages(1).Shapes(2) _ 
.TextFrame.TextRange.Words(Start:=2, Length:=3) _ 
.Font.Bold = True 

वह उदाहरण शब्द विधि लिंक से लिया गया था।

+1

जहां तक ​​मैं कह सकता हूं, जो टेक्स्ट टेक्स्ट के अंदर अलग-अलग शब्दों को नहीं, संपूर्ण टेक्स्ट रेंज को संबोधित करता है। – OneNerd

3

उपरोक्त उत्तर के अतिरिक्त, आपको उन वस्तुओं को नाम देने का प्रयास करना चाहिए जिन्हें आप बदल रहे हैं, क्योंकि उन्हें प्रेजेंटेशन के बीच में चुनने से PowerPoint कार्य विचित्र रूप से हो सकता है। एक नया टेक्स्टरेंज ऑब्जेक्ट बनाएं और इसे इस तरह सेट करें।

dim mytextrange As TextRange 
Set mytextrange = ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange 
mytextrange.Words... 
+0

हाँ - मैं पहले से ही ऐसा करता हूं (वस्तुओं के साथ काम करना आसान बनाता है)। धन्यवाद - – OneNerd