Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


73100 / 76738 ←次へ | 前へ→

【8121】Re:Evaluateとは???
お礼  kawata  - 03/10/1(水) 13:49 -

引用なし
パスワード
   kawataです、よろしくお願いします。

ichinoseさん、何度もすいません、ありがとうございます。

>Withステートメントが不要でした。
>これを悩んでおられたなら、申し訳ありません。消し忘れです。
>↑ではないとして・・・、

はい、了解です、With 〜 End Withをコメントアウトしての
動作確認はしましたです。

>EvaluateのHelpをみると、
>「使用する名前を、オブジェクトまたは値に変換します。」とありますが、
>私は、「指定された文字列式を評価した結果を返します」という風に理解しています。

教えていただいても、あっ、なるほど!・・・・とこない(−_−メ。
とんでもなく、そういう風に理解するには(私の限界かな(^^;)。

>そして、この文字列式内でワークシート関数も有効なため
>
>cnt = Application.Evaluate( _
>      "=SumProduct((a1:a10 >= 5) * (a1:a10 <= 7))")

cnt = Application.Evaluate( _
          "application.SumProduct((a1:a10 >= 5) * (a1:a10 <= 7))")

という疑問もありました。

>このコードでセルA1〜A10が1〜10だった場合、3という結果が変数cntに格納されます(Sumproductを使用すれば3という結果が得られる理由はよろしいですよね?)。

はい、true * true が成立した3つの和(^^;。
これを理解するのにも時間かかりましたです。しかし、配列を使っていくうえで
避けては通れないような、もうひとつ頑張って確実にものにします。

>さらに文字列式を評価した結果が配列だった場合には配列をも返してくれます。
>(かなりの高確率で・・という表現に留めておきますが)

(中略)
>
>なんて書き方もできました(実務に使用する場合は、細かいエラーチェックが
>必要ですが・・、例えば結果が配列ではなかった場合とか・・)。
>
>こんな説明でいかがでしょうか?

ありがとうございます。Helpを書き換えたい気持ちです。
これから、再度提示いただいたコードを解析していきます。
まだまだ、私の中では、ボンヤリだったのが、少し晴れてきたかな
・・・ぐらいですが(^^;。

ありがとうございました!!、またよろしくお願いします。

0 hits

【8117】Evaluateとは??? kawata 03/10/1(水) 9:05 質問
【8119】Re:Evaluateとは??? ichinose 03/10/1(水) 13:24 回答
【8121】Re:Evaluateとは??? kawata 03/10/1(水) 13:49 お礼

73100 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free