- ベストアンサー
エクセルのマクロで○が記入されたセルを抽出する方法
- エクセルのマクロを使用して、○が記入されたセルを抽出する方法を教えてください。具体的には、指定したセルの一つ上のセル、同じ行のA列のセル、9行目にある同じ列のセルを抽出したいです。C12からR171の範囲で○が記入されているセルを検索し、抽出するマクロです。
- 試行錯誤しましたが解決できないため、お力を貸していただけないでしょうか。
- 下記のコードを実行すると、行数=値.Rowでエラーが発生してしまいます。
- みんなの回答 (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
お礼
ご回答ありがとうございます。 コピペでそのまま使えて助かりました。 勉強させていただきます。 ありがとうございました。