Question

Cela apparaît à la fois .NET et en VBA. Le signe masculin:

mo fo

Vous remarquerez sur les lignes 4, 5, 6, 8, 10 et 12 il y a un caractère supplémentaire là. Ceci est d'une marque de paragraphe. Sur la ligne 3 est un caractère de tabulation, mais que seulement apparaît comme des espaces.

Cela se produit lorsque je tente de saisir le texte d'une .TextRange.Text dans PowerPoint. est au-dessus de la fenêtre immédiate dans le VBE, mais elle montre aussi des contrôles .NET lorsque je tente de mettre le texte dans un contrôle, comme un ListView.

Il peut être reproduit en ouvrant une nouvelle présentation PowerPoint, puis dans le VBE en cours d'exécution:

Sub Replicate()
    Dim ap As Presentation: Set ap = ActivePresentation
    Dim sl As Slide: Set sl = ap.Slides(1)
    sl.Shapes.Title.TextFrame.TextRange.Text = "One bad" & vbCrLf & "MOFO"
    Debug.Print s.Shapes.Title.TextFrame.TextRange.Text
End Sub

Comment puis-je me débarrasser de ce (à savoir montrer à rien en place du signe masculin)? Est-ce une sorte de mise en Unicode pour mes commandes ou RegEx sur la chaîne ou ...?

Était-ce utile?

La solution

Cet article vous aidera Explorer le PowerPoint TextRange objet, mais notez que quand il est d'un titre espace réservé est Chr (11) au lieu de Chr (13). Vous pouvez utiliser un TextRange.Replace(ChrW(11), " ") dessus pour le nettoyer.

Autres conseils

Sons comme Powerpoint est pas en utilisant la même convention de saut de ligne retour chariot que VB utilise. Vous pourriez avoir à remplacer le vbCrLf par une convention différente newline (faire votre propre paire de tableau d'octets à insérer).

au lieu de vbCrLf Utilisez cette vbLf & vbCr

Sub Replicate()
    Dim ap As Presentation: Set ap = ActivePresentation
    Dim sl As Slide: Set sl = ap.Slides(1)
    sl.Shapes.Title.TextFrame.TextRange.Text = "One bad" & vbLf & vbCr & "Line Feed above me"
End Sub

text alt

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top