2010-10-26 4 views
1

je dois ajouter programmation (VBA/VSTO) plusieurs symboles spéciaux (par exemple, binettes) en texte dans une TextRange dans PowerPoint 2007.Insertion de symboles en texte dans PowerPoint 2007 en utilisant VBA

Je peux insérer un symbole à l'aide:

With ActiveWindow.Selection.TextRange 
    .Text = "sometext" 
    Call .Characters(.Characters.Count + 1).InsertSymbol("Arial", 65, MsoTriState.msoTrue) 
End With 

Malheureusement, lorsque je tente d'insérer plusieurs symboles l'un après l'autre avec des polices différentes, seule la dernière montre correctement et que les précédentes montrent que les places vides.

Comment puis-je insérer plusieurs symboles de polices différentes? Peut-être existe-t-il un moyen de créer un nouveau Run pour chaque symbole?

Répondre

2

Chaque InsertSymbol efface le contenu du TextRange, au moins dans mes tests.

Cependant, j'ai trouvé un moyen sans InsertSymbol. Répétez l'opération pour chaque symbole:

  • newRun.InsertAfter(character); // insert caractère symbole, et créer une nouvelle Run
  • définir la "Autre" police à la police symbole souhaité - important d'utiliser NameOther et non Name, sinon des symboles spéciaux tels que Copyright
  • vont disparaître si elles ne sont pas présents dans la police de caractères sélectionnée (par exemple, Wingdings ne possède pas le droit d'auteur symbole)
  • newRun.get_Characters(newRun.get_Characters(-1, -1).Count, 1).Font.NameOther = symbolFontName;
+0

Je travaille sur une fenêtre cachée, donc je ne peux pas utiliser les sélections ou la position du curseur. –

1

Créez un nouvel objet TextRange pour chaque .InsertSymbol.

Dim tr1 As TextRange 
Set tr1 = ActiveWindow.Selection.TextRange 
tr1.InsertSymbol "Wingdings", 81 
Dim tr2 As TextRange 
Set tr2 = ActiveWindow.Selection.TextRange 
tr2.InsertSymbol "Wingdings 2", 81 
0

Il m'a fallu beaucoup de temps et d'efforts pour résoudre ce problème. Puis j'ai dérangé et posté la solution.

Quelqu'un est occupé "Voting-Down" mes questions/réponses sans prendre la peine de comprendre la complexité ni les solutions.

Questions connexes