Змініть мову перевірки орфографії на презентації PowerPoint


42

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

Чи є кращий спосіб зробити це?

Я встановив версію PowerPoint 2002 SP3.


Не можу додати відповідь (незважаючи на наявність достатньої кількості відповідей). Для користувачів Mac тут: macscripter.net/viewtopic.php?id=38622 надає дивовижний сценарій яблук, який можна змінити для багатьох цілей.
Etienne Low-Decarie

Ось зміст вищезазначеного яблучного сценарію
Etienne Low-Décarie

Відповіді:


34

Я знаю, що відповідь вже прийнято (на що я дав +1, оскільки вона працює і добре написана), але для деяких людей ідея створення, збереження, використання макросу може бути занадто страшною (або вони можуть мати налаштування безпеки в місце, де цього важко досягти). Тому простішим рішенням є використання нормальної вбудованої функціональності для цього. Хитрість полягає в тому, щоб мати можливість вибирати всі об'єкти на всіх слайдах одночасно, а не самі слайди, і це легко досягти в режимі перегляду "Контур" (на жаль, недостатньо використана функція, але чудово підходить для реорганізації слайдів, просування та демотування) цілі шматки, наприклад кулі> нові слайди або навпаки).

У мене немає PowerPoint 2002 ("XP"), тому я не впевнений, чи потрібно дотримуватися інструкцій 2000 або 2003 років, тому я охоплюю обидва тут:

  • У ПП 2000 : Перейдіть до контуру, який є другою піктограмою зліва внизу екрана (виглядає як лінії з відступами).
  • У PP 2003 далі : Перейдіть до "звичайного" подання (три області макета), а вгорі навігатора слайдів виберіть "контур", а не "слайди"

У старіших версіях, переконайтеся , що у вас є Викладаючи панель інструментів завжди відображатиметься ( View> Toolbars> Outlining) і натисніть на Expand allкнопку (більш пізні версії дозволяють отримати на це через правий клік).

  • Ctrl-A щоб вибрати всіх.
  • Tools>> LanguageВиберіть мову, яку потрібно встановити.
  • (З Powerpoint 2013) REVIEW> Language> Набір Правопис мови

Робота виконана.

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


Просто швидка примітка: можливо, зробіть наступне речення жирним, щоб рішення було негайно зрозумілим: «Підступність полягає в тому, щоб мати можливість вибирати всі об'єкти на всіх слайдах одночасно, а не самі слайди, і це легко досягти на вигляд Контур '
Рабарберські

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

Так, я думаю, якщо люди додають багато незалежних текстових полів, їх потрібно вибрати за допомогою методу, такого як оригінальний розміщений макрос.
АдамВ

Для мене це працювало лише на існуючому тексті в PowerPoint 2010. Щойно доданий текст, мова все одно зміниться в певних випадках.
Пітер

Це, безумовно, найчистіший спосіб боротьби з цим. Він працює і у версії 2013 року.
GoTTimw

18

Ця тема містить відповідь, яка працювала на мене.

Наступні кроки:

  1. Створіть новий макрос:
    1.1. Перейдіть до Інструменти, Макрос, Visual Basic Editor.
    1.2. Вставте новий порожній модуль, вибравши Вставити, Модуль.
  2. Вставте цей код на праву панель і збережіть макрос:

    Option Explicit  
    Public Sub ChangeSpellCheckingLanguage()  
        Dim j As Integer, k As Integer, scount As Integer, fcount 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 = msoLanguageIDEnglishAUS
                End If
            Next k
        Next j
    End Sub
    

    msoLanguageIDEnglishAUSможна замінити будь-якою потрібною мовою. Повний список мов можна знайти тут .

  3. Виконайте макрос (натиснувши F5 в редакторі або вибравши Інструменти, Макрос, Макроси, ChangeSpellCheckingLanguage та натиснувши Виконати).

Після цього всі текстові елементи в рамках презентації матимуть нову мову написання.


1
Цей код він не вплине на Shapes в групах. Більш загальний код розміщено в superuser.com/a/1119420/245595
sancho.s Відновити Моніку

3

Після багатьох презентацій, де я це робив вручну або використовував одноразовий макрос, я нарешті зламав і перетворив його у належну надбудову PowerPoint.

Я завантажив його на свій веб-сайт: PowerPoint LanguageFixer

