プロが教えるわが家の防犯対策術!

以下のサイトを元に文字列の置換をしたいのですが、
このサイトのコードでは完全一致しか対応できないのです。。
前方一致でする方法はないでしょうか。

http://stabucky.com/wp/archives/3259

質問者からの補足コメント

  • うーん・・・

    WindFallerさんありがとうございます。

    エディターの編集 → エディタの編集 となるのはいいのですが。
    テキストエディターの編集 → テキストエディタの編集
    これは変換しないようにしたいです。
    可能でしょうか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/07/06 17:18
  • つらい・・・

    大事なことを書き忘れてました。
    対象は、作業リストのB列のみ対してだけ変換してほしいです。。

      補足日時:2015/07/06 17:36

A 回答 (2件)

このようになります。



'//
Sub ReplacementMacro1() '前方一致、全取替
Dim i As Long
With Worksheets("文字列リスト")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
 Worksheets("作業").Cells.Replace _
 What:=.Cells(i, 1).Value & "*", Replacement:=.Cells(i, 2).Value, _
 LookAt:=xlWhole, MatchCase:=False, Matchbyte:=False
Next i
End With
End Sub
'///

結果
エディターの編集    →   エディタ 
プリンターの故障      →   プリンタ
サーバーのメインテナンス →   サーバ

'//
Sub ReplacementMacro2() '部分置換
Dim i As Long
With Worksheets("文字列リスト")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
 Worksheets("作業").Cells.Replace _
 What:=.Cells(i, 1).Value, Replacement:=.Cells(i, 2).Value, _
 LookAt:=xlPart, MatchCase:=False, Matchbyte:=False
Next i
End With
End Sub

'///

結果
エディターの編集     → エディタの編集 
プリンターの故障     → プリンタの故障
サーバーのメインテナンス → サーバのメインテナンス

しかし、

Sakuraエディター  →  Sakuraエディタ 
イプソンプリンター  →  イプソンプリンタ
Unixサーバー      → Unixサーバ

というようにもなります。
この回答への補足あり
    • good
    • 0

https://www.google.co.jp/url?sa=t&rct=j&q=&esrc= …
前方一致とは、文字列検索の手法の一つで、先頭が検索語に一致する単語やフレーズを探すこと。例えば、「検索」というキーワードに前方一致する単語としては、「検索エンジン」「検索結果」「検索文字列」などが挙げられる。

だとすると、やりたいことは
「検索*」を「ケンサク」に置換するとしたら
「検索エンジン」→「ケンサク」
「検索結果」→「ケンサク」
「検索文字列」→「ケンサク」
でいいわけですか?
だとすると
http://detail.chiebukuro.yahoo.co.jp/qa/question …





そうじゃないなら
https://oshiete.goo.ne.jp/qa/5445568.html
を使うと
「検索エンジン」→「ケンサクエンジン」
「検索結果」→「ケンサク結果」
「検索文字列」→「ケンサク文字列」
になりますが、これでは駄目なわけですか?
    • good
    • 0

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