[[20140731101232]] 『リストを用いて完全一致する文字列のみ置換したい』(山田) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『リストを用いて完全一致する文字列のみ置換したい』(山田)

お世話になっております。ご教示頂けますと幸いです。
 下記のVBAを作成致しました。
 しかし、このままですと部分一致で置換が行われます。
 それを完全一致する文字列のみ置換したいです。

 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

    Dim 前文字列1 As String
    Dim 後文字列2 As String

    Dim rng As Range
    Dim 商品リスト As Worksheet
    Dim 変更データ As Worksheet

    Set 商品リスト = Worksheets("元データ")
    Set 変更データ = Worksheets("置換表")

    Dim i As Integer

    For i = 2 To 77
        前文字列1 = 変更データ.Cells(i, 1)
        後文字列2 = 変更データ.Cells(i, 2)

        Set rng = 商品リスト.Columns("AX:AX")
        rng.Replace What:=前文字列1, Replacement:=後文字列2
    Next i

End Sub

 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
 
調べてみましたが、「xlWhole」を使うと記載があったのですがエラーが出て自分で編集できませんでした・・・
 

< 使用 Excel:Excel2010、使用 OS:unknown >


 どういうエラーがどの部分で出たのか分かりませんが、通常はこのような使い方だと思います。
 あとForの中に定数rngが入っていたので外に出しました。
Sub 置換()
    Dim 前文字列1 As String
    Dim 後文字列2 As String

    Dim rng As Range
    Dim 商品リスト As Worksheet
    Dim 変更データ As Worksheet

    Set 商品リスト = Worksheets("元データ")
    Set 変更データ = Worksheets("置換表")

    Dim i As Integer
    Set rng = 商品リスト.Columns("AX:AX")
    For i = 2 To 77
        With 変更データ
            前文字列1 = .Cells(i, 1)
            後文字列2 = .Cells(i, 2)
        End With
        rng.Replace _
            What:=前文字列1 _
            , Replacement:=後文字列2 _
            , lookat:=xlWhole _
            , MatchCase:=True
    Next i
End Sub
(稲葉) 2014/07/31(木) 11:19

稲葉様
 
迅速なご回答ありがとうございます。
記載頂きましたVBAで無事処理出来ました。
非常に助かりました。
 
(山田) 2014/07/31(木) 12:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.