Alterar o idioma da verificação ortográfica em uma apresentação do PowerPoint

42

Recebi uma apresentação em PowerPoint com dezenas de slides, cada um com várias caixas de texto. Embora a apresentação seja escrita em inglês, o idioma da verificação ortográfica está definido para o francês canadense. Estou tentando alterar o idioma para inglês, mas mesmo se eu selecionar todos os slides e selecionar um novo elemento na caixa de diálogo Idioma, o idioma das caixas de texto permanecerá o mesmo. Então, eu tenho que ir deslizando, deslizando, selecionando as caixas de texto e depois alterando o idioma individualmente.

Existe uma maneira melhor de fazer isso?

A versão do PowerPoint que instalei é o 2002 SP3.

Leonardo
fonte
Não consigo adicionar uma resposta (apesar de ter representante suficiente). Para os usuários de mac por aí: macscripter.net/viewtopic.php?id=38622 fornece um incrível script da apple que pode ser modificado para muitos usos.
Etienne Low-Décarie
A seguir, uma síntese do
Etienne Low-Décarie

Respostas:

34

Sei que uma resposta já foi aceita (à qual dei +1 porque funciona e está bem escrita), mas para algumas pessoas a idéia de criar, salvar, usar uma macro pode ser muito assustadora (ou podem ter configurações de segurança em lugar que dificulta isso). Portanto, uma solução mais fácil é usar a funcionalidade interna normal para fazer isso. O truque é poder selecionar todos os objetos em todos os slides de uma só vez, em vez dos próprios slides, e isso é facilmente alcançado na visualização Estrutura de tópicos (infelizmente, um recurso subutilizado, mas excelente para reorganizar um deck de slides, promover e rebaixar pedaços inteiros, por exemplo, marcadores> novos slides ou vice-versa).

Não tenho o PowerPoint 2002 ("XP"), por isso não tenho certeza se você precisa seguir as instruções para 2000 ou 2003, portanto, abrangeremos as duas aqui:

  • No PP 2000 : Vá para a exibição de estrutura de tópicos, que é o segundo ícone da esquerda na parte inferior esquerda da tela (parece linhas com recuos).
  • No PP 2003 em diante : Vá para a visualização "normal" (layout de três painéis) e, na parte superior do navegador de slides, escolha "estrutura de tópicos" em vez de "slides"

Em versões mais antigas, verifique se você tem a estrutura de tópicos barra de ferramentas visível ( View> Toolbars> Outlining) e clique no Expand allbotão (versões posteriores permitem que você chegar a este através de clique direito).

  • Ctrl-A para selecionar tudo.
  • Tools>> LanguageEscolha seu idioma para definir.
  • (do Powerpoint 2013) REVIEW> Language> Definir idioma Proofing

Tarefa concluída.

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.

AdamV
fonte
Apenas uma observação rápida: talvez faça a seguinte frase em negrito, para que a solução fique imediatamente clara: 'O truque é poder selecionar todos os objetos em todos os slides de uma só vez, em vez dos próprios slides, e isso é facilmente alcançado na visualização Outline '
Rabarberski 14/01
2
Obrigado AdamV, ótima resposta! O problema com essa abordagem, no entanto, é que, dependendo de como as caixas de texto foram adicionadas ao slide, elas podem não aparecer na exibição de estrutura de tópicos. Qual foi o caso de quase todos os objetos da apresentação que eu tive que corrigir.
Leonardo
Sim, acho que se as pessoas adicionam muitas caixas de texto independentes, elas precisam ser selecionadas usando um método como a macro original postada.
AdamV 21/03
Para mim, isso funcionou apenas no texto existente no PowerPoint 2010. Para o texto adicionado recentemente, o idioma ainda mudaria em alguns casos.
Pieter
Esta é de longe a maneira mais limpa de lidar com isso. Também funciona na versão 2013.
GoTTimw
18

