Visio: Page.Drop-Methode langsam

  • Sonstige

    Visio: Page.Drop-Methode langsam

    Hallo liebe Community,

    Ich habe eine Frage, bzw. ein Problem.

    Ich muss per VBA-Makro mit Visio 2010 Standard sehr viele Shapes erstellen. Auf dauer wird jedoch die Page.Drop-Methode mit einem Mastershape (Ja, die muss ich verwenden.) deutlich langsamer, wie im Diagramm zu sehen. Der gemessene, langsame Methodenaufruf ist genau diese Zeile:

    Visual Basic-Quellcode

    1. Set DropShape = Page.Drop(Master, X, Y)


    Ich habe bereits alle Events zuvor mit folgendem Baustein deaktiviert:

    Visual Basic-Quellcode

    1. ' Connect enstpricht False
    2. With Application
    3. .EventsEnabled = Connect
    4. .ScreenUpdating = Connect
    5. .UndoEnabled = Connect
    6. .DeferRecalc = Not Connect
    7. .DeferRelationshipRecalc = Not Connect
    8. .LiveDynamics = Connect
    9. End With


    Das Diagramm im Anhang zeigt das lineare Verhalten. Suspekt ist mir auch, wieso auch bei keinem einzigen Shape auf den Zeichenblättern bereits 10ms benötigt werden. Das ganze steigert sich dann bis zu knapp 22ms hinauf. Das ganze summiert sich auf stolze 30 Sekunden allein für Page.Drop. Die restlichen Achsen sind nur zusätzliche Messereien innerhalb der selben Methode. DIe X-Achse zeigt die Anzahl vorhandener Shapes.

    Kennt irgendwer noch eine Methode das ganze zu beschleunigen?

    Danke im Vorraus!
    Stephan
    Bilder
    • 2016-08-23 14_19_13-Clipboard.png

      78,37 kB, 1.277×718, 139 mal angesehen
    Es gibt eine allgemeingültige Regel die auch mal Ausnahmen zulässt:
    Gute Programmierer sind schlechte Grafiker und gute Grafiker sind schlechte Programmierer