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

excel初心者です。
文字列を置き換え、オリジナルの隣のセルに表示させる方法を教えてください。

扱っている商品名のいくつかが変更になったので、過去に入力済みのデータを一括変換したいのですが、旧商品名も残しておきたいと思っています。

たとえば、

日付商品名数量価格
9/6オレンジジュース1550
9/6バナナミルク1500
9/6カフェラテ1600



日付新商品名旧商品名数量価格
9/6フレッシュオレンジオレンジジュース1550
9/6バナナオレバナナミルク1500
9/6カフェオレカフェラテ1600

という感じです。

商品名が多く40以上あるため、SUBSTITUTEだと無理があり、VBAでの方法を調べ始めたものの、replaceでは上書きしかできない(?)ようで、いまいちよくわかりません。

どなたかご教授いただけないでしょうか。

また、VBAについて初心者向けにわかりやすく解説しているサイトや本がありましたら、あわせて教えていただけたら幸いです。

よろしくお願いいたします。

A 回答 (2件)

もともとB列に旧商品名があってそれをC列に代入してB列の旧商品を新商品に変換するという動作でしたら



たとえば

Range("C" & i).Value=Range("B" & i).Value

と必要な分だけループか検索かで代入しておいて

あとは

B列の商品名をreplaceで書き換えたらいかがでしょう。


> また、VBAについて初心者向けにわかりやすく解説しているサイト

エクセル vbaで検索したら色々出てきますのでご自身にあったページを参考にしてみてください。

たとえば
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/
とか
http://officetanaka.net/
とか
http://www.happy2-island.com/excelsmile/

などいかがでしょう。

基本的に「エクセル vba やりたいこと(たとえばファイルを開くとか)」で検索すると解説しているページが結果として出てきますので、その中で分かりやすいページを見つけるのもいいかと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます!代入してから置き換える、目から鱗でした!お陰様で解決しました。

お礼日時:2014/09/26 13:50

VBAが万能なわけではありません。


今回のケースは関数で十分だと思います。

添付の図を見て下さい。
置換したい旧商品名、新商品名のリストをG2:H5に作りました。
セルB2の新商品名のセルに入れた演算式は↓です。
=IFERROR(VLOOKUP(C2,$G$2:$H$5,2,FALSE),"")
「excel VBAで、置換した結果を別の」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます!今回はvbaで解決しましたが、関数でもできるということ、とても参考になりました!

お礼日時:2014/09/26 13:49

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

このQ&Aを見た人はこんなQ&Aも見ています