和英併記 ② Findで探して併記
昨日はExcel単語帳から、Vlookup関数を用いて表を和英併記化してみた。
infoment.hatenablog.com
今日は、Findメソッドでの和英併記化に挑戦する。
今日の作戦は、こんな感じだ。
- ループで、表の単語を一つずつ調べる。
- 単語帳内で検索し、見つけた場合は、その右隣のセルの値を取得する。
見つからなかった場合は、「単語帳に無し」とする。 - 取得した値を、元の値の後ろにセル内改行で追加する。
Sub Sample() ' 和英併記にする範囲。 Dim TableRange As Range Set TableRange = Range("A3:A6") ' 単語帳の和文列。 Dim DictRange As Range Set DictRange = Range("C3:C5") ' 各単語を和英併記化。 Dim r As Range ' 検索結果。 Dim FindResult As Range For Each r In TableRange ' 完全一致で検索。 Set FindResult = DictRange.Find(What:=r.Value, _ LookAt:=xlWhole) ' 検索結果が存在する場合。 If Not FindResult Is Nothing Then r = r & vbNewLine & FindResult.Offset(, 1) ' 検索結果が存在しない場合。 Else r = r & vbNewLine & "単語帳に無し" End If Next End Sub
結果が ↓ こちら。
割と一般的というか、理解し易い素直な手法ではなかろうか。
ただし、Findメソッドは直前の検索条件を引き継いでしまったり、検索条件を後に残してしまうところが難点だ。
↓ 大文字と小文字、半角と全角、部分一致と完全一致など。
そこで次回は、Findメソッドを用いない方法について紹介します。
参考まで。