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

133

Eu quero alterar o idioma de prova de todos os meus slides em um Powerpoint. Eu tentei definir o idioma através do menu Language Preferences, no entanto isso só muda para novos powerpoints.

    
por liamzebedee 04.06.2012 / 12:01

8 respostas

146

Sei que uma resposta já foi aceita, mas isso apenas altera a linguagem de prova de uma única caixa de texto e exige que você altere todas elas manualmente.

Para alterar facilmente o idioma do PowerPoint inteiro , abra a guia Visualizar e selecione a exibição Contorno .

Agora pressione

  • Ctrl + A para selecionar tudo.
  • Ferramentas Idioma → Escolha seu idioma para definir.

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

PowerPoint 2013

  • Ver Esboço → selecione todos os slides (no menu à esquerda) através de Ctrl + A .
  • Revisar Idioma Definir a linguagem de verificação ... → Escolha seu idioma para definir.

Quanto a mim - foi necessário o restart do PowerPoint. Provavelmente porque eu também mudei Editing Language :

  • Rever Idioma Definir a linguagem de verificação ... Preferências de idioma Escolha os idiomas de edição .
por 17.03.2013 / 18:29
34

Usando o Powerpoint 2010 , abri o menu "Contorno" -

Selecionoutodootexto(Ctrl+A),abriuomenudeidiomasedefiniumeuidiomaderevisãodetexto

E funcionou!

O menu de idiomas está localizado na guia da faixa de opções Revisar (depois da guia Apresentação de slides e não está visível na captura de tela).

    
por 04.06.2012 / 12:01
19

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

Esta 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 em este artigo

(O crédito vai para Ganesh Kumar, que postou a macro original aqui . Eu adicionei suporte para o primeiro nível de agrupamento de formas. Para melhorar ainda mais a macro pode ser feita recursiva para procurar grupos que contenham outros grupos , etc.)

    
por 09.08.2013 / 10:11
17

Eu melhorei a resposta do Inigo para fornecer uma versão recursiva que altera todos os itens para o idioma desejado.

Esta versão investigará recursivamente cada forma que é um tipo de grupo. Alguma experimentação sugere que msoGroup e msoSmartArt são os tipos de grupo - sinta-se à vontade para adicionar a essa lista se você achar que outros tipos de formas podem conter objetos de texto.

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
    
por 25.11.2013 / 10:52
8

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
    
por 09.07.2016 / 11:41
6

A versão do Duncan funciona bem para tudo, menos para tabelas. Eu encontrei outro código que parece funcionar também com tabelas: link

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
    
por 22.05.2014 / 15:36
2

Além da resposta fornecida por Mastergalen e para endereçar comentários sobre o texto recém-digitado:

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

  • verifique se a janela do PowerPoint é uma janela ativa
  • no Windows Taskbar (sim, na verdade não no PowerPoint), verifique se Language bar está visível,
    • se não for para Control Panel > Region and Language > Keyboards and Languages . Clique em Change keybords... , mude para a guia Language bar e verifique a opção Docked in the taskbar . (isso é do Win7, então pode ser um pouco diferente em outras versões).
  • agora, ação-chave - no Language bar na barra de tarefas, clique no código do idioma e mude para EN (se você quiser usar o inglês no PowerPoint atualmente). A partir de agora, todo novo texto no PowerPoint estará no idioma selecionado: -)
  • se você quiser escrever em seu idioma original, basta alterá-lo de volta.
por 04.07.2016 / 14:52
2

Eu fiz um add-in em 2014 para mim, que ainda funciona bem no PowerPoint 2016. link

Ele procura por idiomas usados e permite que você mude de uma só vez, passando por cima.

    
por 20.10.2017 / 13:42