Ebenenweise kopieren
#14
Hallo Günther,

ich habe das Makro noch einmal umgebaut.
Das alte Makro hat bei jedem Import den Zusatz an die Ebennamen gehängt.
(Ein Bug der erst auffällt, wenn man eine zweite Datei importiert)

Das sind die Änderungen:
  • Die Ebenen werden nur einmal umbenannt.
  • Es muss nur eine Datei (Die Zieldatei) geöffnet sein.
    Wenn Nur eine Datei geöffnet ist, erscheint ein Import-Dialog.
  • Wenn zwei Dateien geöffnet sind muss jetzt die Zieldatei ausgewählt sein.
  • Die Objekte der importierten Ebenen sind nach dem Import ausgewählt
    und können sofort verschoben werden.

Code:
Sub EbenenImport2()
   Dim impOpt As StructImportOptions
   Dim impFlt As ImportFilter
   Dim Datei1 As Document, d As Document
   Dim L1 As Layer, L As Layer
   Dim EbenenD1 As Layers
   Dim ImpS As Shape
   Dim ImpDateiName As String, Suffix1 As String, Suffix2 As String, ImpSName As String
   Dim L1frei As Boolean
   Const EPropO As String = "Originalebene"
   
   Set Datei1 = ActiveDocument
   Set EbenenD1 = Datei1.Pages.First.Layers
   
   If Documents.Count < 1 Then Exit Sub
   If Documents.Count > 1 Then
       For Each d In Documents
           If Not d = Datei1 Then ImpDateiName = d.FullFileName: ImpSName = d.FileName
       Next
   Else
       ImpDateiName = CorelScriptTools.GetFileBox("CDR|*.cdr|Alle Dateien|*.*", "Importieren...", 0, "", , Datei1.FilePath)
   End If
   
   If Trim(ImpDateiName) = "" Then
       MsgBox "Keine Datei ausgewählt!", vbCritical, "Importfehler"
       Exit Sub
   Else
       ImpSName = Split(ImpDateiName, "\")(UBound(Split(ImpDateiName, "\")))
   End If
   
   Suffix1 = Chr(32) & Datei1.Name: Suffix1 = Left(Suffix1, Len(Suffix1) - 4)
   Suffix2 = Chr(32) & Split(ImpDateiName, "\")(UBound(Split(ImpDateiName, "\"))): Suffix2 = Left(Suffix2, Len(Suffix2) - 4)
       
   Application.Optimization = True
   Datei1.BeginCommandGroup "Importieren/Umbenennen"
   
   For Each L In EbenenD1
    If Not L.IsSpecialLayer Then
       If L1 Is Nothing Then Set L1 = L
       If Not L.Properties(EPropO, 1) Then
           L.Name = L.Name & Suffix1
           L.Properties(EPropO, 1) = True
           If L1 Is Nothing Then Set L1 = L
       End If
   End If
   Next
   
   L1frei = L1.Editable
   L1.Editable = True
   
   Set impOpt = CreateStructImportOptions
   With impOpt
       .MaintainLayers = True
       .Mode = cdrImportFull
   End With
   Set impFlt = Datei1.ActiveLayer.ImportEx(ImpDateiName, cdrCDR, impOpt)
   impFlt.Finish
   
   For Each L In EbenenD1
       If Not L.Properties(EPropO, 1) Then
           L.Name = L.Name & Suffix2
           L.Properties(EPropO, 1) = True
       End If
   Next
   
   Set ImpS = Datei1.Pages.First.FindShape(ImpSName)
   If Not ImpS Is Nothing Then
       Set L = EbenenD1.Parent.CreateLayer("Importebene")
       L.Properties(EPropO, 1) = True
       ImpS.MoveToLayer L
       If ImpS.TreeNode.ShapeType = cdrGroupShape Then ImpS.Ungroup
   End If
   
   L1.Editable = L1frei
   Datei1.EndCommandGroup
   Application.Optimization = False
   Application.Refresh
   
End Sub

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Karthagos
Zitieren



Nachrichten in diesem Thema
Ebenenweise kopieren - von Karthagos - 23.03.2022, 17:24
RE: Ebenenweise kopieren - von koter - 25.03.2022, 16:22
RE: Ebenenweise kopieren - von Karthagos - 25.03.2022, 17:48
RE: Ebenenweise kopieren - von koter - 25.03.2022, 22:59
RE: Ebenenweise kopieren - von Karthagos - 26.03.2022, 10:05
RE: Ebenenweise kopieren - von koter - 26.03.2022, 12:50
RE: Ebenenweise kopieren - von Karthagos - 26.03.2022, 13:33
RE: Ebenenweise kopieren - von Karthagos - 26.03.2022, 16:32
RE: Ebenenweise kopieren - von koter - 26.03.2022, 19:47
RE: Ebenenweise kopieren - von Karthagos - 26.03.2022, 21:01
RE: Ebenenweise kopieren - von Karthagos - 27.03.2022, 10:16
RE: Ebenenweise kopieren - von koter - 27.03.2022, 11:50
RE: Ebenenweise kopieren - von Karthagos - 28.03.2022, 21:52
RE: Ebenenweise kopieren - von koter - 29.03.2022, 20:31
RE: Ebenenweise kopieren - von Karthagos - 29.03.2022, 21:49

Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Stil kopieren Boerni 9 2.013 21.10.2022, 16:48
Letzter Beitrag: Boerni
  Eigenschaften kopieren maine-coon 3 1.487 08.12.2019, 23:49
Letzter Beitrag: norre
  CorelCraw 2017 - Gedenksekunde beim kopieren T3P4 15 5.697 24.10.2019, 15:33
Letzter Beitrag: mtemp
  CD2018: Ebenen gruppiert kopieren? Roelli 5 1.998 31.10.2018, 02:33
Letzter Beitrag: norre
  X6 kopieren eines Rechteckes dauert 10 Sekunden!!! nick 5 2.818 21.06.2016, 16:52
Letzter Beitrag: Hartmut
  Kopieren HMittermayr 3 2.108 29.02.2016, 16:11
Letzter Beitrag: norre
  Beim Kopieren und Einfügen verschwinden Buchstaben Farbstich69 16 7.442 18.09.2015, 18:14
Letzter Beitrag: Farbstich69
  X6: Kopieren in die Zwischenablage: 1 Sekunde Dauer? mtemp 2 1.466 19.12.2014, 13:56
Letzter Beitrag: mtemp
  Kopieren mit der rechten Maustaste, X5 OsCor 16 5.102 22.09.2014, 21:51
Letzter Beitrag: fritzbuser
  Eigenschaften kopieren von ... Janny01 1 1.565 08.05.2014, 15:06
Letzter Beitrag: norre