PowerPoint के बारे में बात कर रहे हैं, तो आप का प्रयोग करेंगे एक VBA मैक्रो काम करने के लिए - मुख्य बिंदु है स्रोत प्रारूप को संरक्षित करते हुए अन्य पीपीटी से स्लाइड डालना। यह एक मुश्किल बात है, क्योंकि पीपीटी वीबीए InsertFromFile
विधि का कोई अच्छा उपयोग नहीं है। माइक्रोसॉफ्ट ने हमें अनगिनत 20 घंटे डीबगिंग सत्रों में कठिन तरीके से समझने के लिए अच्छा समय दिया :-) और आपको इसे सही तरीके से करने के लिए बहुत से कोड टाइप करने की आवश्यकता है - संवाद का मैन्युअल रूप से उपयोग करने से कहीं अधिक जटिल, विशेष रूप से यदि आपका स्रोत स्लाइड आपके स्रोत मास्टर स्लाइड से विचलित हो जाता है।
अपने पीपीटी के उनके आकाओं के लिए चिपके रहे हैं, तो आप सुरक्षित रूप से के बीच ">>>>" सभी कोड
Private Sub ImportFromPPT(FileName As String, SlideFrom As Long, SlideTo As Long)
Dim SrcPPT As Presentation, SrcSld As Slide, Idx As Long, SldCnt As Long
Set SrcPPT = Presentations.Open(FileName, , , msoFalse)
SldCnt = SrcPPT.Slides.Count
If SlideFrom > SldCnt Then Exit Sub
If SlideTo > SldCnt Then SlideTo = SldCnt
For Idx = SlideFrom To SlideTo Step 1
Set SrcSld = SrcPPT.Slides(Idx)
SrcSld.Copy
With ActivePresentation.Slides.Paste
.Design = SrcSld.Design
.ColorScheme = SrcSld.ColorScheme
' if slide is not following its master (design, color scheme)
' we must collect all bits & pieces from the slide itself
' >>>>>>>>>>>>>>>>>>>>
If SrcSld.FollowMasterBackground = False Then
.FollowMasterBackground = False
.Background.Fill.Visible = SrcSld.Background.Fill.Visible
.Background.Fill.ForeColor = SrcSld.Background.Fill.ForeColor
.Background.Fill.BackColor = SrcSld.Background.Fill.BackColor
' inspect the FillType object
Select Case SrcSld.Background.Fill.Type
Case Is = msoFillTextured
Select Case SrcSld.Background.Fill.TextureType
Case Is = msoTexturePreset
.Background.Fill.PresetTextured (SrcSld.Background.Fill.PresetTexture)
Case Is = msoTextureUserDefined
' TextureName gives a filename w/o path
' not implemented, see picture handling
End Select
Case Is = msoFillSolid
.Background.Fill.Transparency = 0#
.Background.Fill.Solid
Case Is = msoFillPicture
' picture cannot be copied directly, need to export and re-import slide image
If SrcSld.Shapes.Count > 0 Then SrcSld.Shapes.Range.Visible = False
bMasterShapes = SrcSld.DisplayMasterShapes
SrcSld.DisplayMasterShapes = False
SrcSld.Export SrcPPT.Path & SrcSld.SlideID & ".png", "PNG"
.Background.Fill.UserPicture SrcPPT.Path & SrcSld.SlideID & ".png"
Kill (SrcPPT.Path & SrcSld.SlideID & ".png")
SrcSld.DisplayMasterShapes = bMasterShapes
If SrcSld.Shapes.Count > 0 Then SrcSld.Shapes.Range.Visible = True
Case Is = msoFillPatterned
.Background.Fill.Patterned (SrcSld.Background.Fill.Pattern)
Case Is = msoFillGradient
' inspect gradient type
Select Case SrcSld.Background.Fill.GradientColorType
Case Is = msoGradientTwoColors
.Background.Fill.TwoColorGradient
SrcSld.Background.Fill.GradientStyle , _
SrcSld.Background.Fill.GradientVariant
Case Is = msoGradientPresetColors
.Background.Fill.PresetGradient _
SrcSld.Background.Fill.GradientStyle, _
SrcSld.Background.Fill.GradientVariant, _
SrcSld.Background.Fill.PresetGradientType
Case Is = msoGradientOneColor
.Background.Fill.OneColorGradient _
SrcSld.Background.Fill.GradientStyle, _
SrcSld.Background.Fill.GradientVariant, _
SrcSld.Background.Fill.GradientDegree
End Select
Case Is = msoFillBackground
' Only shapes - we shouldn't come here
End Select
End If
' >>>>>>>>>>>>>>>>>>>>
End With
Next Idx
End Sub
कोड केवल पढ़ने के लिए या पासवर्ड से सुरक्षित fies की जांच नहीं करता छोड़ सकते हैं और इच्छा उन पर दुर्घटनाग्रस्त कलेक्टर फ़ाइल पर खुद को चलाने के लिए भी सावधान रहें। अन्यथा यह काम करना चाहिए। मुझे स्वीकार करना होगा कि मैंने लंबे समय तक कोड की समीक्षा नहीं की है ;-)
धन्यवाद! मुझे इसी की तो तलाश थी। मुझे केवल पुल विधि के लूप में मामूली परिवर्तन करना पड़ा: 'ImportFromPPT SrcDir +" \ "+ SrcFile, 1, 2' ' SrcFile = Dir' – thunderboltz
आह सही ... मैं थ्रेड को अपडेट करना भूल गया। .. माफ़ कीजिये; जैसा कि आप देखते हैं कि यहां थोड़ी सी अमूर्तता है, अगर अगली बार आपको स्लाइड 5-7 खींचने की ज़रूरत है तो आप इसका पुन: उपयोग कर सकते हैं ;-) – MikeD
@thunderboltz यह परिवर्तन मेरे लिए भी आवश्यक था, धन्यवाद! –