さて、くまぷーさんの解答だが、
Shift-F2で1文字ずつ現れてくるのも面白いけど、
1度に表示させることができたら、それはそれで面白そう。
三四郎では(もちろんExcelでも)反復回数を指定できるから、
反復回数を複数回にするとできるのではないか、
ということで、「きんぐぎどら」は6文字なので、
反復回数を6回にして、やってみた。
すると・・・「らどぎぐんき」にならずに、
「きききききき」になってしまった・・・(^^;)(^^;)
要するに、反復計算では、1度、全部のセルを計算した後、
また最初のセルから2度目の計算をする、
というのではないらしい。このケースでは、どうみても、
A3を6回反復して計算し、その後B1の再計算にかかるらしい。
どうもこの辺が理解できなくて、
悪児は循環参照は苦手(というより非論理的で嫌い?)なのだが、
とすれば、B1だけで済ませてしまえばできるのではないか、
と考えて、B1の式をもう一度見てみた。
A3を参照しているのは、元文字列の切り取り始点を指定するとき。
その数字は、今までに切り取った回数+1となっている。
だから、それを引いたあとで余計な+1分を足し直しているのだが、
それなら最初から、切り取った回数分を引いてやれば良い。
そして、切り取った回数は、そのまま、B1セルに入力されている
文字数分だから、-A3+1を-Len(B1)に替えてやれば良い。
ということで、B1の数式を
=If(A2=0,"",If(Len(B1)<Len(A1),B1 & Mid(A1,Len(A1)-Len(B1),1),B1))
に差し替え、A3を空白にし、反復回数を10回にして、
A2に一旦0を入れて、初期化してから、1を入れたら、
Shift-F2を押すまでもなく、「らどぎぐんき」が表示された。\(^o^)/
これなら、99文字まで(三四郎の反復回数の最大値)
一発&一セル変換ですね。(^^)(^^)
最近のコメント