プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (7件)

Excel の置換機能ではダメだったんですよね...?



1. 名前を付けて保存、CSV で書き出し
2. テキストエディターでそのファイルを開き、置換

ならどうですか?
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/08/06 18:48

ふたつだけアドバイスですが、



>エクセルで作ったデータベースで1つのセルの中の「ABC」という文を「あいう」に変える方法を知りたいのです。

データベースが何か別として、Excelで管理するのは、やっぱりテキストベースで、HTMLコードは入るけれども、テキスト・オンリーで貼り付けて入れるのが基本ではないでしょうか?
貼り付けるときに、右クリックで、[形式を選択して貼り付け]で、テキストを選べばよいわけです。

そうしたら、置換も利くと思います。

それと、もうひとつは、「セルに20行以上の文字列がある」っいてうことだけど、Excelのひとつのセルで見えるのは、1,024文字です。32,767文字まで入ることは入りますが、見えませんから、管理しにくいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/09 19:23

"color="


とはどこでしょう?私の書いたところにはないのですが?
"If"のところは、きちんとスペース開けるところを開けてますか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/06 18:47

どこの行でエラーでしょうか?


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

この回答への補足

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

補足日時:2006/08/05 19:50
    • good
    • 0

(シートやファイルをコピーしてから動かしてみてください)


一応、「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
-----------------------------------------
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/05 19:21

(試す前に、シートなり、ファイルなりコピーしてから行ってください。


処理は重いですけど、次のようなのでできるかと。
"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
---------------------------------------
何かありましたらレスください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/05 17:26

SUBSTITUTE関数でもダメですか?

    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/05 17:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!