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

度々お世話になります。
Const+Evaluateの使い方ついてお教えください。

VBA内で「RANDBETWEEN」を使いたくて
long型の変数Valに対し
Constした「数」(10)を使い
Val=Evaluate("RANDBETWEEN(1,数)")
とか
Val=[RANDBETWEEN(1,数)]
とかしたら
「型が合わない」と、お叱りを受けました。

そこで
ウオッチに登録すると
エラー 2029
となっていました。

一方で
Application.WorksheetFunction.Ceiling(1 数)
は、問題ありません。

マイクロソフトサポートによると
( http://support.microsoft.com/kb/823604/ja )
「イミディ エイト ウィンドウ、Visual Basic エディターで、次のコマンドを入力し、ENTER キーを押しますと、この問題が発生可能性があります
application.Evaluate("=SUM(xyz(),apple)")」
とのことなのですが、

これ、
セルを使わない回避の技、ありますか?

どうぞ宜しくお願い致します。

A 回答 (2件)

2013版ではworksheetfunctionにあります。


他の版ではどうなのか・・・。確認してみてください。
MsgBox Application.WorksheetFunction.RandBetween(10, 30)
    • good
    • 0
この回答へのお礼

有り難うございます。
指定間乱数、と 云うのでしょうか…
追加されたのですね。

お礼日時:2013/05/07 17:36

これで良いのでは?


Val = Evaluate("RANDBETWEEN(1," & 数 & ")")
    • good
    • 0
この回答へのお礼

有り難うございます。

ですよね 滝汗…
文字列の中では変数を数値に変換してくれないですものね

失礼しました。

お礼日時:2013/05/07 17:35

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