• ベストアンサー

EXCELエクセル長文の置き換え

エクセルで作ったデータベースで1つのセルの中の「ABC」という文を「あいう」に変える方法を知りたいのです。 ただこのデータベースはちょっと特殊で (1)一つのセルに20行以上の文字列がある→その為に「置換」機能では「数式が長すぎます。」と出る。 (2)その20行以上ある文はHTMLである。 (3)変更したい文も変更後の文も結構長い。(HTMLタグ含む) というような状態です。 データが750行以上あるので1個ずつしていたらいつ終わるか分かりません。 マクロなども全く分からず、途方に暮れています。 実用的な案を今すぐ頂ければ有難いです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.6

Excel の置換機能ではダメだったんですよね...? 1. 名前を付けて保存、CSV で書き出し 2. テキストエディターでそのファイルを開き、置換 ならどうですか?

sakurasaku5611
質問者

お礼

ありがとうございました。 1日、悩んでいたことが簡単にできました。 本当に感謝です。

その他の回答 (6)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

ふたつだけアドバイスですが、 >エクセルで作ったデータベースで1つのセルの中の「ABC」という文を「あいう」に変える方法を知りたいのです。 データベースが何か別として、Excelで管理するのは、やっぱりテキストベースで、HTMLコードは入るけれども、テキスト・オンリーで貼り付けて入れるのが基本ではないでしょうか? 貼り付けるときに、右クリックで、[形式を選択して貼り付け]で、テキストを選べばよいわけです。 そうしたら、置換も利くと思います。 それと、もうひとつは、「セルに20行以上の文字列がある」っいてうことだけど、Excelのひとつのセルで見えるのは、1,024文字です。32,767文字まで入ることは入りますが、見えませんから、管理しにくいと思います。

sakurasaku5611
質問者

お礼

ありがとうございました。 管理の仕方も検討していきたいと思います。 参考になりました。 お礼が遅くなり、申し訳ございませんでした。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.5

"color=" とはどこでしょう?私の書いたところにはないのですが? "If"のところは、きちんとスペース開けるところを開けてますか?

sakurasaku5611
質問者

お礼

なんどもすみません。お手数をおかけいたしました。ありがとうございました。やはりマクロは私には難しかったようです。また何かありましたら、よろしくお願い致します。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.4

どこの行でエラーでしょうか? あと、エラーの内容も具体てきにかいてもらえるとうれしいです

sakurasaku5611
質問者

補足

"color="の所が、「コンパイルエラー修正候補ThenまたはGo To」 Ifから次のa valueまでもコンパイルエラー:構文エラーになります。 何度もすみません。よろしくお願い致します。 修正したいところにも追加したいものにも、"があるからいけないのでしょうか?

  • ape5
  • ベストアンサー率57% (85/148)
回答No.3

(シートやファイルをコピーしてから動かしてみてください) 一応、「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 -----------------------------------------

sakurasaku5611
質問者

お礼

何度も済みません。 構文エラーになってしまいます・・・。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.2

(試す前に、シートなり、ファイルなりコピーしてから行ってください。) 処理は重いですけど、次のようなのでできるかと。 "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 --------------------------------------- 何かありましたらレスください。

sakurasaku5611
質問者

お礼

ありがとうございました。 しかし、私の力不足でできませんでした。すみません。 それから「ABC」も「あいう」もHTMLが交じっているので、全角と半角が交じってます。 よろしくお願い致します。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.1

SUBSTITUTE関数でもダメですか?

sakurasaku5611
質問者

お礼

早々のお返事、ありがとうございました。 今、早速やってみましたが、関数の作り方が分かりません。 補足をお願いできたら幸いです。

関連するQ&A