2012-06-04 10:01:31 +0000 2012-06-04 10:01:31 +0000
166
166

Como posso alterar a linguagem de todos os slides em Powerpoint de uma só vez?

Quero alterar a linguagem de prova de todos os meus slides num Powerpoint. Tentei definir o idioma através do menu Preferências de Idioma, mas isto só o altera para novos powerpoints.

Respostas (8)

178
178
178
2013-03-17 17:29:41 +0000

Para alterar facilmente o idioma do entire PowerPoint, abra o separador Visualizar e seleccione a Visualizar em linha.

Agora prima

  • Ctrl+A para seleccionar tudo.
  • FerramentasIdioma Escolha o idioma a definir.

Da mesma forma, enquanto tem tudo seleccionado, pode alterar outras coisas como fontes, cores, etc. Embora em muitos casos isto seja melhor feito mudando o slide master, uma apresentação que teve muitos editores pode ter um conjunto de formatação ‘dura’ que se afasta do master subjacente e precisa de ser redefinida para ser consistente. Pode também repor os slides individuais para o estilo master, mas isto pode resultar na deslocação de suportes de slides também, o que pode ser indesejável em algumas situações.

PowerPoint 2013

  • View* → Outline → seleccionar todos os slides (num menu à esquerda) via Ctrl+A.
  • Review* → LínguaLíngua de prova…* → Escolha a sua língua a definir.

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

  • Review* → Language* → Set Proofing Language…Language PreferencesLanguage Preferences* → Choose Editing Languages*.
34
34
34
2012-06-04 10:01:32 +0000

Utilizando Powerpoint 2010 abri o menu Esboço -

Seleccionei todo o texto (Ctrl+A), abri o menu idioma e defini o meu idioma de prova

E funcionou!

O menu idioma está localizado no separador Fita de revisão (após o separador Mostrar slides e não visível na imagem do ecrã).

24
24
24
2013-08-09 08:11:56 +0000

As respostas existentes funcionam para o texto que está presente no esboço. Infelizmente no meu caso isto não cobriu 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” que é usado na macro acima pode ser substituído por qualquer língua desejada. A lista completa das línguas pode ser encontrada em este artigo

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

22
22
22
2013-11-25 09:52:03 +0000

Melhorei na resposta de Inigo para fornecer uma versão recursiva que altera todos os itens para a língua desejada.

Esta versão irá investigar recursivamente cada forma que é um tipo de grupo. Algumas experiências sugerem que msoGroup e msoSmartArt são os tipos de grupo - sinta-se à vontade para adicionar a essa lista se encontrar outros tipos de formas que possam conter objectos 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
10
10
10
2016-07-09 09:41:22 +0000

Baseado nas respostas de Inigo, Duncan, Maria e DomDev, este trabalha 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
7
7
7
2014-05-22 13:36:52 +0000

A versão da Duncan funciona bem para tudo menos para as mesas. 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
6
6
6
2016-07-04 12:52:11 +0000

Para além da resposta fornecida por Mastergalen e para endereçar comentários relativos a novos tipos de texto:

Se notar que esse idioma irá mudar automaticamente sempre que começar a escrever novo texto (o que é muito irritante), tem de alterar o idioma predefinido para o PowerPoint:

  • certifique-se de que a janela do PowerPoint é uma janela activa
  • no Windows Taskbar (sim, na verdade não no PowerPoint), verifique se o Language bar está visível,
  • se não for para o Control Panel > Region and Language > Keyboards and Languages. Clique em Change keybords..., mude para o separador Language bar e marque a opção Docked in the taskbar. (isto é do Win7, portanto pode ser um pouco diferente noutras versões).
  • agora acção-chave - no Language bar na barra de tarefas, clique no código da língua e mude para EN (se quiser utilizar actualmente o inglês no PowerPoint). A partir de agora, todos os novos textos em PowerPoint estarão na língua seleccionada :-)
  • se quiser escrever na sua língua original, basta voltar a alterá-la.
3
3
3
2017-10-20 11:42:30 +0000

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

Procura idiomas usados, e permite mudar tudo de uma só vez, fazendo looping over.