質問: オートフィルタ後の、マクロでの値の参照に関して オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 a列、b列、c列にそれぞれ、検索条件を指定し、オートフィルタ後、下記のような状態になります。 参照したい値は、d列になります。 下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 (例:オートフィルタ後) 1行 a▼ b▼ c▼ d 16行 ** ** ** 2.5 20行 ** ** ** 2.7 *2~15行目は見えなくなっています。 *17~19行目は見えなくなっています。 セルを参照し、マクロ内に戻すには、どのような構文(マクロ)の記述が必要でしょうか? 【備考】 ・上記の例では、セルはd16、d20となりますが、抽出条件によっては、行番号が変わってしまいます。 ・抽出後のd列のデーター数は、常に2つです。 よろしくお願いします。
回答: >下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 マクロ内に戻したいという意味が分かりにくいです。「マクロ」というのを、コードに戻すとしても、意味が通りませんので、単なる抽出に留めます。 '// sub testmacro1() dim rng as range dim c as range, i as long dim ar(1) as double with activesheet if .autofiltermode then set rng = .autofilter.range 'タイトル行を含めない場合は、on error resume next が必要 with rng.columns("d").specialcells(xlcelltypevisible) for each c in .cells if isnumeric(c) then ar(i) = c.value i = i + 1 if i > 1 then exit for end if next c end with end if end with msgbox ar(0) & "," & ar(1) end sub