Wpis z mikrobloga

Hej Mirki są tutaj jacyś mistrzowie VBA ? napisałem macro w PowerPoint do zmiany paragrafów (bulletów) na osobne boxy. Niestety zostają mi wkurzające puste linnie w każdym osobnym boksie (prócz ostatniego co jest zrozumiałe). Jest ktoś biegły kto jest w stanie mi pomóc ? Próbowałem już wielu sposobów łącznie z funkcją Len(Str), ale tutaj znowu, rozwiązanie prowadzi do tego, że w ostatnim boxie usuwa mi jedną literkę.- bo przeciez ostatni box nie ma dodatkowego paragrafu

Z góry dziękuje za pomoc !!! Ponizej kod:

Sub Osobneboxy()

Dim i As Integer
Dim sld As Slide
Dim shp As Shape



For i = 1 To 99

If ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs(i).Text = "" Then Exit For

Set sld = Application.ActiveWindow.View.Slide
Set shp = sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=50, Top:=(50 + 50 * i), Width:=200, Height:=50)

With shp

.Fill.Visible = msoFalse
.Line.Visible = msoFalse
.TextFrame.TextRange.Font.Name = "Arial"
.TextFrame.TextRange.Font.Color.RGB = RGB(0, 0, 0)
.TextFrame.TextRange.Font.Size = 10
.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = ppAlignLeft
.TextFrame.MarginLeft = 0
.TextFrame.MarginRight = 0
.TextFrame.MarginTop = 0
.TextFrame.MarginBottom = 0
.TextFrame.TextRange.Text = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs(i).Text
.TextFrame.TextRange.Text = Replace(shp.TextFrame.TextRange.Text, vbLf & vbCr, "")
End With

Next i

End Sub

#programowanie #vba
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

txt = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs(i).Text
If i < 99 Then
.TextFrame.TextRange.Text = Left(txt, Len(txt) - 1)
Else
.TextFrame.TextRange.Text = txt
End If

I wywal to ".TextFrame" do wewnętrznego With :)
  • Odpowiedz
Dzieki wszystkim za odpowiedz ;) Poradzilem sobie jednak juz inaczej: znalazlem takie cos

Dim otxR As Object
Const SPACE As String = " "
strTarget = Chr(32)
I
  • Odpowiedz