人に聞けない痔の悩み、これでスッキリ >>

マクロについてお詳しい方がいらっしゃれば
ご教授頂きたいです。

シート1のA1~C100に入力されているデータすべてを
対象に、

シート2のA1が検索されれば→B1に置換
      A2が検索されれば→B2に置換
      ・・・・・

というように、別シートを参照して置換をさせたいのですが
このようなことはできるのでしょうか。

配列を利用するやり方は、他のご質問で拝見致しましたが
置換する内容が変わりやすいので、編集の利便性を考えて
上記のようにしたいと思っています。

以上、知見のある方、お知恵をお貸し頂けますでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんばんは!


横からお邪魔します。

Sub Sample1()
Dim i As Long, c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
For i = 1 To wS2.Cells(Rows.Count, 1).End(xlUp).Row
For Each c In wS1.Range("A1:C100")
If InStr(c, wS2.Cells(i, 1)) > 0 Then
c = Replace(c, wS2.Cells(i, 1), wS2.Cells(i, 2))
End If
Next c
Next i
Application.ScreenUpdating = True
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

有難うございます。こちらでばっちりOKでした。質問締め切らせて頂きたいと思います。この度は有難うございました★

お礼日時:2013/04/18 22:56

シート2のA1の値が、シート1のA1~C100の範囲で見つかれば


シート2のB2の値で、シート1のA1~C100のその場所の値を書き換える

と、いうことですか?


ご連絡をお待ちしております。

以下はただの落書きです、お気に止めないでくださいね
SUB TEST()
DIM TAGETRANGE AS RANGE,COUNT-RANGE AS RANGE,SHARTHRERANGE AS RANGE,CHENGERANGE AS RANGE
  SET TAGETRANGE = SHEETS("シート1").("A1:C100")
  SET SHARTHRERANGE = SHEETS("シート2").("A1")
  SET CHENGERANGE = SHEETS("シート2").("B1")
  FOR EACH COUNT-RANGE IN TAGETRANGE
    IF COUNT-RANGE.VALUE IS SHARTHRERANGE.VALUE _
    THEN
      COUNT-RANGE.VALUE IS CHENGERANGE.VALUE
    END IF
  NEXT
END SUB

この回答への補足

ご回答有難うございます。
先にご回答頂いた keithin様のコードで置換ができました。
が、要件のお伝え漏れなのですが、1つセル内に複数の置換したものがある状況でした。

例)リンゴです!みかんです!いまです!→リンゴでしょ!みかんでし!いまでしょ! 

御手間であれば、解説サイトのURLでも構わないのでご教授頂けますでしょうか。

補足日時:2013/04/18 21:31
    • good
    • 0
この回答へのお礼

他の方のご回答で要件が満たせましたので、質問を締め切らせて頂きます。この度はご協力頂きまして有難うございました。

お礼日時:2013/04/18 23:00

sub macro1()


 dim r as long
 for r = 1 to worksheets("Sheet2").range("A65536").end(xlup).row
  worksheets("Sheet1").range("A1:C100").replace _
   what:=worksheets("Sheet2").cells(r, "A").value, _
   replacement:=worksheets("Sheet2").cells(r, "B").value, _
   lookat:=xlwhole  ’完全一致で置換
 next r
end sub
みたいな。
    • good
    • 0
この回答へのお礼

他の方のご回答で要件が満たせましたので、質問を締め切らせて頂きます。この度はご協力頂きまして有難うございました。

お礼日時:2013/04/18 23:00

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報