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


152

Sebbene questo thread sia piuttosto vecchio, Microsoft non ha fornito alcuna soluzione che io conosca. Suggerisco un altro approccio per gli utenti Mac: apri la tua presentazione in Keynote, cambia la lingua dell'ortografia e possibilmente modifica l'intera presentazione, quindi esportala in PowerPoint.



1
Sembra che la versione più recente di PowerPoint sia particolarmente buggy in questo senso. Ho una casella di testo in cui ho cambiato la lingua di tutto il testo in lingua A. (La lingua predefinita è B.) Quindi quando inizio a digitare all'interno di quella casella di testo, la lingua cambia automaticamente in B. Ho pensato che forse cambiando il valore predefinito il linguaggio aiuta (dopo aver provato tutto il resto) ma no. Ora la lingua predefinita è A, la lingua di tutti gli altri testi nella casella di testo è A (e ho riavviato PP) ma tutto il nuovo testo appare ancora come B. Quindi la mia unica domanda rimasta è: c'è un modo per cambiare la correzione spento del tutto?
Lebatsnok,

Sì, c'è un modo per disattivare il controllo ortografico: support.microsoft.com/en-us/help/937422/… - risolto il mio problema!
Lebatsnok,

Risposte:


166

Per cambiare facilmente la lingua dell'intero PowerPoint, aprire la scheda Visualizza e selezionare la vista Struttura .

Ora premi

  • Ctrl+ Aper selezionare tutto.
  • StrumentiLingua → Scegli la lingua da impostare.

Allo stesso modo, mentre hai tutto selezionato, puoi cambiare altre cose come caratteri, colori, ecc. Sebbene, in molti casi, ciò sia meglio fatto cambiando la diapositiva master, una presentazione che ha avuto molti editor può avere un sacco di set di formattazione "difficile" che si discosta dal master sottostante e deve essere ripristinato per essere coerente. Puoi anche reimpostare le singole diapositive sullo stile principale, ma ciò può comportare lo spostamento anche dei segnaposto, il che potrebbe essere indesiderabile in alcune situazioni.

PowerPoint 2013

  • VisualizzaContorno → seleziona tutte le diapositive (nel menu a sinistra) tramite Ctrl+ A.
  • RivediLinguaImposta lingua di prova ... → Scegli la lingua da impostare.

Per quanto mi riguarda, era necessario il riavvio di PowerPoint . Probabilmente perché ho anche cambiato la lingua di modifica :

  • RivediLinguaImposta lingua di prova ...Preferenze linguaScegli lingue di modifica .

31
Grazie per la risposta, ma dopo aver cambiato la lingua, il testo appena digitato è ancora nella lingua precedente (quella predefinita). Inoltre, se vai alle diapositive master, seleziona la diapositiva , noterai che la lingua nella barra della lingua è ancora quella predefinita e che il menu per cambiarla è disattivato. Sto impazzendo che non sia stato risolto da Microsoft per così tanti anni.
Endrju,

1
Eccezionale! Sebbene non sia perfetto, aiuta sicuramente. Sono d'accordo con @Endrju, perché non è ancora stato risolto ?!
Mike,

1
Per la cronaca, in Office 2013, il menu Lingua si trova nel riquadro Revisione (Imposta lingua di prova)
Maria Ines Parnisari,

2
Powerpoint è incredibilmente male, vero? In realtà mi manca usare l'ufficio aperto quando ho problemi come questo. Torno in ufficio non appena supportano il salvataggio in un video.
mjaggard,

2
La principale limitazione di ciò è che se qualcuno nella sua saggezza infinita creava una casella di testo personalizzata invece di utilizzare i layout di Titolo + Contenuto, questo non funzionava.
Lilienthal,

34

Utilizzando Powerpoint 2010 ho aperto il menu Struttura -

scheda struttura

Selezionato tutto il testo (Ctrl + A), aperto il menu della lingua e impostato la mia lingua di correzione

opzione di lingua

E ha funzionato!

Il menu della lingua si trova nella scheda della barra multifunzione Revisione (dopo la scheda Presentazione e non visibile sullo screenshot).


4
Funziona solo per una singola diapositiva
Helge Klein,

9
Funziona con layout di diapositive di base. Non cambierà la lingua per il testo all'interno di caselle di testo o nidificato in altre forme.
Duncan Jones,

Funziona anche su Office 2007.
Alfredo Osorio,

