TPE
Tavvafi@gmail.com |
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
کدهایی برای کار کردن با هر Shape در یک اسلاید
کارکردن با اسلایدی در یم پرزنتیشن
و کارکردن با پرزنتیشنی در فولدری
و کدی برای کارکردن با تکست باکسی در یک پرزنتیشن
Sub EveryTextBoxOnSlide() ' Performs some operation on every shape that contains text on every slide ' (doesn't affect charts, tables, etc) Dim oSh As Shape Dim oSl As Slide On Error GoTo ErrorHandler For Each oSl In ActivePresentation.Slides For Each oSh In oSl.Shapes With oSh If .HasTextFrame Then If .TextFrame.HasText Then ' If font size is mixed, don't touch the font size If .TextFrame.TextRange.Font.Size > 0 Then .TextFrame.TextRange.Font.Size = .TextFrame.TextRange.Font.Size + 2 End If End If End If End With Next ' shape Next ' slide NormalExit: Exit Sub ErrorHandler: Resume Next End Sub Sub EverySlideInPresentation() ' Performs some operation on every slide in the currently active presentation Dim oSl As Slide For Each oSl In ActivePresentation.Slides ' for example, show its name and index number: Debug.Print oSl.Name & vbTab & oSl.SlideIndex ' or do something with every shape on the slide: Call EveryShapeOnSlide(oSl) Next oSl End Sub Sub EveryPresentationInFolder() ' Performs some operation on every presentation file in a folder Dim sFolder As String ' Full path to folder we'll examine Dim sFileSpec As String ' Filespec, e.g. *.PPT Dim sFileName As String ' Name of a file in the folder Dim oPres As Presentation ' Edit this: sFolder = "C:\Files\" ' must end with a \ character sFileSpec = "*.PPT" ' Get the first filename that matches the spec: sFileName = Dir$(sFolder & sFileSpec) While sFileName <> "" ' do something with the presentation ... ' Open it Set oPres = Presentations.Open(sFolder & sFileName, msoFalse) ' Display the number of slides in it Debug.Print oPres.Slides.Count ' Or you could do something to every slide in the presentation: Call EverySlideInPresentation ' close the presentation oPres.Close ' release the reference Set oPres = Nothing ' Once done, see if there's another presentation that meets our spec ' then around the loop again sFileName = Dir() Wend End Sub Sub EveryShapeOnSlide(oSl as Slide) ' Performs some operation on every shape on a slide Dim oSh As Shape On Error GoTo ErrorHandler For Each oSh In oSl.Shapes ' Show the name of the shape: Debug.Print oSh.Name ' or whatever else you want to do ' for example, ungroup/regroup certain types of shapes: Select Case oSh.Type Case Is = msoEmbeddedOLEObject, msoLinkedOLEObject, msoPicture ' Attempting to ungroup a bitmap image causes an error ' but no harm is done; we'll ignore it. On Error Resume Next oSh.Ungroup.Group On Error GoTo ErrorHandler Case Else ' ignore other shape types End Select Next oSh NormalExit: Exit Sub ErrorHandler: Resume Next