どうすればこれを達成できますか?私は常にスライドを追加および削除しているので、設定されたスライドに移動するだけでなく、どのスライドから来たのかを知るためのコードが必要です。
4 に答える
SlideShowWindows(1).View.GotoSlide(SlideShowWindows(1).View.LastSlideViewed.SlideIndex)
私はそれを考え出した。ウェブを閲覧することと少し考えて、私はこれを思いついた:
別のスライドに戻る必要があるスライドを除いて、現在のスライド番号を保存するために、次のモジュールを作成しました。
Public CurrentSlide As Long, PreviousSlide As Long
Public Sub GoToPreviousSlide()
SlideShowWindows(1).View.GoToSlide (PreviousSlide)
End Sub
Public Sub StoreCurrentSlide()
CurrentSlide = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
If CurrentSlide <> 14 Then
'Execute only if the current slide is not a slide that uses this function (because if you store the current slide while in a slide that requires you to go back to another slide, it will overwrite the PurrentSlide value and render this useless). Add more slide numbers to the If statement as you need them.
PreviousSlide = CurrentSlide
Call GoToPreviousSlide
End If
End Sub
もちろん、スライドが変更されるたびにStoreCurrentSlideを呼び出すようにする必要があります。これを自動的に実行するために、別のモジュールを作成しました。
Public Sub OnSlideShowPageChange()
StoreCurrentSlide
End Sub
これで、どこでもボタンを使用して、次を使用して前のスライドに戻ることができます。
Private Sub OK_Click()
GoToPreviousSlide
End Sub
とにかくボタンを使用している場合は、PPTのアクション設定を使用してみませんか。以前に表示したスライドのアクション設定を割り当てます。ボタンをクリックすると、視聴者は現在のスライドの直前に表示していたスライドに戻ります。
VBAは必要ありません。
[Microsoft 365]プレゼンテーション(スライドショー)内で、番号を入力してEnterキーを押します。スライドを編集するときは、ファイル「Macros.pptm」に保存されているこのVBAマクロを使用します。
Sub GoToSlide()
Dim currNum As Integer, newNum As Integer, a As String
currNum = _
CInt(Application.ActiveWindow.View.Slide.SlideIndex)
a = InputBox("Current slide [" & currNum & "]:" & _
vbCrLf & _"Go to slide number:", _
"GoToSlide", currNum)
If (a <> "") Then
newNum = CInt(a)
Application.ActiveWindow.View.GoToSlide (newNum)
End If
End Sub
このマクロを新しいコマンドとしてクイックアクセスリボンに割り当てました。デッキを編集するときは、マクロを見つけるためにファイル「Macro.pptm」も開かなければなりません。マクロは現在のスライド番号を表示し、目的のスライド番号の入力を求めてからそこに移動します(ユーザーがESCを押さない限り)。