Como altero o idioma de todos os slides do Powerpoint de uma só vez?

152

Embora esse segmento seja bastante antigo, a Microsoft não forneceu nenhuma solução que eu conheça. Sugiro outra abordagem para usuários de Mac: abra sua apresentação no Keynote, altere o idioma da ortografia e, possivelmente, edite toda a apresentação, depois exporte-a para o PowerPoint.

liamzebedee
fonte
11
Parece que a versão mais recente do PowerPoint é especialmente problemática a esse respeito. Eu tenho uma caixa de texto em que alterei o idioma de todo o texto para o idioma A. (O idioma padrão é B.) Então, quando começo a digitar nessa caixa de texto, o idioma muda automaticamente para B. Pensei que talvez estivesse alterando o padrão a linguagem ajuda (tendo tentado todo o resto), mas não. Agora, o idioma padrão é A, o idioma de todos os outros textos na caixa de texto é A (e reiniciei o PP), mas todo o novo texto ainda aparece como B. Portanto, minha única pergunta restante é: existe uma maneira de alternar a revisão fora completamente?
Lebatsnok
Sim, existe uma maneira de desativar a verificação ortográfica: support.microsoft.com/en-us/help/937422/… - resolveu meu problema!
Lebatsnok

Respostas:

166

Para alterar o idioma de todo o PowerPoint facilmente, abra a guia Exibir e selecione a exibição Estrutura de tópicos .

Agora pressione

  • Ctrl+ Apara selecionar tudo.
  • FerramentasIdioma → Escolha o seu idioma para definir.

Da mesma forma, enquanto você seleciona tudo, pode alterar outras coisas, como fontes, cores etc. Embora, é claro, em muitos casos, isso seja melhor alterando o slide mestre, uma apresentação que teve muitos editores pode ter muitos conjuntos de formatação 'rígidos' que se desvia do mestre subjacente e precisa ser redefinido para ser consistente. Você também pode redefinir slides individuais para o estilo principal, mas isso também pode resultar na movimentação de espaços reservados, o que pode ser indesejável em algumas situações.

PowerPoint 2013

  • ExibirEsboço → selecione todos os slides (no menu esquerdo) via Ctrl+ A.
  • RevisarIdiomaDefinir idioma de verificação ... → Escolha o seu idioma para definir.

Quanto a mim - era necessário reiniciar o PowerPoint . Provavelmente porque eu também mudei o Idioma de Edição :

  • RevisarIdiomaDefinir idioma de revisão ...Preferências de idiomaEscolha Editar idiomas .
Mastergalen
fonte
31
Obrigado pela resposta, mas depois de alterar o idioma, o texto recém-digitado ainda está no idioma anterior (o padrão). Além disso, se você for aos slides mestres, selecione o slide , notará que o idioma na barra de idiomas ainda é o padrão e o menu para alterá-lo fica acinzentado. Estou ficando louco por não ter sido resolvido pela Microsoft há tantos anos.
Endrju
11
Impressionante! Embora não seja perfeito, certamente ajuda. Concordo com @ Endrju, por que isso ainda não foi corrigido ?!
Mike
11
Para o registro, no Office 2013, o menu Idioma é no painel Review (Set Proofing Language)
Maria Ines Parnisari
2
Powerpoint é chocantemente ruim, não é? Na verdade, sinto falta do escritório aberto quando tenho problemas como esse. Voltarei ao escritório aberto assim que eles suportarem a gravação em um vídeo.
Mjaggard #
2
A principal limitação disso é que, se alguém em sua infinita sabedoria criar caixa de texto personalizada em vez de usar layouts apropriados de Título + Conteúdo, isso simplesmente não funcionará.
Lilienthal
34

Usando o Powerpoint 2010 , abri o menu Esboço -

guia de estrutura de tópicos

Selecionou todo o texto (Ctrl + A), abriu o menu de idiomas e definiu meu idioma de prova

opção de idioma

E funcionou!

O menu de idiomas está localizado na guia da faixa de opções Revisão (após a guia Apresentação de slides e não é visível na captura de tela).

liamzebedee
fonte
4
Só funciona para um único slide
Helge Klein
9
Isso funciona para layouts básicos de slides. Ele não altera o idioma do texto dentro de caixas de texto ou aninhado em outras formas.
Duncan Jones
Também funciona no Office 2007.
Alfredo Osorio
Também funcionou no Office Mac.
21713 Jim McKeeth
23

As respostas existentes funcionam para o texto que está presente no esquema. Infelizmente, no meu caso, isso não cobriu uma parte significativa do texto, incluindo figuras, tabelas etc.

