Як я можу змінити мову всіх слайдів Powerpoint відразу?


151

Хоча ця нитка досить стара, Microsoft не запропонувала жодного рішення, про яке я знаю. Я пропоную інший підхід для користувачів Mac: відкрийте свою презентацію в Keynote, змініть мову написання і, можливо, відредагуйте всю свою презентацію, а потім експортуйте її в PowerPoint.



1
Здається, що найновіша версія PowerPoint в цьому відношенні особливо непомітна. У мене є текстове поле, де я змінив мову всього тексту на мову А. (Мова за замовчуванням - B.) Отже, коли я починаю набирати текст у цьому текстовому полі, мова автоматично змінюється на B. Я подумав, що можливо змінити типовий мова допомагає (спробувавши все інше), але ні. Тепер мовою за замовчуванням є A, мова всього іншого тексту в текстовому полі - це A (і я перезапустив PP), але весь новий текст все ще відображається як B. Отже, єдине моє питання, що залишається: чи є спосіб переключити перевірку зовсім?
lebatsnok

Так, є спосіб повороту перевірки орфографії: support.microsoft.com/en-us/help/937422/… - вирішив мою проблему!
lebatsnok

Відповіді:


165

Щоб легко змінити мову всієї PowerPoint, відкрийте вкладку « Вид » та виберіть « Контур» .

Тепер натисніть

  • Ctrl+ Aщоб вибрати всі.
  • ІнструментиМова → Виберіть мову для встановлення.

Так само, якщо у вас все вибране, ви можете змінювати інші речі, такі як шрифти, кольори тощо. Хоча, звичайно, у багатьох випадках це краще зробити шляхом зміни головного слайда, у презентації, у якій було багато редакторів, може бути багато "жорсткого" набору форматування, який відхиляється від основного майстра і потребує перезавантаження, щоб бути послідовним. Ви також можете скинути окремі слайди до майстер-стилю, але це може призвести до переміщення заповнювачів, що може бути небажаним у деяких ситуаціях.

PowerPoint 2013

  • ПереглядКонтур → виберіть усі слайди (у лівому меню) через Ctrl+ A.
  • ОглядМоваВстановити мову підтвердження ... → Виберіть мову для налаштування.

Щодо мене - потрібен був перезапуск PowerPoint . Можливо, тому, що я також змінив мову редагування :

  • ОглядМоваВстановлення мови перевірки ...Налаштування мовиВиберіть Редагування мов .

31
Дякуємо за відповідь, але після зміни мови нещодавно набраний текст залишається на попередній мові (за замовчуванням). Більше того, якщо ви перейдете до головних слайдів, виберіть слайд , ви помітите, що мова на мовній панелі все ще є типовою, а меню для її зміни затьмарене. Я божеволію, що Microsoft не вирішила його вже стільки років.
Endrju

1
Дивовижно! Хоча не ідеально, але, безумовно, допомагає. Я згоден з @Endrju, чому це ще не виправлено ?!
Майк

1
Для запису, в Office 2013 меню Мова знаходиться на панелі "Огляд" (Set Proofing Language)
Марія Інес Парнісарі

2
Powerpoint просто шокуюче погано, чи не так? Я фактично сумую за відкритим офісом, коли у мене є такі проблеми. Я повернусь до відкритого офісу, як тільки вони підтримають збереження відео.
mjaggard

2
Основне обмеження цього полягає в тому, що якщо хтось у своїй нескінченній мудрості створив власне текстове поле замість правильних макетів заголовка + вмісту, це просто не буде працювати.
Ліліенталь

34

Використовуючи Powerpoint 2010, я відкрив контурне меню -

контур вкладки

Вибрав увесь текст (Ctrl + A), відкрив меню мови та встановив мою мову коректури

мовний варіант

І це спрацювало!

Мовне меню розміщене на вкладці "Огляд" (після вкладки "Показ слайдів" і не видно на скріншоті).


4
Працює лише для одного слайда
Хельге Кляйн

9
Це працює для основних макетів слайдів. Це не змінить мову тексту всередині текстових полів або вкладене в інші фігури.
Дункан Джонс

Працює і над Office 2007.
Альфредо Озоріо

Працював і на Office Mac.
Jim McKeeth

23

Існуючі відповіді працюють на текст, який присутній у конспекті. На жаль, у моєму випадку це не охоплювало значної частини тексту, включаючи фігури, таблиці тощо.

Цей макрос вирішив проблему для мене:

 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", який використовується у наведеному вище макросі, можна замінити будь-якою потрібною мовою. Повний список мов можна знайти в цій статті

(Заслуга Ганеш Кумара , який розмістив оригінальний макрос тут . Я додав підтримку першого рівня форми угруповання. Для подальшого поліпшення його макрос може бути рекурсивним шукати групи , які містять інші групи і т.д.)


+1 Гарний старт. Дивіться мою відповідь на повністю рекурсивну версію на основі цієї відповіді.
Дункан Джонс

20

Я покращив відповідь Ініго, щоб надати рекурсивну версію, яка змінює всі елементи на потрібну мову.

Ця версія буде рекурсивно досліджувати кожну фігуру, що є груповим типом. Деякі експерименти припускають, що це msoGroupта msoSmartArtтипи груп - сміливо додайте до цього списку, якщо ви знайдете інші типи фігур, які можуть містити текстові об’єкти.

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

1
Compile error: Method or data member not found
Запускаючи

10

На основі відповідей Ініго, Дункана, Марії та ДомДева це працює для форм, таблиць, груп, 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

Що стосується інших рішень, про те, коли працює це в PowerPoint 16.10 на OSX, я отримую: Compile error: Method or data member not found. Будь-які запропоновані рішення? Це ніби підкреслює .DefaultLanguageID.
Етьєн Лоу-Декарі

@ EtienneLow-Décarie: API може змінитися в PowerPoint 16; У мене його немає, тому я не можу перевірити, вибачте.
tricasse

Працює для мене в Powerpoint 2016 на Windows 7 (точна версія MS Office - 16.0.11029.20108)
Крістофер К.

Ідеально! Єдине вдосконалення, про яке я міг подумати, - це також зміна мови для розділів нотаток слайдів :)
Маркус Мангельсдорф

7

Версія Duncan працює добре для всього, крім таблиць. Я знайшов ще один код, який, здається, також працює з таблицями: https://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-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

5

Окрім відповіді, наданої 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 буде обраною мовою :-)
  • якщо ви хочете писати мовою оригіналу, просто змініть його назад.

1
О Боже, чому б вони робили щось подібне ?! Дякую, працювали чудово.
Тібо Д.

1
Саме так! слід також додати до прийнятої відповіді.
М. Абдельгафід

1
Але це також змінює розкладку клавіатури, чи не так? ... Я хочу ввести текст англійською мовою, але дуже хочу зберегти свою німецьку розкладку клавіатури ....
Йоханнес С.

2
@JohannesS. Якщо ви клацніть правою кнопкою миші Enна панелі завдань і виберіть, Settings..ви побачите в Інстальованих мовах німецька (DE) та англійська (En), якщо ви розгорнете англійську, вони будуть в Keyboardsсписку, розгорніть клавіатури та додасте бажану німецьку клавіатуру, можливо, видаліть англійську також. Я не пробував, але повинен працювати теоретично ;-)
Газ

Зачекайте, тому мені потрібно змінити мову клавіатури, якщо я хочу мати іншу мову коректування? Це нерозумно.
Matěj Račinský

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.