11

コンテキスト: C# の PowerPoint スライドには、Slide.Name プロパティがあります (通常、任意の文字列値が含まれます)。私の C# アプリケーションでは、このプロパティを使用してスライドを識別したいと考えています (スライドの順序は信頼できません)。

質問: PowerPoint アプリケーションで Slide.Name プロパティを手動で設定するにはどうすればよいですか?

私の問題は、「<a href="https://stackoverflow.com/questions/3074209/how-to-name-an-object-within-a-powerpoint-slide">オブジェクトに名前を付ける方法パワーポイントのスライドに?」ただし、スライド レベルのみです。

どんな助けでも大歓迎です。

4

6 に答える 6

14

PowerPoint には、スライドの名前を編集できる組み込み機能はありません。Steve が述べたように、VBA コードを使用して実行する必要があります。さらにスライドを挿入してもスライドが変わることはなく、PowerPoint を閉じても同じままです。VBA コードで設定されたスライド名は永続的です。現在選択されているスライドの名前を簡単に表示し、名前を変更できるようにするために、私が書いたコードを次に示します。

'------------------------------------------------------------------
' NameSlide()
'
' Renames the current slide so you can refer to this slide in
' VBA by name. This is not used as part of the application;
' it is for maintenance and for use only by developers of
' the PowerPoint presentation.
'
' 1. In Normal view, click on the slide you wish to rename
' 2. ALT+F11 to VB Editor
' 3. F5 to run this subroutine
'------------------------------------------------------------------
Sub NameSlide()
    Dim curName As String
    curName = Application.ActiveWindow.View.Slide.name
    
    Dim newName As String
retry:
    newName = InputBox("Enter the new name for slide '" + curName + "', or press Cancel to keep existing name.", "Rename slide")
    If Trim(newName) = "" Then Exit Sub
            
    Dim s As Slide
    
    ' check if this slide name already exists
    On Error GoTo SlideNotFound
    Set s = ActivePresentation.Slides(newName)
    On Error GoTo 0
    
    MsgBox "Slide with this name already exists!"
    GoTo retry
    
    Exit Sub
    
SlideNotFound:
    On Error GoTo 0
    Application.ActiveWindow.View.Slide.name = newName
    MsgBox "Slide renamed to '" + newName + "'."
        
End Sub
于 2013-06-09T14:35:54.260 に答える
5

スライド名を手動で設定することはできませんが、コードを少し追加すれば簡単です。たとえば、VBA では次のようになります。

Sub NameThatSlide()
  ActivePresentation.Slides(1).Name = "Whatever You Like Here"
End Sub
于 2013-05-31T21:37:40.920 に答える