29.06.2024, 14:14
Und: Ich wollte als Laie wieder das Makro aufteilen, weil ich dieses Reinschauen ja nur für Umrisse brauche, und gerne einen Button für RGB und einen CMYK erstellen wurde.
(Füllung RGB und CMYK suchen und auswählen klappt perfekt, daher hier nur Umrisse)
Hier meine Versuche für einmal RGB Umriss auswählen und einmal CMYK Umriss:
Das klappt auch scheinbar, aber nur einmal, wenn ich dann andere Objekte auswähle, einfärbe und das RGB-Makro mal zwischendurch, dann geht es nicht mehr.
Das heißt: Kann ich das Makro, wenn ich es so aufteile wie oben, dann aber immerhin 1x richtig ausführen? Das würde mir auch ausreichen. Ich würde dann einfach das Dokument neu öffnen und eben einmal das eine oder das andere Makro ausführen.
(Füllung RGB und CMYK suchen und auswählen klappt perfekt, daher hier nur Umrisse)
Hier meine Versuche für einmal RGB Umriss auswählen und einmal CMYK Umriss:
Code:
Dim SRTemp As ShapeRange
Sub sucheCMYKoutline()
Call UmrissZeigen
ActivePage.SelectableShapes.FindShapes(Query:="@outline.Color.Type = 'cmyk'").CreateSelection
Call UmrissNull
End Sub
Sub UmrissZeigen(Optional x As Boolean)
Dim gsr As ShapeRange
ActiveDocument.Unit = cdrMillimeter
Set SRTemp = ActivePage.SelectableShapes.FindShapes(Query:="@outline.Width = {0mm}")
If SRTemp Is Nothing Then Exit Sub
Set gsr = ActivePage.SelectableShapes.FindShapes(, cdrGroupShape)
SRTemp.RemoveRange gsr
SRTemp.Shapes.All.SetOutlineProperties 1
End Sub
Sub UmrissNull(Optional x As Boolean)
If SRTemp Is Nothing Then Exit Sub
SRTemp.Shapes.All.SetOutlineProperties 0
Set SRTemp = Nothing
End Sub
Code:
Dim SRTemp As ShapeRange
Sub sucheRBGoutline()
Call UmrissZeigen
ActivePage.SelectableShapes.FindShapes(Query:="@outline.Color.Type = 'rgb'").CreateSelection
Call UmrissNull
End Sub
Sub UmrissZeigen(Optional x As Boolean)
Dim gsr As ShapeRange
ActiveDocument.Unit = cdrMillimeter
Set SRTemp = ActivePage.SelectableShapes.FindShapes(Query:="@outline.Width = {0mm}")
If SRTemp Is Nothing Then Exit Sub
Set gsr = ActivePage.SelectableShapes.FindShapes(, cdrGroupShape)
SRTemp.RemoveRange gsr
SRTemp.Shapes.All.SetOutlineProperties 1
End Sub
Sub UmrissNull(Optional x As Boolean)
If SRTemp Is Nothing Then Exit Sub
SRTemp.Shapes.All.SetOutlineProperties 0
Set SRTemp = Nothing
End Sub
Das heißt: Kann ich das Makro, wenn ich es so aufteile wie oben, dann aber immerhin 1x richtig ausführen? Das würde mir auch ausreichen. Ich würde dann einfach das Dokument neu öffnen und eben einmal das eine oder das andere Makro ausführen.
Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023