• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロ 抽出)

エクセルのマクロで○が記入されたセルを抽出する方法

このQ&Aのポイント
  • エクセルのマクロを使用して、○が記入されたセルを抽出する方法を教えてください。具体的には、指定したセルの一つ上のセル、同じ行のA列のセル、9行目にある同じ列のセルを抽出したいです。C12からR171の範囲で○が記入されているセルを検索し、抽出するマクロです。
  • 試行錯誤しましたが解決できないため、お力を貸していただけないでしょうか。
  • 下記のコードを実行すると、行数=値.Rowでエラーが発生してしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

行数・列数の記入が値ループの「外」にほっぽり出されてます。 またこの程度のセル範囲なら、行・列で二重ループを廻してしまった方が「わかりやすい」かも?しれません。 sub macro1()  dim n as long  dim r as long  dim c as long  for r = 12 to 171   for c = 3 to 18    if worksheets("Sheet1").cells(r, c).value = "○" then     n = n + 1     with worksheets("Sheet2")     .cells(n, 3).value = worksheets("Sheet1").cells(r, 1).value     .cells(n, 4).value = worksheets("Sheet1").cells(9, c).value     .cells(n, 5).value = worksheets("Sheet1").cells(r - 1, c).value     end with    end if   next c  next r end sub ’○の個数だけしかループを回さない版 sub macro2()  dim c as range  dim n as long  with worksheets("Sheet1")   set c = .range("C12:R171").find(what:="○", lookin:=xlvalues, lookat:=xlwhole)   for n = 1 to application.countif(.range("C12:R171"), "○")    worksheets("Sheet2").cells(n, 3).value = .cells(c.row, 1).value    worksheets("Sheet2").cells(n, 4).value = .cells(9, c.column).value    worksheets("Sheet2").cells(n, 5).value = c.offset(-1).value    set c = range("C12:R171").findnext(c)   next n  end with end sub

meina04
質問者

お礼

ご回答ありがとうございます。 コピペでそのまま使えて助かりました。 勉強させていただきます。 ありがとうございました。

関連するQ&A