質問: vbaで複数の条件を照らし合わせセル内容を抜き取る vbaで下記のような事がしたいです。 画像のように b列に名前、d列に数字が入っています。 gからi列には 数字、内容、名前があります。 b列とi列、d列とg列をそれぞれ照らし合わせ 名前と数字が合致した時、h列の内容をe列の合致したセルに 表示したいというものです。 たとえば、e1セルにはh2セルの指導 e2セルにはh3セルの直接業務 e3セルにはh1セルの朝礼 ・・・ といった感じです。 関数などではなくvbaが希望です。 宜しくお願いします。
回答: こんばんは! お示しの画像のように項目行はなく、1行目からのデータだというコトで・・・ 一例です。 sub sample1() dim mydic as object dim i as long, lastrow as long dim mystr as string dim mykey, myr set mydic = createobject("scripting.dictionary") lastrow = cells(rows.count, "g").end(xlup).row myr = range(cells(1, "g"), cells(lastrow, "i")) for i = 1 to ubound(myr, 1) mystr = myr(i, 1) & "_" & myr(i, 3) if not mydic.exists(mystr) then '//←念のため// mydic.add mystr, myr(i, 2) end if next i lastrow = cells(rows.count, "a").end(xlup).row myr = range(cells(1, "a"), cells(lastrow, "e")) for i = 1 to ubound(myr, 1) mystr = myr(i, 4) & "_" & myr(i, 2) if mydic.exists(mystr) then myr(i, 5) = mydic(mystr) else myr(i, 5) = "" end if next i range(cells(1, "a"), cells(lastrow, "e")) = myr set mydic = nothing msgbox "完了" end sub こんな感じではどうでしょうか?m(_ _)m