Application.DeferRecalc-Eigenschaft (Visio)
Bestimmt, ob die Anwendung Zellformeln innerhalb einer Aktionsreihe neu berechnet. Lese-/Schreibzugriff.
Syntax
Ausdruck. DeferRecalc
expression Eine Variable, die ein Application-Objekt darstellt.
Rückgabewert
Ganze Zahl
Hinweise
Verwenden Sie die DeferRecalc-Eigenschaft, um die Leistung in einer Aktionsreihe zu verbessern. Sie können die Formelneuberechnung beispielsweise verzögern, während Sie die Formeln oder Werte mehrerer Zellen ändern. Nach Abschluss der Aktionsreihe müssen Sie die DeferRecalc-Eigenschaft wieder auf den Wert festlegen, der vor dem Änderungsvorgang angegeben war. Weitere Informationen finden Sie in den folgenden Beispielen.
Wenn Sie Objekte freigeben oder eine große Anzahl von Befehlen an Visio senden, während die Neuberechnung verzögert wird, muss Visio in bestimmten Fällen die Warteschlange ausstehender Neuberechnungen verarbeiten. Aus diesem Grund sollten Sie sehr sorgfältig vorgehen, wenn Sie Formeln innerhalb eines Bereichs festlegen, für den die Neuberechnung verzögert werden soll. Idealerweise sollten Sie Formeln nur festlegen, wenn die Neuberechnung deaktiviert ist.
Betrachten Sie beispielsweise die folgende Vba-Sequenz (Microsoft Visual Basic for Applications).
Dim blsDeferCalcOriginalValue As Boolean
blsDeferCalcOriginalValue = Application.DeferRecalc
Application.DeferRecalc = True
vsoShape.Cells("height").ResultIU = 12
vsoShape.Cells("width").ResultIU = 14
Application.DeferRecalc = blsDeferCalcOriginalValue
Da VBA im oben angegebenen Code ein vorübergehendes Cell-Objekt erstellt und freigibt, wird die Warteschlange an dieser Stelle von Visio verarbeitet.
In der folgenden Sequenz wird die Warteschlange für die Neuberechnungen von Visio erst verarbeitet, wenn die Anwendung die Neuberechnungsfunktion wieder aktiviert (bzw. wenn der Benutzer einen Vorgang ausführt).
Dim blsDeferCalcOriginalValue As Boolean
blsDeferCalcOriginalValue = Application.DeferRecalc
Application.DeferRecalc = True
Set vsoCell1 = vsoShape.Cells("Height")
Set vsoCell2 = vsoShape.Cells("Width")
vsoCell1.ResultIU = 12
vsoCell2.ResultIU = 14
Application.DeferRecalc = blsDeferCalcOriginalValue
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.