ここから本文です

Excel2016のVBAで質問があります。 sheet1 A1=いちごが食べたい A2=いちご...

ora********さん

2017/8/1820:35:15

Excel2016のVBAで質問があります。

sheet1

A1=いちごが食べたい
A2=いちごおれが飲みたい
A3=おれんじが好き

sheet2

A列置換前リスト B列置換後リスト
A1=いちご B1=イチ


A2=いちごおれ B2=イチゴオレ
A3=おれんじ B3=たまねぎ

↓求めたい出力結果

A1=イチゴが食べたい
A2=イチゴオレが飲みたい
A3=たまねぎが好き


やりたいこととしては、
VBAのreplaceメソッドを使って、sheet2の置換リストを使って、
sheet1の文字列を一括置換をしたいです。

ただ、問題があり、、
sheet2には、「いちご」と「いちごおれ」という文字が含まれており、
こちらを完全一致とするにはどのように記載すればよいでしょうか?

ここまでは入りました。
-----

Sub 文字列リストに基づき連続して置換する()
i = 2
Do
x1 = Sheets("文字列リスト").Cells(i, 1)
x2 = Sheets("文字列リスト").Cells(i, 2)
Sheets("作業").Cells.Replace _
What:=x1, Replacement:=x2, _
SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart
i = i + 1
Loop Until Sheets("文字列リスト").Cells(i, 1) = ""
End Sub

----

すみません、よろしくお願いいたします。。

閲覧数:
55
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

sk_********さん

編集あり2017/8/1822:13:45

考え方として、
Sheet2の置換前リストと置換後リストを
文字数の多い順にソートし、マクロを実行するのはどうですか?

【Sheet2】
セル[A1]いちごおれ セル[B1]イチゴオレ
セル[A2]おれんじ セル[B2]たまねぎ
セル[A3]いちご セル[B3]イチゴ

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる