簡體   English   中英

VBA代碼,用於為幻燈片提供一個常量名稱

[英]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

如您SlideIndexSlideIndexSlideNumberSlideIDName都不能用來標識復制的幻燈片。

您可以使用特征形狀的“替代文本”來識別幻燈片:
只需右鍵單擊形狀並編輯其替代文本即可。

幻燈片注釋也可能有助於識別幻燈片。

以下將一些幻燈片信息打印到調試窗口:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM