• ベストアンサー

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

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

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.1

置換して件数を数えようとすると、1セルづつ置換しなければならす、時間がかかります。 多少卑怯なやり方ですが、置換件数をCOUNTIF で数えます。 Option Explicit ' Sub Macro1()   Dim O As Worksheet   Dim RInp As Long   Dim What As String   Dim Replacement As String '   Set O = Sheets("Sheet1")   Sheets("Sheet2").Select   RInp = Cells(Rows.Count, "A").End(xlUp).Row   Application.ScreenUpdating = False   Range("C2:C" & RInp) = "=COUNTIFS(" & O.Name & "!B:C,""*""&A2&""*"")"   Range("C2:C" & RInp) = Range("C2:C" & RInp).Value '   For RInp = 2 To RInp     What = Cells(RInp, "A")     Replacement = Cells(RInp, "B")     O.[B:C].Replace What, Replacement, xlPart   Next RInp End Sub

value100100
質問者

お礼

やりたいことができるようになりました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>VBAで自動で出来ないか こんな課題は、質問するまでもないタイプです。1ステップ処理では、置換だけやれば良いようだから。 こういうのは、置換後の語句1つに対し1処理をすることになろう。一括というのは表現だけで、内情は検索語の1件ずつを1シート内で見つけ、置換せざるを得ない。1シート内であるだけ、容易い。 置換後の語句を順次変化させて、対象のセル範囲内の、文字列を置換する、だけだろう。 ループ処理に持ち込む。 ・その「順次変化」はFor Nextを使えるタイプではないか。 まず置換対象を1件ずつ、全件漏らさず、重複しないで、捉えるVBAコードを考えること。 別シートにでも(対象語句を順次)書き出して、確認しては。 ・置換は、本来は後先を考える必要はあるが、本件では、必要ないことを確認しておくこと。  (大阪ー>東京、東京ー千葉という置換がある場合、後先によって、最終で、大阪ー千葉いなるものと、ならないものと、多段では、置換作業順序で変わる場合がある。) ・置換のコードなどWEBやVBAの本ですぐ見つかる。マクロの記録でも推測はつく。 1件だけをまずやって見たか? >Sheet2のすべての置換方法 すべての置換方法とは何?すべての置換対象語句のことではないのか。紛らわしい言い方。 ーー シートが2つ出てきているから、それらのセルについて、それらのどちらかを区別する、VBAコードが必要だが、どういうコードになるか、勉強は済んでいるか。 ーー 丸投げ的な回答が欲しいのだろうから、簡単な(簡略化、少数化した)2つのシート実例でも挙げてもらったほうが、回答をしやすい。画像では、参考にしかできない。 画像からデータ起こしは、多数だと、回答者側では、やっちゃおれない。 模擬例を、テキストで(質問に)張り付けてくれれば、コピーー区切り位置でデータが作れる可能性が多い。 ーー 件数の課題は、変数や配列変数を作って、その処理を通ったところで+1すればよいだろう。 検索語(置換前の置換対象語句)と「件数のほしい区分」は同一なのかな。同一であればシートの同行で隣列セルをそれに充てることもできる。

value100100
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう