You probably want to learn about volatile functions at
http://www.decisionmodels.com/calcsecretsi.htm
and
http://www.decisionmodels.com/calcsecretsj.htm
AAR Excel doesn't have a dependency on A1 in B1 - check
tools/auditing/dependents and precedents on your cells. Excel "itself"
doesn't realize that your function needs to be run (except when the
workbook is loaded), so it doesn't try to recalc B1 when A1 changes.
Only your code does. The links above should clear things up.