- Excel VBA 質問スレ Part41©2ch.net
445 :デフォルトの名無しさん[sage]:2016/06/02(木) 22:32:37.55 ID:I8wr9FkH - >>442
逆順でも同じです、順序の問題ではありませんので。 例えばこんな相互置換というか循環置換とでも言うのかな、だったら 置換前 置換後 A1 → A2 A2 → A3 A3 → A1 対象範囲内にA1もA2もA3も全部存在するので上から置換しても下から置換しても同じ問題に当たります。 >>443 その手は考えたのですが、置換対象は何でもあるので「使っていない文字列」は常に不明です。 なので一旦意味を持たない大量のユニークな文字列に1次置換してから目的のワードに2次置換するという。 しかしひとつの値に複数の置換対象があった場合、正常な動作を保証できない気がします。 例えば上の例なら 「A1A2A3」という値を「A2A3A1」にしたいので一旦「&//$%%&%%%-5577'/?##-$」みたいになった時に 偶然他の1次置換ワードと繋がったら間違った結果になってしまいます。
|
- Excel VBA 質問スレ Part41©2ch.net
447 :デフォルトの名無しさん[sage]:2016/06/02(木) 22:40:12.20 ID:I8wr9FkH - >>444
その2つはもちろん入れています。 処理範囲は沢山のシートの沢山の範囲で、置換ワードも沢山なので配列使わないのはなんとか避けたいです。 今はセル範囲を二次元配列1と2に入れて、配列2を置換し、配列1と配列2の値が違ったらその番地だけセルに代入するよう組んでいます。 FIND関数とLEN関数で置換した文字列の開始文字数と終了文字数を記録して、次の置換対象がその範囲内に被っていたらreplaceを回避 というのも考えたのですが、これもひとつの値に同じ置換が複数回発生した時に2個目以降が回避できないです。
|
- Excel VBA 質問スレ Part41©2ch.net
453 :デフォルトの名無しさん[sage]:2016/06/02(木) 23:47:31.70 ID:I8wr9FkH - >>450自分ですが、いけそうですね
明日試してみます 皆さんご意見ありがとうございます
|