題 如何一次更改所有Powerpoint幻燈片的語言?


我想在Powerpoint中更改所有幻燈片的校對語言。我已嘗試通過“語言首選項”菜單設置語言,但這只會更改新功率點。


133
2018-06-04 10:01


起源


可能重複 更改PowerPoint演示文稿上的拼寫檢查語言 - sancho.s
似乎最新版本的PowerPoint在這方面特別錯誤。我有一個文本框,我已將所有文本的語言更改為語言A.(默認語言為B.)因此,當我在該文本框中開始輸入時,語言會自動更改為B.我想可能會更改默認語言語言幫助(嘗試了其他一切)但沒有。現在默認語言是A,文本框中所有其他文本的語言是A(我重新啟動了PP),但所有新文本仍然顯示為B.所以我唯一剩下的問題是:有沒有辦法切換打樣完全關閉? - lebatsnok
是的,有一種方法來進行拼寫檢查: support.microsoft.com/en-us/help/937422/...  - 解決了我的問題! - lebatsnok


答案:


我知道答案已被接受,但這只會改變答案的證明語言  文本框,並要求您手動更改所有這些。

改變語言 整個 PowerPoint輕鬆,打開 視圖 選項卡並選擇 大綱 視圖。

現在按

  • 按Ctrl+一個 選擇所有。
  • 工具 → 語言 →選擇要設置的語言。

同樣,當您選擇了所有內容時,您可以更改其他內容,如字體,顏色等。雖然當然在很多情況下通過更改幻燈片母版更好地完成,但是許多編輯器可能有很多“硬”格式設置的演示文稿偏離底層主人並且需要重置以保持一致。您還可以將單個幻燈片重置為主樣式,但這可能會導致佔位符移動,這在某些情況下可能不合需要。

PowerPoint 2013

  • 視圖 → 大綱 →通過選擇所有幻燈片(在左側菜單中) 按Ctrl+一個
  • 評論 → 語言 → 設置校對語言...... →選擇要設置的語言。

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

  • 評論 → 語言 → 設置校對語言...... → 語言偏好 → 選擇編輯語言

146
2018-03-17 17:29



感謝您的回答,但在更改語言後,新鍵入的文本仍為先前語言(默認語言)。此外,如果您轉到主幻燈片,請選擇 幻燈片你會注意到,語言欄中的語言仍然是默認語言,更改它的菜單是灰色的。我很生氣,微軟多年來一直沒有解決這個問題。 - Endrju
真棒!雖然不完美,但肯定有幫助。我同意@Endrju,為什麼不修復呢?! - Mike
對於記錄,在Office 2013中,“語言”菜單位於“審閱”窗格中(設置校對語言) - Maria Ines Parnisari
Powerpoint只是令人震驚的不好不是嗎?當我遇到這樣的問題時,我真的很想念開放式辦公室。一旦他們支持保存到視頻,我將立即回到辦公室。 - mjaggard
@Endrju您必須在Windows任務欄中更改PowerPoint的語言,以使新類型的文本使用新語言。詳見 我的答案。這麼長時間讓我很煩惱...... - Gas


運用 Powerpoint 2010 我打開了大綱菜單 -

outline tab

選中所有文本(Ctrl + A),打開語言菜單並設置我的校對語言

language option

它奏效了!

語言菜單位於“審閱”功能區選項卡上(在“幻燈片放映”選項卡之後,在屏幕截圖中不可見)。


34
2018-06-04 10:01



僅適用於單張幻燈片 - Helge Klein
這適用於基本幻燈片佈局。它不會更改文本框內的文本語言或嵌套在其他形狀中。 - Duncan Jones
也適用於Office 2007。 - Alfredo Osorio
也在Office Mac上工作。 - Jim McKeeth


現有答案適用於大綱中存在的文本。不幸的是,在我的案例中,這並沒有涵蓋文本的重要部分,包括數字,表格等。

這個宏為我解決了這個問題:

 Sub ChangeProofingLanguageToEnglish()
    Dim j, k, m, scount, fcount, gcount As Integer
    scount = ActivePresentation.Slides.Count
    For j = 1 To scount
        fcount = ActivePresentation.Slides(j).Shapes.Count
        For k = 1 To fcount
            If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then
                ActivePresentation.Slides(j).Shapes(k) _
                .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
            If ActivePresentation.Slides(j).Shapes(k).Type = msoGroup Then
                gcount = ActivePresentation.Slides(j).Shapes(k).GroupItems.Count
                For m = 1 To gcount
                    If ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m).HasTextFrame Then
                    ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m) _
                    .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
                Next m
            End If
        Next k
    Next j
End Sub

在上述宏中使用的“msoLanguageIDEnglishUS”可以用任何所需的語言代替。完整的語言列表可以在中找到 本文

