扱うのが整数値で3桁ごとに「,」を入れたいというのであればその数値の下位3桁を取り出す→取り出した後の値が0ならば取り出した数字を文字列化して先頭に加えて終了、そうでないならば数値を1000で割り整数化し、取り出した3桁の数値を3桁で文字列化して「,」を頭にけるという処理を繰り返すのが2つの問題点を同時に解決できる手段であり分かりやすさも兼ねそろえた解決方法だと私は思います。 これならば9007199254740992までの数値は正しく表示可能です。(それを超えても表示が可能になるけど正確さは保証されない) 迷ったときは最もシンプルな方法を採る(LOGで誤差が出るならばLOGを使わない)のが間違いが起きにくいです。 負数の場合はあらかじめ正数にしておいて後からマイナスの符号を付けてください。 ちなみに数値を3桁で文字列化するにはFORMAT$("%03D",A)で可能です。