Hallo Stefan,
die Frage aus der PN beantworte lieber hier.
Ich sehe keinen Grund das Thema vertraulich zu behandeln.
Du hast mir diesen Code gesendet und mich gebeten das in ein Excel-Makro zu „übersetzen“.
Code:
Dim ea As Rect
Filter As ExportFilter
Set ea = CreateRect(ActivePage.LeftX, ActivePage.BottomY, ActivePage.SizeWidth, ActivePage.SizeHeight)
sp = "C:\Test\Test"
Set Filter = ActiveDocument.ExportBitmap(sp + ".jpg", cdrJPEG, cdrCurrentPage, cdrRGBColorImage, 1600, 1600, 300, 300, Transparent:=False, ExportArea:=ea)
Filter.Finish
Das Excel-Makro könnte so aussehen:
Code:
Option Explicit
Sub Coreltest()
Const cdrCurrentPage As Long = 1
Const cdrRGBColorImage As Long = 4
Const cdrJPEG As Long = 774
Dim CDraw As Object, CDDoc As Object, CDSeite As Object, CDFilter As Object, se As Object
Dim sp As String
Set CDraw = GetObject("", "CorelDraw.Application.17")
If CDraw.Visible Then
CDraw.InitializeVBA
Else
MsgBox "CorelDraw läuft nicht!", vbCritical, "Fehler"
Exit Sub
End If
Set CDDoc = CDraw.ActiveDocument
Set CDSeite = CDraw.ActivePage
sp = "C:\Test\Test"
Set se = CDraw.CreateStructExportOptions
With se
.ImageType = cdrRGBColorImage
.Transparent = False
.SizeX = 1600
.SizeY = 1600
.ResolutionX = 300
.ResolutionY = 300
Set .ExportArea = CDraw.CreateRect(CDSeite.LeftX, CDSeite.BottomY, CDSeite.SizeWidth, CDSeite.SizeHeight)
End With
Set CDFilter = CDDoc.ExportEx(sp & ".jpg", cdrJPEG, cdrCurrentPage, se, Nothing)
CDFilter.Finish
Set CDraw = Nothing
End Sub
Bei „GetObject“ musst Du die Nummer Deiner Version eintragen. Die 17 steht für X7.
Die Definition der Konstanten am Anfang des Makros kannst Du auch weglassen und nur die Werte verwenden.
Excel kennt natürlich keine Corel-Konstanten.
Ich rate Dir möglichst viele Programmteile in CorelDraw zu erstellen und in Excel nur das nötigste zu machen.
Wie Du am Codebeispiel sehen kannst ist es aufwändiger, CorelDraw von Excel aus zu programmieren.
Das gilt natürlich auch umgekehrt.
Viel Spaß und viel Erfolg beim Programmieren!
Gruß
Koter
Nachtrag: Wenn Du auf die Frage in der zweiten PN noch eine Antwort brauchst melde Dich bitte hier noch einmal.