プロが教えるわが家の防犯対策術!

素人です。誤認識などございましたらすみません。

VBAとは、EXCEL関数も利用できるものと聞きましたが、

例えば、range("A1:D10")において 5以上の数を調べることを
countif("A1:D10",>5)のEXCEL関数をもちいて表現するにはどのような記載の
仕方をすればよいでしょうか?

なおかつ、D10の部分を inputboxなどで、入力者が数値を変化させたいのです。
D10をE20とか自由に変更させたい。

他の方法もあると思いますが、countifとinputboxを用いて、入力者が範囲を自由に設定でき、5以上の数を数えさせるにはどうしたらよいでしょうか?

質問自体がおかしかったり意味がとおらないのではと心配していますが、なんとなく意味がつたわりましたでしょうか?

A 回答 (2件)

その場合は次のようにします。



Range("E2") = Application.WorksheetFunction.CountIf(Range("a1:a" & 変数), ">5")
    • good
    • 0
この回答へのお礼

pesoさん

どうも度々 ありがとうございました。なにぶんにも、VBA等のプログラムなるものは、右も左もわからないのでチンプンカンプンな質問でしたが、ごていねいにわかりやすく教えてくださいまして大変助かりました。

お礼日時:2001/11/28 12:33

>例えば、range("A1:D10")において 5以上の数を・・・



ワークシート関数を使うためには Application.WorksheetFunction.関数 とします。

例)
Range("E1") = Application.WorksheetFunction.CountIf(Range("A1:D10"), ">5")

選択範囲にテキストボックスを使う場合は CountIf(Range("A1:D10"), ">5") の部分を CountIf(Range(テキストボックス名), ">5") にします。
また、 CountIf(Selection, ">5") にすると選択範囲が適用されます。

この回答への補足

pesoさんありがとうございます。大変たすかりました。大感激です。ところで下
のようなことはできるのでしょうか?追加で教えて頂けると助かります。

Sub Macro1()

Dim 変数
変数 = InputBox("変数を入力してください")
Range("E2") = Application.WorksheetFunction.CountIf(Range(変数), ">5")
'とやり A1:A13を入力すると出来ました!(大感激!!)
'ところで、テキストボックスにA1:A13に入力すると大変なので、A1:A×と固定してしまい
'テキストボックスに数字を入力するだけで範囲を指定させることはできないのでしょうか?
'下のようにしてみましたが、デバックになってしまいました。
Range("E2") = Application.WorksheetFunction.CountIf(Range("a1:a変数"), ">5")


End Sub

補足日時:2001/11/28 09:18
    • good
    • 0

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