Cambia la lingua di controllo ortografico in una presentazione di PowerPoint


42

Ho ricevuto una presentazione di PowerPoint con dozzine di diapositive, ognuna con una serie di caselle di testo. Sebbene la presentazione sia scritta in inglese, la lingua per il controllo ortografico è impostata sul francese canadese. Sto cercando di cambiare la lingua in inglese, ma anche se seleziono tutte le diapositive e seleziono un nuovo elemento nella finestra di dialogo Lingua, la lingua delle caselle di testo rimane la stessa. Quindi devo andare diapositiva per diapositiva selezionando le caselle di testo e quindi cambiando la lingua individualmente.

C'è un modo migliore per farlo?

La versione di PowerPoint che ho installato è 2002 SP3.


Non riesco ad aggiungere una risposta (nonostante abbia un rappresentante sufficiente). Per gli utenti mac là fuori: macscripter.net/viewtopic.php?id=38622 fornisce uno straordinario script Apple che può essere modificato per molti usi.
Etienne Low-Décarie

Ecco una sintesi del sopra citato script di mele: gist.github.com/4440395
Etienne Low-Décarie

Risposte:


35

So che una risposta è già stata accettata (a cui ho dato +1 poiché funziona ed è ben scritta), ma per alcune persone l'idea di creare, salvare, utilizzare una macro potrebbe essere troppo spaventosa (o potrebbero avere impostazioni di sicurezza in luogo che lo rende difficile da raggiungere). Quindi una soluzione più semplice è utilizzare la normale funzionalità integrata per fare ciò. Il trucco è essere in grado di selezionare tutti gli oggetti su tutte le diapositive contemporaneamente, anziché le diapositive stesse, e questo è facilmente realizzabile nella vista Struttura (purtroppo una funzionalità sottoutilizzata, ma ottima per riorganizzare un mazzo di diapositive, promuovere e retrocedere pezzi interi, ad es. proiettili> nuove diapositive o viceversa).

Non ho PowerPoint 2002 ("XP"), quindi non sono sicuro che sia necessario seguire le istruzioni per il 2000 o per il 2003, quindi tratterò entrambi qui:

  • In PP 2000 : vai alla vista struttura, che è la seconda icona da sinistra nella parte inferiore sinistra dello schermo (sembra linee con rientranze).
  • A partire da PP 2003 : vai alla vista "normale" (layout a tre riquadri) e nella parte superiore del navigatore delle diapositive scegli "struttura" anziché "diapositive"

Nelle versioni più vecchie, assicurarsi di avere la barra degli strumenti Struttura visibile ( View> Toolbars> Outlining) e fare clic sul Expand alltasto (le versioni successive consentono di ottenere a questo tramite tasto destro del mouse).

  • Ctrl-A per selezionare tutto.
  • Tools>> LanguageScegli la lingua da impostare.
  • (da Powerpoint 2013) REVIEW> Language> Lingua Set di correzione

Lavoro fatto.

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.


Solo una breve nota: forse rendere audace la seguente frase, in modo che la soluzione sia immediatamente chiara: 'Il trucco è essere in grado di selezionare tutti gli oggetti su tutte le diapositive contemporaneamente, anziché le diapositive stesse, e questo è facilmente raggiungibile nella vista Contorno '
Rabarberski,

2
Grazie AdamV, ottima risposta! Il problema con questo approccio, tuttavia, è che, a seconda di come le caselle di testo sono state aggiunte alla diapositiva, potrebbero non essere visualizzate nella vista struttura. Il che era praticamente il caso di quasi tutti gli oggetti della presentazione che dovevo correggere.
Leonardo

Sì, immagino che se le persone aggiungono molte caselle di testo indipendenti, queste devono essere selezionate usando un metodo come la macro originale pubblicata.
AdamV,

Per me, questo ha funzionato solo su testo esistente in PowerPoint 2010. Per il testo appena aggiunto, la lingua cambierebbe comunque in alcuni casi.
Pieter,

