[[20080908152008]] 『置換の限界?』(元祖Q) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『置換の限界?』(元祖Q)

 いつもお世話になります。
http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20040929155005]]
 も一応参照しましたが、質問させてください。
 文字「AB」が完全一致した場合、「入荷」にするという置換をマクロ使ってしようしております。
 式は
 Selection.Replace What:="AB", Replacement:="入荷", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=True
 新商品「BC」が入荷した場合は、上記数式をコピーして「AB」を「BC」に変更して利用しています。
 長い商品が入荷していつものようにしておりましたが、エラーが出てしまいました。
 その文字数は
 LEN関数で「258」、LENB関数で「283」
 文字数の制限で置換ができないのかと思い
 以下の文字数で実験してみました(LEN関数で「258」、LENB関数で「283」の半角アルファベットの文字を1文字づつ消したものを利用
 LEN関数で「253」、LENB関数で「278」 ⇒OK
 LEN関数で「254」、LENB関数で「279」 ⇒OK
 LEN関数で「255」、LENB関数で「280」 ⇒OK
 LEN関数で「256」、LENB関数で「281」 ⇒NG
 LEN関数で「257」、LENB関数で「282」 ⇒NG
 LEN関数で「258」、LENB関数で「283」 ⇒NG
 という結果になりました。
 LEN関数で「256」、LENB関数で「281」 以上では置換のマクロはできないということでしょう?


 自分で試行錯誤してみた結果
 「256文字以上(LEN関数で「256以上)」は置換も検索もできない
 という結論になりました。
 コメントはありませんでしたが、私の質問に対して考えをめぐらせてくれた方がもし、いらっしゃいましたらありがとうございました。
 (元祖Q)


 確かに色々考えてはみましたが、どうなさりたいのかはっきりとしたご質問が無かったので
 何のコメントもしませんでした。
 単に検索して置き換えたいだけであれば、検索範囲内のデータを配列変数に入れて
 Match関数でヒットしたものをSUBSTITUTE関数で置き換えてやれば出来そうな気はしますね。

 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.