リストボックスの活用~応用⑦

Pocket

前回の致命的な欠点とは、値をセルに転記した場合、それに間違ってシートを直接訂正したときに
訂正しても残高が変わらないということです。もちろん並べ替えをしても。
2511041

100%訂正がないのであれば、それでいいのですが、もし間違えてユーザーフォームから転記して
しまった・・・ことを想定して作らないといけません。
ですので、残高の欄は、計算結果ではなく算式を入れたいところです。

ExcelVBAには値だけでなく、算式をセルに直接入れることができます。
2511043
赤枠部分を修正します。今まで.Valueばかりでしたが、今回は式を入れるので
.Formula
とします。

R[]C[]は次のように設定します。
青いセルを基準とした場合、上下左右に指定する方法は下の図を参照します。
2511042
今回、残高は基準となるセルの一つ上のセルに、右二つのセルを足して、右一つのセルを引くので
“= R[-1]C+RC[-2]-RC[-1]”
となります。算式をセルに転記するので、=を付けて、””で囲みます。
これはそういうルールということで覚えて下さい。理屈云々は理解を遅くします。

実行結果です。
2511044
これで、間違いを訂正しても残高も自動で修正してくれます。