Ha funzionato anche su Office Mac.
Jim McKeeth,

23

Le risposte esistenti funzionano per il testo presente nella struttura. Sfortunatamente nel mio caso questo non ha riguardato una parte significativa del testo, inclusi figure, tabelle, 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 sopra può essere sostituito da qualsiasi lingua desiderata. L'elenco completo delle lingue è disponibile in questo articolo

(Il merito va a Ganesh Kumar che ha pubblicato qui la macro originale . Ho aggiunto il supporto per il primo livello di raggruppamento delle forme. Per migliorarla ulteriormente, la macro può essere ricorsiva per cercare gruppi che contengono altri gruppi, ecc.)


+1 Buon inizio. Vedi la mia risposta per una versione completamente ricorsiva basata su questa risposta.
Duncan Jones,

20

Ho migliorato la risposta di Inigo per fornire una versione ricorsiva che modifica tutti gli elementi nella lingua desiderata.

Questa versione esaminerà ricorsivamente ogni forma che è un tipo di gruppo. Alcune sperimentazioni suggeriscono che msoGroupe msoSmartArtsono i tipi di gruppo: sentiti libero di aggiungere a quell'elenco se trovi altri tipi di forme che possono contenere oggetti di testo.

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

1
Quando Compile error: Method or data member not found
eseguo

10

Basato sulle risposte di Inigo, Duncan, Maria e DomDev, funziona con forme, tabelle, 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

Per quanto riguarda altre soluzioni, su quando si esegue questo in PowerPoint 16.10 su OSX, ottengo: Compile error: Method or data member not found. Qualche soluzione suggerita? Sembra evidenziare .DefaultLanguageID.
Etienne Low-Décarie,

@ EtienneLow-Décarie: l'API potrebbe essere cambiata in PowerPoint 16; Non ce l'ho, quindi non posso controllare, scusa.
tricasse,

Funziona per me in Powerpoint 2016 su Windows 7 (la versione esatta di MS Office è il 16.0.11029.20108)
Christopher K.

Perfetto! L'unico miglioramento che mi viene in mente è cambiare la lingua anche per le sezioni delle note delle diapositive :)
Marcus Mangelsdorf,

7

La versione di Duncan funziona bene per tutto tranne che per le tabelle. 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

5

Oltre alla risposta fornita da Mastergalen e per rispondere ai commenti relativi al nuovo testo digitato:

Se noterai, quella lingua cambierà automaticamente ogni volta che inizi a digitare un nuovo testo (che è molto fastidioso), devi cambiare la lingua predefinita corrente per PowerPoint:

  • assicurarsi che la finestra di PowerPoint sia una finestra attiva
  • nel Windows Taskbar(sì, in realtà non in PowerPoint), controlla se Language barè visibile,
    • se non andare a Control Panel > Region and Language > Keyboards and Languages. Fare clic Change keybords..., passare alla Language barscheda e selezionare l' Docked in the taskbaropzione. (questo è da Win7, quindi potrebbe essere un po 'diverso in altre versioni).
  • ora azione chiave: nella Language barbarra delle applicazioni, fai clic sul codice della lingua e passa a EN (se attualmente desideri utilizzare l'inglese in PowerPoint). D'ora in poi, tutto il nuovo testo in PowerPoint sarà nella lingua selezionata :-)
  • se vuoi scrivere nella tua lingua originale, basta cambiarlo indietro.

1
Oh Dio, perché dovrebbero fare qualcosa del genere ?! Grazie, ha funzionato perfettamente.
Thibault D.

1
Esattamente! dovrebbe essere aggiunto anche alla risposta accettata.
M. Abdelhafid,

1
Ma questo cambia anche il layout della tastiera, non è vero? ... Voglio digitare il testo inglese ma voglio davvero mantenere il layout della tastiera tedesca ....
Johannes S.

2
@JohannesS. Se fai clic Encon il pulsante destro del mouse nella barra delle applicazioni e selezioni Settings.., vedrai in Lingue installate tedesco (DE) e inglese (En), se espandi inglese, verranno Keyboardselencati, espandi Tastiere e aggiungi la tua tastiera tedesca preferita, probabilmente rimuovi quella inglese anche. Non l'ho provato, ma dovrebbe funzionare in teoria ;-)
Gas

Aspetta, quindi devo cambiare la lingua della tastiera se voglio avere una lingua di correzione diversa? Questo è stupido.
Matěj Račinský,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.