[英]VBA code for giving slides a constant name
我正在努力減少使某些幻燈片(我們稱其為SlideXYZ)為最新狀態所需的精力。 SlideXYZ是重要的內容幻燈片,可以在多個幻燈片組中找到。 我最初創建的幻燈片對象在“源幻燈片”中進行更改后會自動更新。 但是,不幸的是,幻燈片對象不包含動畫(它們只是實際幻燈片的快照)。 我現在正在嘗試編寫一個VBA腳本,該腳本將使用較新版本的SlideXYZ搜索並替換每個卡座中的SlideXYZ。 但是,幻燈片編號是動態的(在上面添加新幻燈片時,它會更改)。 我需要對SlideXYZ的靜態,恆定引用。
我考慮過一次將SlideXYZ復制到所有演示文稿中,然后在需要更新時使用Slide.Name屬性查找其所有實例。
但是,每次將幻燈片粘貼到新演示文稿中時,PowerPoint似乎都會重新分配Slide.Name。 我需要一個不會更改的參考,以便可以找到並替換SlideXYZ。
@Asger的建議可以起作用,但是更一致的方法(IMO)是使用標簽。 幻燈片上的任何演示文稿,幻燈片或形狀可以帶有一個或多個以標簽形式附加的文本。
例如:
ActivePresentation.Slides(1).Tags.Add "SlideIdentifier", "Bob"
將在當前演示文稿的幻燈片#1上創建一個名為SlideIdentifier的標簽,其值為Bob。 這些標簽將隨幻燈片一起移動,無論它走到哪里。
我維護的PowerPoint常見問題解答上的此頁面包含有關使用標簽的更多信息:
http://www.pptfaq.com/FAQ00815_Working_with_Tags_-and_a_bit_about_Functions-.htm
如您SlideIndex
: SlideIndex
, SlideNumber
, SlideID
或Name
都不能用來標識復制的幻燈片。
您可以使用特征形狀的“替代文本”來識別幻燈片:
只需右鍵單擊形狀並編輯其替代文本即可。
幻燈片注釋也可能有助於識別幻燈片。
以下將一些幻燈片信息打印到調試窗口:
Private Sub IdentifyMySlide()
Dim myslide As PowerPoint.Slide
For Each myslide In ActivePresentation.Slides
Debug.Print "Index: " & myslide.SlideIndex,
Debug.Print "Number: " & myslide.SlideNumber,
Debug.Print "ID: " & myslide.SlideID,
Debug.Print "Name: " & myslide.Name,
If myslide.Shapes.Count > 0 Then
Debug.Print "Alternative ShapeText: " & myslide.Shapes(1).AlternativeText,
End If
If myslide.HasNotesPage Then
If myslide.NotesPage(1).Shapes.Count > 0 Then
If myslide.NotesPage(1).Shapes(1).HasTextFrame Then
Debug.Print "Notes: " & Left(myslide.NotesPage(1).Shapes(1).TextFrame.TextRange.Text, 10)
Else
Debug.Print
End If
Else
Debug.Print
End If
Else
Debug.Print
End If
Next myslide
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.