it-swarm-eu.dev

Modificare la lingua di controllo ortografico in una presentazione di PowerPoint

Ho ricevuto una presentazione di PowerPoint con dozzine di diapositive, ognuna con un numero di caselle di testo. Sebbene la presentazione sia scritta in inglese, la lingua per il controllo ortografico è impostata su 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 scorrere per slide selezionando le caselle di testo e poi cambiando la lingua individualmente.

C'è un modo migliore per farlo?

La versione di PowerPoint che ho installato è 2002 SP3.

40
Leonardo

Questa discussione 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, Visual Basic Editor.
    1.2. Inserisci 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
    

    msoLanguageIDEnglishAUS può essere sostituito da qualsiasi lingua desiderata. L'elenco completo delle lingue può essere trovato qui .

  3. Esegui la macro (premendo F5 all'interno dell'editor o selezionando Strumenti, Macro, Macro, ChangeSpellCheckingLanguage e facendo clic su Esegui).

Dopo che tutti gli elementi di testo all'interno della presentazione avranno il nuovo linguaggio di compitazione.

17
Leonardo

So che una risposta è già stata accettata (che ho dato +1 perché funziona e è ben scritta), ma per alcune persone l'idea di creare, salvare, usare una macro potrebbe essere troppo spaventosa (o potrebbero avere impostazioni di sicurezza in luogo che rende difficile raggiungerlo). Quindi una soluzione più semplice è usare la normale funzionalità integrata per farlo. Il trucco è di essere in grado di selezionare tutti gli oggetti su tutte le diapositive contemporaneamente, piuttosto che le diapositive stesse, e questo è facilmente raggiungibile nella vista Struttura (purtroppo una funzionalità sottoutilizzata, ma ideale per riorganizzare un mazzo di diapositive, promuovendo e degradando interi blocchi, ad esempio proiettili> nuove diapositive o viceversa).

Non ho PowerPoint 2002 ("XP"), quindi non sono sicuro se è necessario seguire le istruzioni per il 2000 o per il 2003, quindi copro entrambi qui:

  • In PP 2000 : vai alla vista struttura, che è la seconda icona da sinistra in basso a sinistra dello schermo ( assomiglia a linee con rientranze).
  • In PP 2003 in poi : Vai alla vista "normale" (tre riquadri) e nella parte superiore del navigatore della diapositiva scegliere "outline" piuttosto che "slide"

Nelle versioni precedenti, assicurati di avere la barra degli strumenti Struttura visibile (View > Toolbars > Outlining) e fare clic su Expand all pulsante (le versioni successive consentono di ottenere ciò tramite clic destro).

  • Ctrl-A per selezionare tutto.
  • Tools > Language > Scegli la lingua da impostare.
  • (da PowerPoint 2013) REVIEW > Language > Imposta lingua di correzione

Lavoro fatto.

Allo stesso modo quando hai tutto selezionato puoi cambiare altre cose come font, colori, ecc. Anche se ovviamente in molti casi è meglio cambiare il master della diapositiva, una presentazione che ha avuto molti editor può avere un sacco di set di formattazione "hard" che devia dal master sottostante e deve essere ripristinato per essere coerente. Puoi anche reimpostare le diapositive individuali nello stile principale, ma ciò potrebbe comportare il movimento dei segnaposto, il che potrebbe non essere opportuno in alcune situazioni.

33
AdamV

Dopo molte presentazioni in cui l'ho fatto a mano o ho usato una macro one-off, alla fine ho rotto e l'ho trasformato in un vero e proprio add-in per PowerPoint.

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 manuale

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

3
Jan Schejbal

Ecco due opzioni a seconda della situazione:


Situazione 1: la copia originaria 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 di base useranno la lingua nativa del supporto di installazione.

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

.


Situazione 2: Tutto sembra essere inglese, ma in circostanze limitate appaiono lingue straniere.

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

  1. Fai clic sul menu Start
  2. Puntare su Programmi
  3. Puntare su strumenti di Microsoft Office
  4. Fare clic su Microsoft Office XP Impostazioni lingua.
  5. Fare clic sulla scheda Lingue abilitate.
  6. Vai alla versione di default della casella di Microsoft Office
  7. Seleziona la lingua che desideri
  8. Clicca OK. Apparirà un messaggio che ti dirà quali modifiche saranno apportate.
  9. Clicca Continua

Spero che questo possa essere d'aiuto.

1
pjemmert

Ho avuto gli stessi problemi con le presentazioni fatte con PowerPoint tedesco e tradotto 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 modificare manualmente il "formato" della lingua di ogni singola casella di testo su ciascuna diapositiva. Non è divertente, quindi per lo più io vivo con esso.

Il codice pubblicato da Leonardo è semplice e generalmente efficace, ma non influenzerà Shapes nei gruppi. Un codice più generico utilizza la ricorsione per gestire anche questo caso (leggermente modificato da qui , che è nella stessa discussione 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
0
sancho.s