• ベストアンサー

Excel2016で文字列の一括置換を行うVBA

Excel中級者です。Windows10, Excel2016で、別の「マスタ」シートにある表に従い、「Data」シートにある文字列を一括置換するVBAを教えていただけますと幸いです。マスタ表は2列 100行で1列目に置換前の語、2列目に置換後の語があります。dataシートは1顧客1行で、20列に商品名が入っており、同シートで一括置換を実行したく存じます。どうぞよろしくお願い申し上げます。

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

  • ベストアンサー
  • emaxemax
  • ベストアンサー率35% (43/121)
回答No.1

「マスタ」シートの表がA1:B100だとしたら Sub test001()   Dim myV   Dim i As Long   myV = Sheets("マスタ").Range("A1:B100").Value   For i = LBound(myV, 1) To UBound(myV, 1)     Sheets("DATA").Cells.Replace What:=myV(i, 1), Replacement:=myV(i, 2), LookAt:=xlPart, MatchCase:=False   Next i End Sub でいかがでしょう?

関連するQ&A

  • Excel2000での複数シートの文字列の置換

    Excel2000において、複数シートの文字列の置換を 一気(いちいちシート毎に置換を行わず) に行いたいのですが、これは可能でしょうか? 可能でしたらそのやり方を教えてください。 以上、よろしくお願いいたします。

  • EXCEL2000でデータ行コピーしてコピーした列のセルを置換する作業をカンタンにする方法をご教授ください

    EXCEL2000を使っています。 データとしては、A~BC列(シートによって列数は違います)くらいまでのシートが複数あります。 これらのシートのA列には必ず西暦4桁が入力されています。 Sheet1シートのA列に2007と入力されている複数行をコピーして、最終行に貼り付けて、貼り付けた行のA列を2004から2008までのデータに置き換えていく作業を行ってます。 今はコピーして貼り付けて、貼り付けた範囲指定で2007から2004へ置換の作業を繰り返しておりますが作業しなければいけないシート数が沢山あって苦慮しております。 シート毎でもブック毎でも構いません。 VBA等の解決策や方法等を何卒ご教授願います。

  • A列の同文字終了で1行挿入後同文字行の合計値入力

    Excel2013ですが表-1のA列同文字が終了したら同シートの表ー2のように1行挿入しD列に"合計"という文字、E,F列にA列の同文字に対しそれぞれに合計値を入れたいのですがVBAコードが解る方よろしくお願いします。

  • Excelでハイパーリンクの一括置換(指定範囲)

    現在、Excel2002を使用しておりますが、ハイパーリンクの一括置換用マクロ作成でつまづいておりますので、詳しい方お願いします。 【Excelデータ】   A B C D …… 1 ★ ★ ★ ★ …… 2 ★ ★ ★ ★ …… 3 ★ ★ ★ ★ …… : : : : : ★マークの箇所のデータにURLの途中まで同じハイパーリンクが貼られています。 リンクはhttp://aaa.bbb.ccc/ddd/eee/… ここで、C列の1行目から最終行(約1万行)までのハイパーリンクのみ ddd→FFFとしてhttp://aaa.bbb.ccc/FFF/eee/… としたかったので、こちらのサイト検索をしてみると Sub ハイパーリンクの置きかえ()  Dim H As Hyperlink  For Each H In Range("B2:B101").Hyperlinks   H.Address = Replace(H.Address, "\\abc", "\\def")  Next End Sub という回答を見つけることが出来ました。 そこで、それを参考にして Sub macro1()  Dim H As Hyperlink  For Each H In Range("C1:C50000").Hyperlinks   H.Address = Replace(H.Address, "ddd", "FFF")  Next End Sub ※C列は約1万行なので5万行まで指定すればよいかと思い、この値にしてます。 とマクロを作成したのですが、 いざ実行してみると、C列だけではなく、他の列まで全部一括置換してしまいます。 私はC列だけを置換したいので、何か良い方法をご存知の方はお願い致します。 C列だけ他のシートにコピーして一括置換して元の場所に貼り付ける方法も考えたのですが、その方法ですと、D列を別の文字列に一括置換とかE列を更に別の文字列に置換… とした場合の応用がききませんので…

  • 〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転

    〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転記する方法 EXCEL2003でデータが480行/65列ある第1のシート(データベース的)があります。 第1のシートの列にデータが入力されている場合のみ、第2シートの指定されたセルに検索した列の 表題と検索したデータを結合して転記したいのですが良い方法が分りません。 その際、各行毎に検索し空白列は第2のシ-トに転記せず左詰めにして転記したいのですが・・・・ 初心者に合せたご教示をお願いします。 また、Excel VBAの短期マスター法が御座いましたら合せて教示願います。 以上、宜しくお願い致します。

  • エクセル(EXCEL)VBAで行自動分割

    エクセル(EXCEL)VBAの質問です。数万行にわたって入力されているデータがありますが、これを1000行づつに分割して、別々の新規BOOK(またはSHEET)へコピーしていきたいのですが、これを実現するVBAを教えていただけ ないでしょうか? VBAマスターの諸兄方、どうぞ宜しくお願い致します。

  • 【VBA】エクセルで文字置換

    いまは1つ1つ手作業でしており時間が大変掛かっています。 VBAでやろうとしたものの挫折しております。 文字の置換を連続して、VBAで自動で出来ないかと思っております。 Sheet1に「商品名」と「商品説明」 Sheet2に「検索する文字」と「置換後の文字」 (やりたいこと) Sheet2の置換方法に従ってSheet1の文字を置換する Sheet2のすべての置換方法をSheet1のすべての商品(商品名、商品説明共に)に対して処理する 置換処理した後は、処理件数をSheet2のC列に入力する 可能であれば、教えて頂きたいと思います。 宜しくお願いします。

  • 文字列一括置換ソフトを探してます

    文字列一括置換ソフトを探してます・・・って書くと、Vectorに行けばいっぱいあると言われそうですが、ちょっと条件が特殊です。 ・複数(多分500~1000個)のテキストファイルの指定文字列を一括置換したい(ここまでは普通) ・対象の文字列の置換パターンが3万件(苦笑) ワイルドカードなどではなく、3万の単語を別の3万の単語に置換したいのです。 (プログラムの変数を、ネーミングルールを変えたために総入れ替えする・・・と考えて頂ければ分かっていただけるでしょうか) 10件くらいのパターンを連続して置換するソフトは見つかったのですが、3万件となると・・・。 (そもそも3万件のリストをよく作ったもんだ) UNIXにsedというコマンドがあるというのは聞いたことがあるのですが、Windows(&DOS)しか触ったことがないので、どうすれば良いのか分かりません(私はプログラマじゃありません)。 なお、同じネタでエクセルのワークシートのセルを置換する必要があるのですが、こちらは自作マクロで対応しています。 もし適当なソフトが見つからなければ、エクセルマクロの作成を検討しています。 (マクロでテキストファイルの読み込みはやったことがあるのですが、書き出しは多分やったことがない) 置換リストはエクセルで作成しているので、リストはソフトに応じた形式で準備できると思います。 以上、よろしくお願いいたします。

  • excel2007 電話番号先頭の0処理 文字列へ

    excel2007を使っています。 csvで得た、顧客データで、電話番号があります。-ハイフンがある場合です。 ファイルを、ダブルクリックで開きます(データ、CSVで開くとまた違うかもしれませんが) 090-5555-5555 など。 これを、09055555555という形にしたいのですが、 1)書式を文字列にする 2) - を、空欄に、置換すると、 最初の0がなくなります。 また、 9055555555 になったとしても、次善の策として、 '0 とかをくっつけたり、なにか一括処理ができればよいのですが、それもうまくできず、(& でくっつけることもできないですし)、困っています。 何か良い方法はありますでしょうか。

  • Excel2003 VBA 文字列の比較で

    Excel2003 VBAです。 2つの文字列があって、この2つの文字列を日本語の部分だけで 比較しようとしています。 なので、文字列からアルファベットと数字と記号を削除してから 比較したいのですが、どんな方法があるでしょうか。 よろしくお願いします。

専門家に質問してみよう