Este tópico contém a resposta que funcionou para mim.

Os passos que segui foram:

  1. Crie uma nova macro:
    1.1. Vá para Ferramentas, Macro, Editor do Visual Basic.
    1.2 Insira um novo módulo vazio, selecionando Inserir, Módulo.
  2. Cole este código no painel direito e salve a macro:

    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
    

    msoLanguageIDEnglishAUSpode ser substituído por qualquer idioma desejado. A lista completa de idiomas pode ser encontrada aqui .

  3. Execute a macro (pressionando F5 no editor ou selecionando Ferramentas, Macro, Macros, ChangeSpellCheckingLanguage e clicando em Executar).

Depois disso, todos os elementos de texto na apresentação terão o novo idioma de ortografia.

Leonardo
fonte
11
Este código não afetará Shapes em grupos. Um código mais genérico está publicado em superuser.com/a/1119420/245595
sancho.s Reinstate Monica 31/08/16
3

Depois de muitas apresentações em que eu o fiz manualmente ou usei uma macro única, eu finalmente quebrei e o transformei em um suplemento adequado do PowerPoint.

Fiz upload no meu site: PowerPoint LanguageFixer

Ele cuida de:

  • definindo o idioma padrão
  • todas as formas com molduras de texto
  • quadros de texto em formas agrupadas (na medida do possível)
  • texto em tabelas
  • material no slide / nota / folheto mestre

Basta definir uma das caixas de texto para o idioma desejado, selecione-a e clique no botão.

Jan Schejbal
fonte
1

Aqui estão duas opções, dependendo da sua situação:


Situação 1: A cópia de origem do Office foi instalada a partir de uma mídia de instalação baseada no idioma francês do Canadá.

Você poderá definir o idioma padrão como inglês, mas as funções principais usarão o idioma nativo da mídia de instalação.

A única correção é desinstalar a versão em francês canadense e instalar a partir de uma mídia de instalação baseada em inglês ou copiar / colar toda a apresentação em um novo documento e reformatar.

.


Situação 2: Tudo parece estar em inglês, mas em circunstâncias limitadas aparecem idiomas estrangeiros.

Nessa situação, aqui estão as instruções de reparo para o Office 2002:

  1. Clique no menu Iniciar
  2. Aponte para Programas
  3. Aponte para Ferramentas do Microsoft Office
  4. Clique em Configurações de idioma do Microsoft Office XP.
  5. Clique na guia Idiomas ativados.
  6. Vá para a caixa Versão padrão do Microsoft Office
  7. Selecione o idioma que você deseja
  8. Clique OK. Aparecerá uma mensagem informando quais alterações serão feitas.
  9. Clique em Continuar.

Eu espero que isso ajude.

pjemmert
fonte
Obrigado pela sua resposta! Não foi nenhuma dessas situações, no entanto. O que acontece é que cada caixa de texto pode ser configurada para um idioma diferente para verificação ortográfica e, nesse cenário específico, todos os elementos tinham o idioma errado. O idioma padrão no sistema (e na instalação do escritório) é inglês.
Leonardo
0

Eu tive os mesmos problemas com apresentações feitas no PowerPoint em alemão e traduzido manualmente para o inglês. O problema é que a configuração de idioma é essencialmente uma formatação aplicada a cada elemento da caixa de texto por conta própria.

Não conheço nenhuma solução conveniente - tive que enfrentar a incompatibilidade ou alterar manualmente o "formato" do idioma de cada caixa de texto individual em cada slide. Não é divertido, então eu vivo com ele.

Torben Gundtofte-Bruun
fonte
0

O código publicado por Leonardo é simples e geralmente eficaz, mas não afeta Shapes em grupos. Um código mais genérico usa recursão para lidar com esse caso também (ligeiramente alterado daqui , que está no mesmo encadeamento que o código de Leonardo):

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
sancho.s Restabelecer Monica
fonte