CorelDraw с использованием функции IF на основе текста
Я пытаюсь создать функцию IF на основе текста на странице.
Я работаю со слияниями печати и заполняю десятки полей слияния, которые скрыты и разделены на слои с объектами в зависимости от стиля, с которым они работают.
Я тогда вручную установил visibility = True
для этого стиля
Я знаю, что этот синтаксис неверен, но ради объяснения я пытаюсь сделать это;
If Layer("Style") contains text "MyStyleName"
Layer("MyStyleName").Visible = True
В настоящее время я использую этот код с MyStyleLayer1 до MyStyleLayer13 или около того
If ActivePage.Layers("MyStyleLayer1").Visible = True Then
ActivePage.Layers("MyStyleLayer1").Visible = False
Else: ActivePage.Layers("MyStyleLayer1").Visible = True
End If
Каждый слой стиля назначается сочетанию клавиш и отображается или скрывается вручную
Я пытаюсь автоматизировать этот процесс
1 ответ
Решение
Чтобы скрыть слои с именем contian 'Layer', вы можете использовать этот код
Sub HideLayer()
' Recorded 20.12.2015
Dim Mylayer As Layer
Dim searchstring As String
searchstring = "Layer"
For Each Mylayer In ActivePage.Layers
If InStr(1, Mylayer.Name, searchstring) > 0 Then
Mylayer.Visible = False
End If
Next
End Sub
Чтобы показать изменение слоя
Mylayer.Visible = False
в
Mylayer.Visible = true
Для поиска строки в тексте на странице используйте этот код
Public Sub TextFind()
Dim s As Shape
Dim WhatFind as String
Dim CountFind as integer
CountFind = 0
WhatFind = "I"
For Each s In ActiveDocument.ActivePage.Shapes
If s.Type = cdrTextShape Then
If InStr(1, s.Text.Story, WhatFind) > 0 Then
CountFind=CountFind+1
End If
End If
Next
If CountFind > 0 Then ' do what you want when WhatFind had searched in text
End If
End Sub