J'essaye de comprendre comment identifier le type de balle et le changer, i. e. Vérifiez si les puces utilisées dans toute la présentation sont des puces de forme carrée. Sinon, une macro devrait changer le type de puce en carré.
Exemple: Dans cette image, je voudrais changer les puces de forme ronde en puces de forme carrée dans tout le jeu de diapositives.
3 Réponses :
Ils ne facilitent pas les choses. Vous devez remplacer la propriété BulletFormat.Character
par le numéro Unicode de la forme souhaitée. Voici ce que j'ai fait: j'ai une présentation où la deuxième diapositive est le titre et le contenu (deux formes). Dans la section Contenu, j'ai quatre puces. J'ai changé la première de la forme qu'elle est à la forme que je veux et j'exécute ceci:
111 Reality 9642 Consistency 9642 No Shortcuts 9642 The Right Tool
Cela parcourt les quatre puces (para) dans la deuxième forme de la deuxième diapositive et imprime sur la fenêtre immédiate le caractère de la puce suivi d'un peu de texte (pour être sûr que j'étais là où je pense que j'étais). Cela a produit:
Public Sub ChangeBullets() Dim para As TextRange For Each para In ActivePresentation.Slides(2).Shapes(2).TextFrame.TextRange.Paragraphs Debug.Print para.ParagraphFormat.Bullet.Character, Left(para.Text, 20) Next para ActivePresentation.Slides(2).Shapes(2).TextFrame.TextRange.Paragraphs(1).ParagraphFormat.Bullet.Character = 9642 End Sub
Cela me dit que la puce était 9642 (la même que ses frères) et je l'ai changée manuellement en 111. Maintenant que je connais le numéro Unicode, Je pourrais parcourir chaque diapositive, chaque forme, chaque paragraphe et changer le numéro de puce.
Dans la dernière ligne, je change la puce en 9642 juste pour m'assurer que je peux (et cela a fonctionné).
Vous pouvez jouer avec ceci pour voir les paramètres de vos puces.
J'ai ajouté quelques exemples pour expliquer comment définir la police, le caractère, la couleur, etc.
Private Sub UnderstandAndChangeBullets() Dim i As Integer ' loop through paragraphs of a shape: With Application.ActivePresentation.Slides(5).Shapes(1).TextFrame For i = 1 To .TextRange.Paragraphs.Count With .TextRange.Paragraphs(i).ParagraphFormat.Bullet If .Type = ppBulletUnnumbered Then Debug.Print "Size: " & .RelativeSize, ' 1, 1.25, ... Debug.Print "Color: " & .Font.Color.RGB, ' 0, RGB(255, 0, 0), vbRed, ... Debug.Print "Font: " & .Font.Name, ' Arial, Wingdings, Symbol, ... Debug.Print "Character: " & .Character ' 8226, 111, 167, 118, ... End If End With Next i End With ' ... or work with selected text: With Application.ActiveWindow.Selection If .Type = ppSelectionText Then For i = 1 To .TextRange.Paragraphs.Count ' ... like above Next i End If End With End Sub
p >
Les 2 autres réponses sont adéquates si les puces ont été créées en utilisant uniquement un formatage local. Si la présentation est normale, où les puces sont placées dans le masque des diapositives, ces puces rondes continueront de revenir comme une mauvaise odeur. Au lieu de cela, changez les puces en carré sur le masque des diapositives, puis réinitialisez toutes les diapositives pour forcer une mise à jour. Cela définit les niveaux 1, 3 et 5 sur des puces carrées:
Sub ChangeSomeBullets() Dim oSlide As Slide Dim oShape As Shape For Each oShape In ActivePresentation.Designs(1).SlideMaster.Shapes If oShape.Type = msoPlaceholder Then If oShape.PlaceholderFormat.Type = ppPlaceholderBody Then For X = 1 To oShape.TextFrame2.TextRange.Paragraphs.Count Select Case X Case 1, 3, 5 With oShape.TextFrame2.TextRange.Paragraphs(X).ParagraphFormat.Bullet .Font.Name = "Wingdings" .Character = 167 End With End Select Next X End If End If Next oShape For Each oSlide In ActivePresentation.Slides oSlide.CustomLayout = oSlide.CustomLayout Next oSlide End Sub
Penser au masque des diapositives est une bonne idée (+1 pour cela), mais réinitialiser chaque puce et réaffecter chaque CustomLayout peut-être pas.
oSlide.CustomLayout = oSlide.CustomLayout ne réaffecte pas les mises en page. C'est l'équivalent VBA de cliquer sur le bouton Réinitialiser dans l'interface utilisateur. Après avoir apporté des modifications à un masque, vous devez normalement réinitialiser les diapositives pour mettre à jour la diapositive avec la nouvelle mise en forme.