Eine Minuszahl als True?

dg87

Erfahrenes Mitglied
Hallo zusammen,

ich habe gerade gegooglet unter vba -1 true/false aber ehrlich gesagt nichts direkt gefunden. Jetzt bin ich wohl auch noch zu blöd zum googlen.
Folgender Hintergrund. Ich debugge gerade einen fremden Code und an einer Stelle ist mir ein Fehler aufgefallen der nicht sein darf. Zwar ist die Abfrage als Sinn (Prüfung ob leeres Dokument, wenn ja bitte löschen) ok, aber der Code falsch bzw wird falsch ausgeführt:

Code:
If (seite..BlankPage Or CheckBlankPage(p0)) Then
// seite löschen

else
// seite nicht löschen

end if

Er geht aber immer in Seite löschen rein, weil seite.BlankPage den Wert -1 hat und CheckBlankPage(p0) den Wert false zurückliefert. Wird also bei VBA -1 als True gewertet?
Ich weiß wie ich es umzubauen habe, ist ja kein Problem, nur versuch ich zu verstehen warum das Programm in Seite löschen reingeht, weil laut meinem Verständis ist -1 False (und Checkblankpage ist es ja auch) dann soltle er die seite nicht löschen, da sich auch nicht leer ist.

Danke für Feedback!
 
Ein kleiner Versuch im Direktfenster gibt dir Auskunft
Visual Basic:
?cbool(-1)
True
?cint(true)
-1
?cint(false)
 0
 
Oha das wusste ich noch nicht - also ist -1 tatsächlich true und danke für diesen Trick. Da hätte man eigl drauf kommen können :)
Danke dir
 
Zurück