Вопрос

Я работал над небольшим взломом с точкой питания, чтобы автоматически создать форму текстового поля с некоторым заданным эффектом, в котором текст динамически извлекается из буфера обмена. У меня здесь есть небольшая проблема, функциональность прекрасно работает со следующим VB -скриптом с макросами.

Sub ReadFromFile()

' CLIPBOARD
Dim MyData As DataObject
Dim strClip As String

' CLIPBOARD
Set MyData = New DataObject
MyData.GetFromClipboard
strClip = MyData.GetText

Set activeDocument = ActivePresentation.Slides(1)


 With activeDocument
        'Set QASlide = .Slides.Add(Index:=.Slides.Count + 0, Layout:=ppLayoutBlank)

        activeDocument.Shapes.AddTextEffect PresetTextEffect:=msoTextEffect28, _
        Text:=strClip, _
        FontName:="Garde Gothic", FontSize:=44, FontBold:=msoTrue, _
        FontItalic:=msoFalse, Left:=25, Top:=25

        With .Shapes(.Shapes.Count)
        .Width = 200
        .Height = 300
        End With

 End With

End Sub

Может ли кто -нибудь помочь мне предоставить сценарий для обертывания текста внутри формы, которая имеет определенную ширину и высоту, как в коде выше?

Это было полезно?

Решение

Не уверен, что я понимаю вас правильно, но добавляю добавление .TextFrame.WordWrap = msoTrue в блоке ниже решить вашу проблему?

    With .Shapes(.Shapes.Count)
    .Width = 200
    .Height = 300
    End With

Другие советы

Я думаю, вы ищете это:

.Shapes(.Shapes.Count).TextFrame.TextRange.Text = strClip

Вы можете установить его в то же самое With что вы устанавливаете высоту и ширину

Если вы хотите, чтобы текст упал в форме, вам придется использовать что -то другое, кроме формы Texteffect.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top