Il CStr presente all'inizio serve per convertire in una stringa il totale, che è un intero; per il resto il totale viene calcolato sommando tanti "blocchetti" fatti a questa maniera:
codice:
CInt(CheckBox1.Tag) * (-CInt(CheckBox1.Checked))
questo codice prende il valore di CheckBox1.Tag, ne effettua il cast esplicito ad Integer (non sarebbe strettamente necessario ma così evita il late binding) e lo moltiplica per -CInt(CheckBox1.Checked); questa ultima espressione sarà uguale a 1 se CheckBox1.Checked = True (ossia se la checkbox è selezionata) o a 0 in caso contrario (in maniera che l'intera espressione sia uguale a 0 se la checkbox non è selezionata o uguale al valore di CheckBox1.Tag se invece è selezionata). Questo perché CheckBox1.Checked è un valore Boolean, che, se convertito in intero, diventa -1 quando è True e 0 quando è False. Il "-" che metto davanti al CInt serve per cambiare di segno il risultato dell'espressione, perché altrimenti CInt(CheckBox1.Tag) verrebbe moltiplicato per -1 anziché per 1.