Forum FlexPro – Discuss your topic!

EMF Export über VBA

Home > Community > Automation and VBA > EMF Export über VBA

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • #12391
    Stefan PalaveevStefan Palaveev
    Mitglied

    Hallo,

    ich habe eine kleine Prozedur geschrieben, die Bilder im EMF Format exportieren soll.

    Sub Export()

    Dim Anzahl_Folder As Integer
    Dim File_Name As String

    Anzahl_Folder = ActiveDatabase.RootFolder.Objects(“.*.FLD”).Count – 1

    For i = 1 To Anzahl_Folder Step 2

    If i < 10 Then File_Name = "Bild_00" & i
    If i = 10 Then File_Name = “Bild_0” & i
    If i >= 100 And i = 1000 Then MsgBox (“Anzahl Bilder zu groß”)

    ActiveDatabase.Object(“\Auswertung\Messung_Nummer”).Open = True
    ActiveDatabase.ActiveObject.Selection.ActiveValue = i
    ActiveDatabase.Object(“\Auswertung\Export_Document.DOC”).Open = True
    Application.UpdateAll

    ActiveDatabase.ActiveObject.Selection.Export fpExportFormatEMF, _
    “D:\Data\Export\” & File_Name & “.emf”

    Next i

    ActiveDatabase.Object(“\Auswertung\Messung_Nummer”).Open = False

    End Sub

    Die “Messung_Nummer” ist ein Datensatz aus einer Ganzzahl auf den eine Formel zugreift, die die Werte für das Diagramm aufbereitet.

    An sich läuft die Prozedur auch ganz gut, nur bestehen die Bilder aus weißer Farbe und sonst nichts. Die Prozedur funktioniert auch nur mit EMF und WMF nicht. PNGs und JPEG werden ausgegeben wie gewünscht.
    Exportiere ich die Bilder manuel als EMF über Rechtsklick auf das Dokument->Exporteren->Speichern, dann ist das Problem auch nicht mehr da. Ist das Problem bekannt und können Sie mir dabei helfen?

    Danke

    #8074
    Stefan PalaveevStefan Palaveev
    Mitglied

    Hallo,

    ich habe eine kleine Prozedur geschrieben, die Bilder im EMF Format exportieren soll.

    Sub Export()

    Dim Anzahl_Folder As Integer
    Dim File_Name As String

    Anzahl_Folder = ActiveDatabase.RootFolder.Objects(“.*.FLD”).Count – 1

    For i = 1 To Anzahl_Folder Step 2

    If i < 10 Then File_Name = "Bild_00" & i If i < 100 And i >= 10 Then File_Name = “Bild_0” & i
    If i >= 100 And i < 1000 Then File_Name = "Bild_" & i If i >= 1000 Then MsgBox (“Anzahl Bilder zu groß”)

    ActiveDatabase.Object(“\Auswertung\Messung_Nummer”).Open = True
    ActiveDatabase.ActiveObject.Selection.ActiveValue = i
    ActiveDatabase.Object(“\Auswertung\Export_Document.DOC”).Open = True
    Application.UpdateAll

    ActiveDatabase.ActiveObject.Selection.Export fpExportFormatEMF, _
    “D:\Data\Export\” & File_Name & “.emf”

    Next i

    ActiveDatabase.Object(“\Auswertung\Messung_Nummer”).Open = False

    End Sub

    Die “Messung_Nummer” ist ein Datensatz aus einer Ganzzahl auf den eine Formel zugreift, die die Werte für das Diagramm aufbereitet.

    An sich läuft die Prozedur auch ganz gut, nur bestehen die Bilder aus weißer Farbe und sonst nichts. Die Prozedur funktioniert auch nur mit EMF und WMF nicht. PNGs und JPEG werden ausgegeben wie gewünscht.
    Exportiere ich die Bilder manuel als EMF über Rechtsklick auf das Dokument->Exporteren->Speichern, dann ist das Problem auch nicht mehr da. Ist das Problem bekannt und können Sie mir dabei helfen?

    Danke

    #8606
    Bernhard KantzBernhard Kantz
    Teilnehmer

    Sorry, but we cannot reproduce your problem.

    Perhaps you have selected the wrong object. You should not use the Selection-method. Use the Object-method to get the diagram object and export this object.

    Example:

    
        Dim oDiagram As Diagram2D
        Set oDiagram = ActiveDatabase.RootFolder.Object("2D-Diagram", fpObjectType2DDiagram)
        oDiagram.Export fpExportFormatEMF, "c:\temp\Diagram.emf"
    

    support@weisang.com

    #8607
    Stefan PalaveevStefan Palaveev
    Mitglied

    Vielen Dank für Ihre Hilfe.

    In meinem Fall handelt es sich um ein einseitiges Dokument und die Default SeitenNr. war seltsamerweise auf -1 gesetzt. Durch manuelle Eingabe der SeitenNr. wurde das Problem gelöst. Der richtige Code lautet dann:

    Sub ExportEMF()
    Dim oDocument As Document
    Set oDocument = ActiveDatabase.RootFolder.Object(“TestDocument.DOC”, fpObjectTypeDocument)
    oDocument.Export fpExportFormatEMF, “c:\temp\Diagram.emf”,,1
    End Sub

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.