Questo è di gran lunga il modo più pulito di affrontarlo. Funziona anche nella versione 2013.
GoTTww

18

Questo thread contiene la risposta che ha funzionato per me.

I passi che ho seguito sono stati:

  1. Crea una nuova macro:
    1.1. Vai a Strumenti, Macro, Editor di Visual Basic.
    1.2. Inserire un nuovo modulo vuoto selezionando Inserisci, Modulo.
  2. Incolla questo codice sul pannello di destra e salva la 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
    

    msoLanguageIDEnglishAUSpuò essere sostituito da qualsiasi lingua desiderata. L'elenco completo delle lingue è disponibile qui .

  3. Eseguire la macro (premendo F5 nell'editor o selezionando Strumenti, Macro, Macro, Cambia lingua controllo lingua e facendo clic su Esegui).

Dopodiché tutti gli elementi di testo all'interno della presentazione avranno il nuovo linguaggio ortografico.


1
Questo codice non influirà su Shapes nei gruppi. Un codice più generico è pubblicato in superuser.com/a/1119420/245595
sancho.s Ripristina Monica

3

Dopo molte presentazioni in cui l'ho fatto a mano o ho usato una macro una tantum, ho finalmente rotto e trasformato in un componente aggiuntivo di PowerPoint corretto.

L'ho caricato sul mio sito Web: PowerPoint LanguageFixer

Si occupa di:

  • impostazione della lingua predefinita
  • tutte le forme con cornici di testo
  • cornici di testo in forme raggruppate (per quanto possibile)
  • testo nelle tabelle
  • roba sulla diapositiva / nota / master dispensa

Basta impostare una delle caselle di testo sulla lingua desiderata, selezionarla e fare clic sul pulsante.


1

Ecco due opzioni a seconda della situazione:


Situazione 1: la copia di origine di Office è stata installata da un supporto di installazione in lingua francese canadese.

Sarai in grado di impostare la lingua predefinita in inglese, ma le funzioni principali useranno la lingua nativa del supporto di installazione.

L'unica soluzione è disinstallare la versione francese canadese e installarla da un supporto di installazione basato in inglese o copiare / incollare l'intera presentazione in un nuovo documento e riformattare.

.


Situazione 2: tutto sembra essere inglese, ma in circostanze limitate compaiono lingue straniere.

In questa situazione, ecco le istruzioni per la riparazione di Office 2002:

  1. Fai clic sul menu Start
  2. Puntare su Programmi
  3. Scegliere Strumenti di Microsoft Office
  4. Fai clic su Impostazioni lingua di Microsoft Office XP.
  5. Fai clic sulla scheda Lingue abilitate.
  6. Vai alla casella Versione predefinita di Microsoft Office
  7. Seleziona la lingua che desideri
  8. Clicca OK. Apparirà un messaggio che ti dice quali modifiche verranno apportate.
  9. Fai clic su Continua

Spero che aiuti.


Grazie per la tua risposta! Non era nessuna di quelle situazioni, comunque. Quello che succede è che ogni casella di testo può essere impostata in una lingua diversa per il controllo ortografico e in questo particolare scenario tutti gli elementi avevano la lingua sbagliata. La lingua predefinita nel sistema (e nell'installazione dell'ufficio) è l'inglese.
Leonardo,

0

Ho avuto gli stessi problemi con le presentazioni fatte con PowerPoint tedesco e tradotte manualmente in inglese. Il problema è che l'impostazione della lingua è essenzialmente una formattazione che viene applicata a ciascun elemento della casella di testo da solo.

Non sono a conoscenza di alcuna soluzione conveniente: ho dovuto convivere con la mancata corrispondenza o cambiare manualmente il "formato" della lingua di ogni singola casella di testo su ogni diapositiva. Non è divertente, quindi per lo più ci vivo.


0

Il codice pubblicato da Leonardo è semplice e generalmente efficace, ma non influenzerà Shapei messaggi di gruppo. Un codice più generico utilizza la ricorsione per affrontare anche quel caso (leggermente modificato da qui , che è nello stesso thread del codice di 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
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.