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.