Не может выключить Режим проектирования в Word VBA

Я озадачен об этой вещи - при записи макроса, где я в основном добавляю некоторые поля и вхожу в Режим проектирования, чтобы смочь заменить фиктивный текст заполнителя. Теперь, я выхожу из Режима проектирования при записи макроса, и все, кажется, работает хорошо. Но при проигрывании макроса, это просто останавливается после ActiveDocument.ToggleFormsDesign.

Что могло вызывать это? Кто-либо еще испытал это?

Вот отрывок макроса:

Selection.Range.ContentControls.Add (wdContentControlText)
ActiveDocument.ToggleFormsDesign
Selection.TypeText Text:="Date"
Selection.MoveLeft Unit:=wdCharacter, Count:=4, Extend:=wdExtend
Selection.Style = ActiveDocument.Styles("TextRed")
ActiveDocument.ToggleFormsDesign
1
задан Cindy Meister 21 December 2018 в 19:38
поделиться

1 ответ

Причина в том, что объект Selection теряется после ToggleDesignMode - то есть больше нет объекта Selection. В записанном вами примере вы повторно выбрали место для ввода "Дата", но Word не знает, где выбрать.

Способ обойти это - использовать записанные макросы в качестве отправной точки, но затем дополнительно очистить их. Например, так:

Sub InsertContentControl()
    Dim myDoc As Document
    Set myDoc = ActiveDocument
    Dim tr As Style
    Set tr = myDoc.Styles("TextRed"):
    Dim cc As ContentControl
    Dim sel As Range
    Set sel = Selection.Range
    Set cc = sel.ContentControls.Add(wdContentControlText)
    cc.SetPlaceholderText Text:="Date"
    cc.DefaultTextStyle = tr
End Sub

Чтобы сделать это с новым стилем, используйте следующее:

Sub InsertContentControlwithNewStyle()
    Dim myDoc As Document
    Set myDoc = ActiveDocument
    Dim tr As Style
    Set tr = myDoc.Styles.Add("New TextRed")
    tr.BaseStyle = wdStyleNormal
    tr.Font.ColorIndex = wdRed
    Dim cc As ContentControl
    Dim sel As Range
    Set sel = Selection.Range
    Set cc = sel.ContentControls.Add(wdContentControlText)
    cc.SetPlaceholderText Text:="Date"
    cc.DefaultTextStyle = tr
End Sub
2
ответ дан 2 September 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: