質問: vbaにて検索して検索結果を表記 はじめまして。 vbaにてファイルaとbがあり、ファイルaにファイルbのデータがあるかを検索して、 ある場合はファイルaの検索した値が入力されているセルの二つ隣のセルに 「あり」、ない場合は「なし」と表記したいのですが、どうしたら可能でしょうか。 findで検索して、if関数nothingとelseで場合分けまでできましたが、 表記できませんでした。 また、vlookupで検索した場合は、if関数の場合分けもできませんでした。 ご教授願います。
回答: vbaの質問でしたら、必ず、コードは書いてください。そうしないと、本当にvbaを書いているか分かりません。一応、何個あるのか数えていますが、ある・なしの表示の時に上書きしています。 sub testfind() dim bk1 as workbook dim bk2 as workbook dim c as variant, r as range dim rng1 as range, rng2 as range dim firstadd set bk1 = thisworkbook set bk2 = workbooks("book1") with bk1.activesheet set rng1 = .range("a1", .cells(rows.count, 1).end(xlup)) 'a列 end with set rng2 = bk2.activesheet.cells '検索される側の場所 application.screenupdating = false for each r in rng1 set c = rng2.cells.find( _ what:=r.value, _ lookin:=xlvalues, _ lookat:=xlwhole, _ matchcase:=true) if not c is nothing then r.offset(, 2).value = 1 firstadd = c.address do until c is nothing set c = rng2.findnext(c) r.offset(, 2).value = r.offset(, 2).value + 1 if c.address = firstadd then exit do loop firstadd = "" end if if r.offset(, 2).value = "" then r.offset(, 2).value = "なし" else r.offset(, 2).value = "あり" end if next application.screenupdating = true set rng1 = nothing: set rng2 = nothing set bk1 = nothing: set bk2 = nothing end sub