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
Другие вопросы по тегам