くまぷーさんの解答の、解説の続きです。
そして、式B。
=If(A2=0,"",If(Len(B1)<Len(A1),B1 & Mid(A1,Len(A1)-A3+1,1),B1))
はじめのIf関数は、式A同様初期化のための仕掛けだ。
A2がゼロ(空白でも数値以外の文字列でも可)だと、B1が空白にされる。
次のIf関数は、終了判定。
B1に入力された文字列が、A1と同じになると、もう変化させない。
(式では、B1がA1より小さい間は、B1の文字列にA1から切り取った
1文字を追加し、それ以外は、B1をそのままにする)
さて、その1文字の切り取りと追加が、この部分。
B1 & Mid(A1,Len(A1)-A3+1,1)
Mid関数の引数は、Mid(元文字列,始点,切り出し文字数)。
つまり、A1から、その、(Len(A1)-A3+1)番目の1文字を切り出して、
B1の文字列の末尾に連結する。
つまり、A3が1の時は、A1の文字数番目(つまり最後)の文字を切り出し、
A3が2の時は、その一つ前、というように、
「再計算」の度にA3の数字が1ずつ増えるから、それに応じて、
後ろから順に切り出して、逆順に連結していくわけだ。
Shift-F2を押す度に、ひとつずつ文字が繋がっていく・・・
見事なもんですねぇ~~(^_^)(^_^)/~
コメント