J'ai reçu une présentation PowerPoint avec des dizaines de diapositives, chacune avec un certain nombre de zones de texte. Bien que la présentation soit écrite en anglais, la langue utilisée pour la vérification orthographique est le français canadien. J'essaie de changer la langue en anglais, mais même si je sélectionne toutes les diapositives et sélectionne un nouvel élément dans la boîte de dialogue Langue, la langue des zones de texte reste la même. Je dois donc parcourir diapositive en sélectionnant les zones de texte, puis en changeant la langue individuellement.
Y a-t-il une meilleure manière de faire cela?
La version de PowerPoint que j'ai installée est 2002 SP3.
Ce fil contient la réponse qui a fonctionné pour moi.
Les étapes que j'ai suivies étaient:
Collez ce code sur le panneau de droite et enregistrez 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
peut être remplacé par n'importe quelle langue souhaitée. La liste complète des langues peut être trouvée ici .
Exécutez la macro (en appuyant sur F5 dans l'éditeur ou en sélectionnant Outils, Macro, Macros, ChangeSpellCheckingLanguage et en cliquant sur Exécuter).
Après cela, tous les éléments de texte de la présentation auront la nouvelle langue d’orthographe.
Je sais qu’une réponse a déjà été acceptée (ce que j’ai donné +1 à puisque cela fonctionne et qu’elle est bien écrite), mais pour certaines personnes, l’idée de créer, enregistrer, utiliser une macro peut sembler trop effrayante (ou peut avoir des paramètres de sécurité endroit qui rend cela difficile à réaliser). Pour ce faire, une solution plus simple consiste à utiliser les fonctionnalités intégrées normales. L'astuce consiste à être capable de sélectionner tous les objets sur toutes les diapositives à la fois, plutôt que les diapositives elles-mêmes, et cela est facilement réalisé dans la vue Structure (malheureusement une fonctionnalité sous-utilisée, mais idéale pour la réorganisation un jeu de diapositives, favorisant et rétrogradant des morceaux entiers, par exemple des puces> de nouvelles diapositives ou inversement).
Je n'ai pas PowerPoint 2002 ("XP"), donc je ne sais pas si vous devez suivre les instructions pour 2000 ou 2003, je vais donc couvrir les deux ici:
Dans les versions antérieures, assurez-vous que la barre d’outumage est visible (View > Toolbars > Outlining) et cliquez sur le Expand all bouton (les versions ultérieures vous permettent d'y arriver par un clic droit).
Travail accompli.
De même, lorsque vous avez tout sélectionné, vous pouvez modifier d'autres éléments tels que les polices, les couleurs, etc. Bien que, dans de nombreux cas, il soit préférable de modifier le masque des diapositives, une présentation comportant de nombreux éditeurs peut comporter de nombreux ensembles de s'écarte du maître sous-jacent et doit être réinitialisé pour être cohérent. Vous pouvez également réinitialiser des diapositives individuelles sur le style principal, mais cela peut également entraîner le déplacement des espaces réservés, ce qui peut être indésirable dans certaines situations.
Après de nombreuses présentations où je l'ai fait à la main ou avec une macro unique, j'ai finalement réussi à en faire un complément PowerPoint approprié.
Je l'ai téléchargé sur mon site Web: PowerPoint LanguageFixer
Il s'occupe de:
Il suffit de définir l’une des zones de texte sur la langue souhaitée, de la sélectionner et de cliquer sur le bouton.
Voici deux options en fonction de votre situation:
Situation 1: la copie d'origine d'Office a été installée à partir d'un support d'installation basé en français canadien.
Vous pourrez définir la langue par défaut sur Anglais, mais les fonctions principales utiliseront la langue native du support d'installation.
La seule solution consiste à désinstaller la version française canadienne et à installer à partir d'un support d'installation anglais ou de copier/coller la présentation complète dans un nouveau document et de le reformater.
.
Situation 2: tout semble être en anglais, mais des langues étrangères apparaissent dans des circonstances limitées.
Dans cette situation, voici les instructions de réparation pour Office 2002:
J'espère que ça aide.
J'ai eu les mêmes problèmes avec les présentations faites avec PowerPoint allemand et traduites manuellement en anglais. Le problème est que le paramètre de langue est essentiellement une mise en forme qui est appliquée à chaque élément de la zone de texte séparément.
Je ne suis au courant d'aucune solution pratique. J'ai dû soit composer avec le décalage, soit modifier manuellement le "format" de langue de chaque zone de texte de chaque diapositive. Pas amusant, alors je vis surtout avec.
Le code publié par Leonardo est simple et généralement efficace, mais n'affectera pas Shape
s dans les groupes. Un code plus générique utilise également la récursivité pour traiter ce cas également (légèrement différent de ici , qui est dans le même fil que le code 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