Essa macro resolveu o problema para mim:

 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

O "msoLanguageIDEnglishUS" usado na macro acima pode ser substituído por qualquer idioma desejado. A lista completa de idiomas pode ser encontrada neste artigo

(O crédito é de Ganesh Kumar, que postou a macro original aqui . Adicionei suporte para o primeiro nível de agrupamento de formas. Para melhorá-lo, a macro pode ser recursiva para procurar grupos que contenham outros grupos etc.)

Inigo
fonte
+1 Bom começo. Veja minha resposta para uma versão totalmente recursiva com base nessa resposta.
Duncan Jones
20

I melhorado a resposta de Inigo para fornecer uma versão recursiva que muda todos os itens para o idioma desejado.

Esta versão investigará recursivamente cada forma que é um tipo de grupo. Algumas experiências sugerem que msoGroupe msoSmartArtsão os tipos de grupo - fique à vontade para adicionar a essa lista se você encontrar outros tipos de formas que podem conter objetos de texto.

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
Duncan Jones
fonte
11
Ao executar isso no PowerPoint 16.10 no OSX, recebo:Compile error: Method or data member not found
Etienne Low-Décarie
10

Com base nas respostas de Inigo, Duncan, Maria e DomDev, isso funciona para formas, tabelas, grupos, SmartArt, agora e no futuro:

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
tricasse
fonte
Quanto a outras soluções, sobre quando executar este no PowerPoint 16.10 em OSX, eu recebo: Compile error: Method or data member not found. Alguma solução sugerida? Parece destacar .DefaultLanguageID.
Etienne Low-Décarie
@ EtienneLow-Décarie: A API pode ter sido alterada no PowerPoint 16; Eu não tenho, então não posso verificar, desculpe.
tricasse
Funciona para mim no Powerpoint 2016 no Windows 7 (a versão exata do MS Office é 16.0.11029.20108)
Christopher K.
Perfeito! A única melhoria que eu consegui pensar foi mudar o idioma das seções das notas dos slides :)
Marcus Mangelsdorf
7

A versão do Duncan funciona bem para tudo, exceto tabelas. Encontrei outro código que parece funcionar também com tabelas: 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
Maria
fonte
5

Além da resposta fornecida pela Mastergalen e dos comentários sobre o texto recém-digitado:

Se você perceber que esse idioma será alterado automaticamente sempre que você começar a digitar um novo texto (o que é muito irritante), você precisará alterar o idioma padrão atual do PowerPoint:

  • verifique se a janela do PowerPoint é uma janela ativa
  • no Windows Taskbar(sim, na verdade não está no PowerPoint), verifique se Language barestá visível,
    • se não for para Control Panel > Region and Language > Keyboards and Languages. Clique em Change keybords...Alternar para a Language barguia e marque a Docked in the taskbaropção. (este é do Win7, então pode ser um pouco diferente em outras versões).
  • agora ação-chave - na Language barbarra de tarefas, clique no código do idioma e mude para EN (se você deseja atualmente usar o inglês no PowerPoint). A partir de agora, todo o novo texto do PowerPoint estará no idioma selecionado :-)
  • se você quiser escrever no idioma original, basta alterá-lo novamente.
Gás
fonte
11
Oh Deus, por que eles fariam algo assim ?! Obrigado, funcionou perfeitamente.
Thibault D.
11
Exatamente! deve ser adicionado à resposta aceita também.
M. Abdelhafid
11
Mas isso também altera o layout do teclado, não é? ... Eu quero digitar texto em inglês, mas realmente quero manter o layout do meu teclado em alemão ... #
317 Johannes S. Johannes
2
@JohannesS. Se você clicar Encom o botão direito do mouse na barra de tarefas e selecionar Settings.., verá os idiomas instalados Alemão (DE) e Inglês (En); se você expandir o inglês, haverá uma Keyboardslista, expanda Teclados e adicione o seu teclado alemão preferido, provavelmente remova o inglês. Além disso. Eu não experimentá-lo, mas deve funcionar em teoria ;-)
Gas
Aguarde, preciso alterar o idioma do teclado se quiser ter um idioma de revisão diferente? Isso é estupido.
Matěj Račinský 04/04
3

Fiz um suplemento em 2014 para mim mesmo, que ainda funciona bem no PowerPoint 2016. https://github.com/wobba/officeaddin/releases/tag/v1.0.1

Ele procura por idiomas usados ​​e permite que você mude de uma só vez, fazendo um loop.

insira a descrição da imagem aqui

Mikael Svenson
fonte