如何一次更改所有 Powerpoint 投影片的語言?

如何一次更改所有 Powerpoint 投影片的語言?

我想更改 Powerpoint 中所有投影片的校對語言。我嘗試透過「語言首選項」選單設定語言,但這只會更改新的投影片的語言。

答案1

更改語言全部的PowerPoint 輕鬆開啟看法選項卡並選擇大綱看法。

現在按

  • Ctrl+A選擇全部。
  • 工具語言→ 選擇您要設定的語言。

同樣,當您選擇了所有內容後,您可以更改其他內容,例如字體、顏色等。可能有很多“硬”格式設置,這些設置與底層主版本有偏差,需要重置才能保持一致。您也可以將單一投影片重設為主樣式,但這可能會導致佔位符移動,這在某些情況下可能是不受歡迎的。

PowerPoint 2013

  • 看法大綱Ctrl→ 透過+選擇所有投影片(在左側選單中)A
  • 審查語言設定校對語言...→ 選擇您要設定的語言。

至於我 - PowerPoint重新開始是需要的。可能是因為我也改變了編輯語言:

  • 審查語言設定校對語言...語言偏好選擇編輯語言

答案2

使用簡報2010我打開了大綱選單 -

輪廓選項卡

選擇所有文字(Ctrl+A),開啟語言選單並設定我的校對語言

語言選項

它成功了!

語言選單位於「審閱」功能區標籤上(在「投影片放映」標籤之後,在螢幕截圖中不可見)。

答案3

我改進了伊尼戈的回答提供將所有項目變更為所需語言的遞歸版本。

此版本將遞歸地研究屬於群組類型的每個形狀。一些實驗表明msoGroupmsoSmartArt是組類型 - 如果您發現可以容納文字物件的其他類型的形狀,請隨意添加到該列表中。

Sub ChangeProofingLanguageToEnglish()
    Dim j As Long, k As Long
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDEnglishUK

    For j = 1 To ActivePresentation.Slides.Count
        For k = 1 To ActivePresentation.Slides(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), _
              languageID
        Next k
    Next j
End Sub


Sub ChangeAllSubShapes(targetShape As shape, languageID As MsoLanguageID)
    Dim i As Long

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    Select Case targetShape.Type
        Case msoGroup, msoSmartArt
            For i = 1 To targetShape.GroupItems.Count
                ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
            Next i
    End Select
End Sub

答案4

根據 Inigo、Duncan、Maria 和 DomDev 的回答,這適用於現在和未來的形狀、表格、群組、SmartArt:

Sub ChangeProofingLanguageToFrench()
    Dim j, k As Integer
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDFrench

    'Loop all the slides in the document, and change the language
    For j = 1 To ActivePresentation.Slides.Count
        For k = 1 To ActivePresentation.Slides(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), languageID
        Next k
    Next j

    'Loop all the master slides, and change the language
    For j = 1 To ActivePresentation.SlideMaster.CustomLayouts.Count
        For k = 1 To ActivePresentation.SlideMaster.CustomLayouts(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.SlideMaster.CustomLayouts(j).Shapes(k), languageID
        Next k
    Next j

    'Change the default presentation language, so that all new slides respect the new language
    ActivePresentation.DefaultLanguageID = languageID
End Sub

Sub ChangeAllSubShapes(targetShape As Shape, languageID As MsoLanguageID)
    Dim i As Integer, r As Integer, c As Integer

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    If targetShape.HasTable Then
        For r = 1 To targetShape.Table.Rows.Count
            For c = 1 To targetShape.Table.Columns.Count
                targetShape.Table.Cell(r, c).Shape.TextFrame.TextRange.languageID = languageID
            Next
        Next
    End If

    Select Case targetShape.Type
        Case msoGroup, msoSmartArt
            For i = 1 To targetShape.GroupItems.Count
                ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
            Next i
    End Select
End Sub

相關內容