2015-11-30 3 views
0

В настоящее время я пытаюсь выполнить замену всех в имени объекта в PowerPoint. Обычно каждый объект контента называется Content Placeholder #, я уже назвал каждый объект чем-то вроде «PptBobChart1, PptBobScatter1», и теперь мне нужно выполнить замену всех, чтобы изменить каждое из имен объектов на «PptTomChart1, PptTomScatter1». Я знаю, что я могу войти в область выбора по одному, чтобы вручную изменить ее, но есть ли способ сделать все это в VBA?Переименование объекта в PPT с помощью VBA

ответ

0

Вы могли бы попробовать что-то вроде:

Sub renameObj() 
    Dim o As Shape 
    Dim s As Slide 
    For Each s In ActivePresentation.Slides 
     For Each o In s.Shapes 
      o.Name = Replace(o.Name, "Bob", "Tom") 
     Next o 
    Next s 
End Sub 

Надеется, что это помогает!

0

Если вы хотите установить разные имена для типов объектов different01DEC2015, вы можете использовать это:

Option Explicit 

' ============================================================ 
' PowerPoint Macro : RenameOnSlideObjects 
' ============================================================ 
' Purpose : Renames all on-slide objects within a presentation 
' Inputs : Noe 
' Outputs : None 
' Dependencies : None 
' Author : Jamie Garroch of http://youpresent.co.uk/ 
' Date : 01 December 2015 
' ============================================================ 
Public Sub RenameOnSlideObjects() 
    Dim oSld As Slide 
    Dim oShp As Shape 
    For Each oSld In ActivePresentation.Slides 
    For Each oShp In oSld.Shapes 
     With oShp 
     Select Case True 
      Case .Type = msoPlaceholder ' you could then check the placeholder type too 
      .Name = "myPlaceholder" 
      Case .Type = msoTextBox 
      .Name = "myTextBox" 
      Case .Type = msoAutoShape 
      .Name = "myShape" 
      Case .Type = msoChart 
      .Name = "myChart" 
      Case .Type = msoTable 
      .Name = "myTable" 
      Case .Type = msoPicture 
      .Name = "myPicture" 
      Case .Type = msoSmartArt 
      .Name = "mySmartArt" 
      Case .Type = msoGroup ' you could then cycle though each shape in the group 
      .Name = "myGroup" 
     Case Else 
      .Name = "Unspecified Object" 
     End Select 
     End With 
    Next 
    Next 
End Sub 
Смежные вопросы