和英併記 ③ Dictionaryで併記

昨日はExcel単語帳から、Findメソッドを用いて表を和英併記化してみた。
infoment.hatenablog.com

今日は、Dictionaryを用いた和英併記化に挑戦する。
f:id:Infoment:20200213225758j:plain

折角単語帳があるのだから、ここは辞書(連想配列)で対応したい。
今回の作戦は、こんな感じだ。

  1. 単語帳で、連想配列作成。
  2. 表の各単語をループで確認し、単語帳にあれば和英併記化する。

単語帳は、このような構成にしてみた。
・key 日本語
・item 日本語 + 改行 + 英語

Sub Sample()
    ' 辞書(連想配列)作成。
    Dim Dict As Object
    Set Dict = CreateObject("Scripting.Dictionary")

    Dim r As Range
        For Each r In Range("C3:D5").Rows
            With r.Cells
                ' 和文と英文を改行で繋いでアイテムとする。
                ' キー情報は、.Value省略不可注意。
                Dict(.Item(1).Value) = .Item(1) & vbNewLine & .Item(2)
            End With
        Next
    
    ' 和英併記にする範囲。
    Dim TableRange As Range
    Set TableRange = Range("A3:A6")
    ' 表の各値を確認。
        For Each r In TableRange
            ' 辞書に存在する単語ならば、和英併記に置き換え。
            If Dict.Exists(r.Value) Then
                r = Dict(r.Value)
            Else
                r = r & vbNewLine & "単語帳に無し"
            End If
        Next
End Sub

結果は、昨日と同じ。
f:id:Infoment:20200213231054p:plain

個人的には、Findより、こちらの方が好みだ(単なる好みの話)。

明日に続きます。

参考まで。