Come posso cambiare la lingua di tutte le diapositive di Powerpoint contemporaneamente?

Voglio cambiare il linguaggio di prova di tutte le mie diapositive in un Powerpoint. Ho provato a impostare la lingua tramite il menu Preferenze lingua, tuttavia questo cambia solo per nuovi punti di potenza.

So che una risposta è già stata accettata, ma che cambia solo la lingua di prova di una singola casella di text e richiede di cambiarle manualmente.

Per modificare facilmente la lingua di tutto il PowerPoint, aprire la scheda Visualizza e select la vista Struttura .

Ora premi

  • Ctrl + A per select tutti.
  • StrumentiLingua → Scegli la lingua da impostare.

Allo stesso modo, mentre hai tutto selezionato puoi cambiare altre cose come i caratteri, i colors ecc. Anche se in molti casi questo è meglio fatto cambiando il master di diapositive, una presentazione che ha avuto molti redattori può avere un sacco di set di formattazione 'hard' si discosta dal master sottostante e ha bisogno di un ripristino per essere coerente. È inoltre ansible ripristinare le diapositive individuali allo stile master, ma ciò può comportre che i segnaposto si spostano, cosa che può essere indesiderabile in alcune situazioni.

PowerPoint 2013

  • VisualizzaOutline → seleziona tutte le diapositive (in un menu sinistro) tramite Ctrl + A.
  • RecensioneLinguaImposta lingua Proofing … → Scegli la lingua da impostare.

Per quanto mi riguarda – è stato necessario riavviare PowerPoint. Probabilmente perché anche io ho cambiato la lingua di modifica :

  • RecensioneLinguaImposta lingua Proofing …Preferenze linguaScegli Modifica lingue .

Utilizzando Powerpoint 2010 ho aperto il menu Outline –

scheda di contorno

Selezionato tutto il text (Ctrl + A), ha aperto il menu di lingua e impostato il mio linguaggio di correzione

lingua

E ha funzionato!

Il menu della lingua si trova nella scheda Ribbon Review (dopo la scheda Presentazione e non è visibile sullo screenshot).

Le risposte esistenti funzionano per il text presente nel contorno. Purtroppo nel mio caso questo non copriva una parte significativa del text, incluse figure, tavole, ecc.

Questa macro ha risolto il problema per me:

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 

Il "msoLanguageIDEnglishUS" utilizzato nella macro di cui sopra può essere sostituito da qualsiasi lingua desiderata. L'elenco completo delle lingue è disponibile in questo articolo

(Credito va a Ganesh Kumar che ha pubblicato qui la macro originale, ho aggiunto il supporto per il primo livello di raggruppamento delle forms per migliorare ulteriormente la macro può essere ricorsiva per cercare gruppi che contengono altri gruppi ecc.

Mi sono migliorata sulla risposta di Inigo per fornire una versione ricorsiva che modifica tutti gli elementi nella lingua desiderata.

Questa versione indaga ricorsivamente each forma che è un tipo di gruppo. Alcune sperimentazioni suggeriscono che i gruppi di msoGroup e msoSmartArt sono i tipi di gruppo – è libero di aggiungere l'elenco se si trovano altri tipi di forms che possono contenere oggetti di text.

 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 

La versione di Duncan funziona bene per tutto tranne i tavoli. Ho trovato un altro codice che sembra funzionare anche con le tabelle: 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 

Sulla base delle risposte di Inigo, Duncan, Maria e DomDev, questo funziona per forms, tavoli, gruppi, SmartArt, ora e in 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 

Oltre alla risposta fornita da Mastergalen e ad affrontare i commenti riguardanti il ​​text di nuovo tipo:

Se noterai, quel linguaggio cambierà automaticamente each volta che inizierai a digitare un nuovo text (che è molto fastidioso), devi cambiare la lingua di default di PowerPoint:

  • assicurarsi che la window PowerPoint sia una window triggers
  • nella Windows Taskbar (sì, in realtà non in PowerPoint), controllare se è visibile la Language bar ,
    • se non passare a Control Panel > Region and Language > Keyboards and Languages . Fare clic su Change keybords... , passare alla scheda Language bar e select Docked in the taskbar . (questo è da Win7, quindi potrebbe essere un po 'diverso in altre versioni).
  • ora azione chiave – nella Language bar nella barra delle applicazioni, fare clic sul codice linguaggio e passare a EN (se si desidera attualmente utilizzare l'inglese in PowerPoint). Da ora in poi tutti i nuovi testi in PowerPoint saranno nella lingua selezionata 🙂
  • se vuoi scrivere nella tua lingua originale, basta cambiarlo.