(歸功於發布原始宏的Ganesh Kumar 這裡。我添加了對第一級形狀分組的支持。為了進一步改進它,可以使宏遞歸以查找包含其他組的組等。)


19
2017-08-09 08:11



+1良好的開端。看到 我的答案 基於此答案的完全遞歸版本。 - Duncan Jones


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

此版本將遞歸調查作為組類型的每個形狀。一些實驗表明 msoGroup 和 msoSmartArt 是組類型 - 如果您發現其他類型的形狀可以保存文本對象,請隨意添加到該列表。

Sub ChangeProofingLanguageToEnglish()
    Dim j, k As Integer
    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 Integer

    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

17
2017-11-25 09:52



在OSX上的PowerPoint 16.10中運行時,我得到: Compile error: Method or data member not found - Etienne Low-Décarie


基於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

8
2017-07-09 09:41



至於其他解決方案,在OSX上的PowerPoint 16.10中運行時,我得到: Compile error: Method or data member not found。有興趣嗎?它似乎突出了 .DefaultLanguageID。 - Etienne Low-Décarie
@ EtienneLow-Décarie:PowerPoint 16中的API可能已更改;我沒有它所以我無法檢查,抱歉。 - tricasse


Duncan的版本適用於除桌子之外的所有內容。 我找到了另一個似乎也適用於表的代碼: https://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-c​​ontains-text 

Public Sub changeLanguage()
    On Error Resume Next
    Dim gi As GroupShapes '<-this was added. used below
    'lang = "English"
    lang = "Norwegian"
    'Determine language selected
    If lang = "English" Then
        lang = msoLanguageIDEnglishUK
    ElseIf lang = "Norwegian" Then
        lang = msoLanguageIDNorwegianBokmol
    End If
    'Set default language in application
    ActivePresentation.DefaultLanguageID = lang

    'Set language in each textbox in each slide
    For Each oSlide In ActivePresentation.Slides
        Dim oShape As Shape
        For Each oShape In oSlide.Shapes
            'Check first if it is a table
            If oShape.HasTable Then
                For r = 1 To oShape.Table.Rows.Count
                    For c = 1 To oShape.Table.Columns.Count
                    oShape.Table.Cell(r, c).Shape.TextFrame.TextRange.LanguageID = lang
                    Next
                Next
            Else
                Set gi = oShape.GroupItems
                'Check if it is a group of shapes
                If Not gi Is Nothing Then
                    If oShape.GroupItems.Count > 0 Then
                        For i = 0 To oShape.GroupItems.Count - 1
                            oShape.GroupItems(i).TextFrame.TextRange.LanguageID = lang
                        Next
                    End If
                'it's none of the above, it's just a simple shape, change the language ID
                Else
                    oShape.TextFrame.TextRange.LanguageID = lang
                End If
            End If
        Next
    Next End Sub

6
2018-05-22 13:36





除了提供的答案 Mastergalen 並解決有關新類型文本的評論:

如果您注意到,只要您開始輸入新文本(這非常煩人),該語言就會自動更改回來,您必須更改PowerPoint的當前默認語言:

  • 確保PowerPoint窗口是活動窗口
  • 在裡面 Windows Taskbar (是的,實際上不在PowerPoint中),檢查是否 Language bar 是可見的,
    • 如果沒有去 Control Panel > Region and Language > Keyboards and Languages。點擊 Change keybords..., 切換到 Language bar 選項卡和檢查 Docked in the taskbar 選項。 (這是來自Win7,因此在其他版本中可能會有所不同)。
  • 現在關鍵行動 - 在 Language bar 在任務欄中, 單擊語言代碼並切換到EN (如果您希望目前在PowerPoint中使用英語)。從現在開始,PowerPoint中的所有新文本都將使用所選語言:-)
  • 如果你想用原始語言寫,只需改回來。

2
2017-07-04 12:52



天啊,為什麼他們會這樣做呢?!謝謝你,工作得很好。 - Thibault D.
究竟!應該添加到接受的答案中。 - Abdelhafid Madoui
但這也改變了鍵盤佈局,不是嗎?...我想輸入英文文本,但我真的想保留我的德語鍵盤佈局.... - Johannes S.
@JohannesS。如果右鍵單擊 En 在任務欄中選擇 Settings.. 你會看到安裝語言德語(德國)和英語(英語),如果你擴展英語,會有 Keyboards 列出,展開鍵盤,並添加您喜歡的德語鍵盤,也可能刪除英語鍵盤。我沒有嘗試過,但應該在理論上工作;-) - Gas


我在2014年為自己做了一個加載項,在PowerPoint 2016中仍然可以正常工作。 https://github.com/wobba/officeaddin/releases/tag/v1.0.1

它會掃描使用過的語言,並允許您一次更改所有語言,循環播放。

enter image description here


2
2017-10-20 11:42