2−2.文字列取得C解説
|
戻る |
悪児の「文字列取得C」(以下A)と、
くまぷーさんの「文字取得」(以下K)の違いは、次の点です。 |
1.カーソル移動
KはJump()で移動
AはDownCell()使用。
2.文字取得回数
Kは、原則最大文字数の12回。ただし、半角および全角のスペースを取得したら、終了。
Aは、GetCharacterType()を使って、カーソル位置が文字列以外なら、終了。
|
| 違いの理由 |
1.繰り返しになりますが、この場合も、Jump()が原因で、データが少し変わるだけ
で誤動作になります。例えば、罫線表の左側に文書ボタンを挿入すると・・・
また、何も変更しなくても、結果だけみると正常に動いているように見えますが、
実はかならずしも意図通りの位置に飛んでいないことも検証できます。
これは、2.とも絡んできますので、続きはそちらで。
2.Kの7行目には、次の記述があります。
If %S= " " Or %S = " " Then
これから先は全くの憶測ですが、実はくまぷーさん、ここは、本当は、
If %S= " " Or %S = " " or %S = "" Then
にしたかったのでは、ないでしょうか? (^^)ゞ
これがちゃんと動けば、単語ごとに律儀(?)に12回文字取得を繰り返す必要が
ないですよね。ところが、これだと、No10以下が、何故か、0になってしまいます。
で、断念した・・・(^^;(^^;)
この原因も、Jump()です。
No10以下は、Noのセルの桁数が2桁になっている関係で、カーソルが
Word Listセルの先頭ではなく、その間の罫線上に飛んでしまい、その結果、
GetCharacter()の最初の返値が、nilになってしまい、そこでループから抜けて、
桁数が0になってしまうのです。 →誤動作例3
1.2.の誤動作の例はこちら(1.がerror2、2.がerror3です)→ →誤動作例2
ほんと、ジャンプは怖いですね(^^;)(^^;)
|