- ベストアンサー
EXCELエクセル長文の置き換え
エクセルで作ったデータベースで1つのセルの中の「ABC」という文を「あいう」に変える方法を知りたいのです。 ただこのデータベースはちょっと特殊で (1)一つのセルに20行以上の文字列がある→その為に「置換」機能では「数式が長すぎます。」と出る。 (2)その20行以上ある文はHTMLである。 (3)変更したい文も変更後の文も結構長い。(HTMLタグ含む) というような状態です。 データが750行以上あるので1個ずつしていたらいつ終わるか分かりません。 マクロなども全く分からず、途方に暮れています。 実用的な案を今すぐ頂ければ有難いです。 よろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
Excel の置換機能ではダメだったんですよね...? 1. 名前を付けて保存、CSV で書き出し 2. テキストエディターでそのファイルを開き、置換 ならどうですか?
その他の回答 (6)
- Wendy02
- ベストアンサー率57% (3570/6232)
ふたつだけアドバイスですが、 >エクセルで作ったデータベースで1つのセルの中の「ABC」という文を「あいう」に変える方法を知りたいのです。 データベースが何か別として、Excelで管理するのは、やっぱりテキストベースで、HTMLコードは入るけれども、テキスト・オンリーで貼り付けて入れるのが基本ではないでしょうか? 貼り付けるときに、右クリックで、[形式を選択して貼り付け]で、テキストを選べばよいわけです。 そうしたら、置換も利くと思います。 それと、もうひとつは、「セルに20行以上の文字列がある」っいてうことだけど、Excelのひとつのセルで見えるのは、1,024文字です。32,767文字まで入ることは入りますが、見えませんから、管理しにくいと思います。
お礼
ありがとうございました。 管理の仕方も検討していきたいと思います。 参考になりました。 お礼が遅くなり、申し訳ございませんでした。
- ape5
- ベストアンサー率57% (85/148)
"color=" とはどこでしょう?私の書いたところにはないのですが? "If"のところは、きちんとスペース開けるところを開けてますか?
お礼
なんどもすみません。お手数をおかけいたしました。ありがとうございました。やはりマクロは私には難しかったようです。また何かありましたら、よろしくお願い致します。
- ape5
- ベストアンサー率57% (85/148)
どこの行でエラーでしょうか? あと、エラーの内容も具体てきにかいてもらえるとうれしいです
補足
"color="の所が、「コンパイルエラー修正候補ThenまたはGo To」 Ifから次のa valueまでもコンパイルエラー:構文エラーになります。 何度もすみません。よろしくお願い致します。 修正したいところにも追加したいものにも、"があるからいけないのでしょうか?
- ape5
- ベストアンサー率57% (85/148)
(シートやファイルをコピーしてから動かしてみてください) 一応、「ABC」の全角・半角と大文字・小文字に対応しました。 それと、できなかったというのは何ができなかったのでしょうか? 説明があれば対応したいと思います。 --------------------------------- Dim a As Range Dim iLen As Long Dim i As Long For Each a In Selection iLen = Len(a.Value) For i = 1 To iLen If "ABC" = UCase(StrConv(Mid(a.Value, i, 3), vbNarrow)) Then a.Value = Left(a.Value, i - 1) & "あいう" & Right(a.Value, iLen - i - 2) End If Next i Next a -----------------------------------------
お礼
何度も済みません。 構文エラーになってしまいます・・・。
- ape5
- ベストアンサー率57% (85/148)
(試す前に、シートなり、ファイルなりコピーしてから行ってください。) 処理は重いですけど、次のようなのでできるかと。 "ABC"は半角だとして、処理してます。 ------------------------------- Dim a As Range Dim iLen As Long Dim i As Long For Each a In Selection iLen = Len(a.Value) For i = 1 To iLen If "ABC" = Mid(a.Value, i, 3) Then a.Value = Left(a.Value, i - 1) & "あいう" & Right(a.Value, iLen - i - 2) End If Next i Next a --------------------------------------- 何かありましたらレスください。
お礼
ありがとうございました。 しかし、私の力不足でできませんでした。すみません。 それから「ABC」も「あいう」もHTMLが交じっているので、全角と半角が交じってます。 よろしくお願い致します。
- NCU
- ベストアンサー率10% (32/318)
SUBSTITUTE関数でもダメですか?
お礼
早々のお返事、ありがとうございました。 今、早速やってみましたが、関数の作り方が分かりません。 補足をお願いできたら幸いです。
お礼
ありがとうございました。 1日、悩んでいたことが簡単にできました。 本当に感謝です。