[69] 文字数をカウント
kotobukiko [2007/10/10 01:36:35]
只今「文字数制限」のあるデータの整形作業を行っています。
左のカラムにあるセル内の文字数を右のセルに表示させることは出来ないでしょうか?
もしくは文字の制限値を越えたセルだけに何かの印を表示させるようなことを出来たらと思っています。
len(str) 関数を使うのだと想像するのですが、どのように組み立てたものか全く理解できません。
ヒントだけでも頂けるとありがたいのですが...
Re: [69] 文字数をカウント
あすかぜ [2007/10/10 21:55:18]
書き込みありがとうございます。
セル内の文字数を表示するには、選択範囲をループさせて、len([x,y])の値を[x+1,y]に書き込みます。
http://www.asukaze.net/soft/cassava/macro/asukaze/LengthCount/ByteCount.cms
列番号が決まっているのであればxのループは削除しても構いません。
また、if(len([x,y]) > 10){ ... } などとすることで制限値を超えたセルのみを処理することができます。
・・・と思ったのですが、
CassavaMacroのright,left,midは全角を1文字扱いしているのにlen,posは全角が2文字になりますね。
全角を1文字と数えるような回避コードを書いたので、日本語の文字数を数えるのでしたらこっちを使ってみてください。
http://www.asukaze.net/soft/cassava/macro/asukaze/LengthCount/LengthCount.cms
これでやりたいことは実現できるでしょうか?
Re: [69] 文字数をカウント
kotobukiko [2007/10/11 00:12:23]
あさかぜさん
早々にありがとうございます。
80,000行弱ある列で実行してみました。
3,4分でみごとにカウントされ、右側に文字数が表示されました。各セルには日本語で50文字前後が記述されています。
Cassavaの使いやすさにはいつも感激しています。
それに加えてマクロにまでサポート頂き、本当に感謝です。
ありがとうございました。
Re: [69] 文字数をカウント
kotobukiko [2007/10/11 00:19:06]
お名前を間違えました。大変失礼をしました。
あすかぜさん。
感謝、感謝
Re: [69] 文字数をカウント
あすかぜ [2007/12/08 02:46:20]
Ver.1.5で、len・posも全角文字を1文字と数えるように変更しました。
http://www.asukaze.net/soft/cassava/bbs/index.cgi?t=79