Він піклується про:

  • встановлення мови за замовчуванням
  • всі форми з текстовими рамками
  • текстові кадри в згрупованих формах (наскільки це можливо)
  • текст у таблицях
  • речі на майстрі слайда / замітки / роздатковий матеріал

Просто встановіть одне з текстових полів на потрібну мову, виберіть її та натисніть кнопку.


1

Ось два варіанти залежно від вашої ситуації:


Ситуація 1: Оригінальна копія Office була встановлена ​​з носія інсталяції на основі канадської французької мови.

Ви зможете встановити мову за замовчуванням на англійську, але основні функції використовуватимуть рідну мову інсталяційного носія.

Єдине виправлення - це видалення канадської французької версії та встановлення із встановленого на англійській мові носія або копіювання / вставлення всієї презентації до нового документа та переформатування.

.


Ситуація 2: все здається англійською, але в обмежених обставинах з'являються іноземні мови.

У цій ситуації наведено інструкції з ремонту Office 2002:

  1. Натисніть меню "Пуск"
  2. Вкажіть на програми
  3. Вкажіть на Інструменти Microsoft Office
  4. Клацніть Налаштування мови Microsoft Office XP.
  5. Перейдіть на вкладку "Увімкнено мови".
  6. Перейдіть до версії за замовчуванням у вікні Microsoft Office
  7. Виберіть потрібну мову
  8. Натисніть кнопку ОК. З'явиться повідомлення про те, які зміни будуть внесені.
  9. Клацніть Продовжити

Я сподіваюся, що це допомагає.


Дякую за вашу відповідь! Хоча це не було жодної з цих ситуацій. Що трапляється, що для кожного текстового поля можна встановити іншу мову для перевірки орфографії, і в цьому конкретному сценарії всі елементи мали неправильну мову. Мова за замовчуванням у системі (та в офісній установці) - англійська.
Leonardo

0

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

Я не знаю жодного зручного рішення - мені довелося або жити з невідповідністю, або вручну змінювати мовний "формат" кожного окремого текстового поля на кожному слайді. Не весело, тому в основному я з цим живу.


0

Код, розміщений Леонардо , простий і загалом ефективний, але Shapeв групах це не вплине . Більш загальний код використовує рекурсію і для вирішення цього випадку (злегка змінений звідси , що знаходиться в тій самій нитці, що і код Леонардо):

Private Function ChangeLangOfAllText_caller()
    'ChangeLangOfAllText (msoLanguageIDEnglishUS)
    ChangeLangOfAllText (msoLanguageIDSpanishArgentina)
End Function

Private Function ChangeLangOfAllText(ByVal LangID As Long)
    Dim MySlide As Slide
    Dim MyShape As Shape
    Dim MyD As Design
    Dim MyHeaderFooter As HeaderFooter
    Dim i, nbs As Integer
    ''''' First deal with the master slides
    For Each MyD In ActivePresentation.Designs
        For Each MyShape In MyD.SlideMaster.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MyD
    ''''' Now deal with the slides
    ' Enable this for debugging
    'Debug.Print "File " & ActivePresentation.Name & _
      ": working with " & ActivePresentation.Slides.Count & " slides"
    For Each MySlide In ActivePresentation.Slides
        ' Enable this for debugging
        'Debug.Print " Slide index " & MySlide.SlideIndex & ", Slide number " & MySlide.SlideNumber & _
          ": working with " & MySlide.Shapes.Count & " shapes"
        For Each MyShape In MySlide.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the Notes
        For Each MyShape In MySlide.NotesPage.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the master ' doesn't appear to work, have to try something else
        For Each MyShape In MySlide.Master.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MySlide
End Function

Private Function ProcessShapes(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If ((MyShape.Type = msoGroup) Or (MyShape.Type = msoTable)) Then
        On Error Resume Next
        For i = 1 To MyShape.GroupItems.Count
            ''' The trick is to recurse!
            ProcessShapes MyShape.GroupItems.Item(i), LangID
        Next i
    Else
        ChangeLang MyShape, LangID
    End If
End Function

Private Function ChangeLang(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If (MyShape.HasTextFrame) Then
        ' Enable this for debugging
        'Debug.Print " Shape " & MyShape.ZOrderPosition & ", type: " & MyShape.Type & _
          ", has text frame: " & MyShape.HasTextFrame & ", has text: " & MyShape.TextFrame.HasText & _
          ", alt. text: " & MyShape.AlternativeText
        MyShape.TextFrame.TextRange.LanguageID = LangID
    End If
End Function
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.