Quel est ce personnage étrange et comment puis-je me débarrasser?
-
28-09-2019 - |
Question
Cela apparaît à la fois .NET et en VBA. Le signe masculin:
♂
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 ...?
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