Der Fehler liegt in der Syntax. In VBA (Visual Basic for Applications) gibt es keine Funktion `or()`, und die Bedingungen werden mit `Or` (ohne Klammern) verbunden. Außerdem verwendet VBA Kommas... [mehr]
Die Zeile ```pascal if diff > 0 then dec(diff, step) else diff := 0; ``` bedeutet: - **Wenn** `diff` größer als 0 ist, **dann** wird von `diff` der Wert von `step` abgezogen (das macht `dec(diff, step)`). - **Sonst** (also wenn `diff` nicht größer als 0 ist), wird `diff` auf 0 gesetzt. **Wichtig:** `dec(diff, step)` verringert `diff` um den Wert von `step` (nicht nur um 1, sondern um so viel wie in `step` steht). **Deine Interpretation ist also nicht ganz korrekt:** Es wird nicht immer nur um 1 verringert, sondern um den Wert von `step`. Und es wird nicht gleichzeitig `diff` und `step` verringert, sondern nur `diff`. **Zusammengefasst:** Wenn `diff > 0`, dann wird `diff := diff - step` ausgeführt. Wenn nicht, dann wird `diff := 0` gesetzt.
Der Fehler liegt in der Syntax. In VBA (Visual Basic for Applications) gibt es keine Funktion `or()`, und die Bedingungen werden mit `Or` (ohne Klammern) verbunden. Außerdem verwendet VBA Kommas... [mehr]