2011-01-27 145 views
3

我一直努力讓自己在跳轉到名爲另一個幻燈片的幻燈片上的按鈕。我希望能夠像做activeslide.view.slide(「菜單滑動」)是否可以使用VBA跳轉到特定的PowerPoint幻燈片?

這並不工作,但我認爲這樣的事情應該...任何幫助將是巨大的!

+1

你可以做到這一點沒有任何VBA,它被稱爲動作/觸發。 – Stan 2011-01-27 16:30:26

+0

當我讀它,會觸發幻燈片上,而不是幻燈片本身上動畫對象唯一的工作。 – Randy 2011-01-27 19:45:23

回答

4

試試這個代碼

功能通過將名稱

Function GetSlideIndex(Slide As String) As Integer 
    Dim retVal As Integer 
    retVal = 0 
    For i = 1 To ActivePresentation.Slides.Count 
     If ActivePresentation.Slides(i).Name = Slide Then 
      retVal = i 
      Exit For 
     End If 
    Next 
    GetSlideIndex = retVal 
End Function 

這裏使用的CommandButton導航到幻燈片

Private Sub CommandButton1_Click() 
    SlideShowWindows(1).View.GotoSlide GetSlideIndex("Slide2"), 1 
End Sub 
5

率先拿到幻燈片索引,將需要實際命名您的幻燈片。幻燈片的「.Name」屬性與大綱中的名稱不同並且沒有與其名稱相關聯。我只是這樣說,因爲很多人沒有意識到這一點。您必須通過VBA設置此屬性。如果你不這樣做,你可以得到一些意想不到的結果。幻燈片會將您的幻燈片命名爲「幻燈片」,因此,如果您將幻燈片插入演示文稿的中間位置,則可以使用多張幻燈片並使用相同的名稱。如果你正在尋找一個特別命名的幻燈片,並沒有改名的幻燈片,PowerPoint將返回第一個「幻燈片#​​」發現你通過幻燈片集使用週期循環什麼。如果您編輯演示文稿並移動幻燈片,這會給您帶來很多麻煩。我建議重新命名,你知道你將要在以後鏈接到任何幻燈片(或寫東西會遍歷整個幻燈片收集和每張幻燈片的「請將.Name」屬性更改其名稱1對象的內容)。

下面是一些代碼來重新命名當前幻燈片

Sub ChangeSlideName() 

    Dim NewName As String 
    Dim ActiveSlide As Slide 

    Set ActiveSlide = ActiveWindow.View.Slide 

    NewName = InputBox("Enter new slide name for slide " & _ 
       ActiveSlide.SlideIndex, "New Slide Name", ActiveSlide.Name) 

    If NewName = "" Then 

     Exit Sub 

    End If 

    ActiveSlide.Name = NewName 

End Sub 


下面是一些代碼來獲取幻燈片的索引號。它的工作方式與其他答案相同,只是更直接一點。

Function GetSlideIndex(SlideName As String) 

    For Each Slide In ActivePresentation.Slides 

     If Slide.Name = SlideName Then 

      GetSlideIndex = Slide.SlideIndex 
      Exit Function 

     End If 

    Next 

End Function 


這裏是實際上將送你到你的幻燈片

Sub MoveToSlide() 

    SlideShowWindows(1).View.GotoSlide GetSlideIndex("YourSlideName") 

End Sub 

編輯補充子:該MoveToSlide子可以添加到鼠標點擊或鼠標懸停於任何物體的動作,不只是命令按鈕。爲此,請選擇要使用的對象,然後轉到插入 - >鏈接 - >操作,然後選擇運行宏。

相關問題