dポイントプレゼントキャンペーン実施中!

何度も失礼します。
再びVBAについて、質問させていただきます。

エクセル2010を使用しています。
今回は黒文字のみ(文字色1)の数値で最大値と最小値の抽出を
したのですが、どのようにしたらよいでしょうか?

A 回答 (2件)

計算の中身を変えるだけです,と言いたいところですがもうちょっと細工が要ります。




public function MAXblack(byval target as excel.range) as double
 dim h as range
 dim res as double, N as long
 application.volatile
 for each h in target
  if h <> "" and isnumeric(h) and h.font.color = rgb(0,0,0) then
   if n = 0 then
    res = h.value
   else
    res = application.max(res, h.value)
   end if
   n = n + 1
  end if
 next
 maxblack = res
end function



public function MINblack(byval target as excel.range) as double
 dim h as range
 dim res as double, N as long
 application.volatile
 for each h in target
  if h <> "" and isnumeric(h) and h.font.color = rgb(0,0,0) then
   if n = 0 then
    res = h.value
   else
    res = application.min(res, h.value)
   end if
   n = n + 1
  end if
 next
 minblack = res
end function

この回答への補足

いつもありがとうございます!!
さっそく入力してみたのですが、#VALUE!とでてしまいました。
このファイルに他2つのVBAを組んでいるのが問題でしょうか?

補足日時:2013/03/29 11:59
    • good
    • 0
この回答へのお礼

自己解決しました!!
いつも助かります!!本当にありがとうございました。

お礼日時:2013/03/29 13:48

一案です。


動的配列に検証範囲内を「黒文字且つ数値」を条件にデータをスタック、範囲終了後に同配列からMax/Min関数(ワークシート関数)で取出しては如何でしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます!ちょっとやってみますね!

お礼日時:2013/03/29 12:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!