Excel VBA質問箱 IV

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

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


13316 / 13644 ツリー ←次へ | 前へ→

【5897】関数と自作マクロの処理速度の差について カド 03/6/7(土) 7:12 質問
【5918】Re:関数と自作マクロの処理速度の差につい... 角田 03/6/9(月) 14:26 回答
【5924】Re:関数と自作マクロの処理速度の差につい... カド 03/6/9(月) 19:25 お礼
【5930】Re:関数と自作マクロの処理速度の差につい... ゆと 03/6/10(火) 7:33 発言
【5975】Re:関数と自作マクロの処理速度の差につい... JuJu 03/6/11(水) 12:43 発言
【6013】Re:関数と自作マクロの処理速度の差につい... カド 03/6/11(水) 22:14 質問

【5897】関数と自作マクロの処理速度の差について
質問  カド  - 03/6/7(土) 7:12 -

引用なし
パスワード
   エクセルに元々備わっている関数と自作したマクロでは、処理速度がぜんぜん違うと思うのですが、この差はどうして生まれるのですか?

【5918】Re:関数と自作マクロの処理速度の差につい...
回答  角田 WEB  - 03/6/9(月) 14:26 -

引用なし
パスワード
   こんにちは。
>エクセルに元々備わっている関数と自作したマクロでは、
>処理速度がぜんぜん違うと思うのですが、この差はどうして生まれるのですか?
どんなマクロを作ったのか判りませんが、一言で言えば
 「コンパイルされて最適化されたもの」

 「1行づつ翻訳しながら進むインタプリタ言語で記述されたもの=VBAマクロ」
の違いです。

【5924】Re:関数と自作マクロの処理速度の差につい...
お礼  カド  - 03/6/9(月) 19:25 -

引用なし
パスワード
   ▼角田 さん:
こんにちは。回答有難うございました。

> 「コンパイルされて最適化されたもの」と
> 「1行づつ翻訳しながら進むインタプリタ言語で記述されたもの=VBAマクロ」
>の違いです。

コンパイルされたものとインタプリタの違いなのですね。良く分かりました。

それと自作のものは、無駄な処理も多いかな?とも思います。

【5930】Re:関数と自作マクロの処理速度の差につい...
発言  ゆと E-MAIL  - 03/6/10(火) 7:33 -

引用なし
パスワード
   カドさん、角田さんこんにちは。

>コンパイルされたものとインタプリタの違いなのですね。良く分かりました。
>
>それと自作のものは、無駄な処理も多いかな?とも思います。

個人的な意見ですが、Excel関数=SISC、VBAコード=RISCという印象があります。
もちろんVBA自体をRISCと表現することは不適切だとは思うのですが。
一文で処理を簡潔させることのできるExcel関数を「SISC」的と思っただけなのですけどね(^^;
逆にVBAコードは「SISC」命令セットを利用して「RISC」的表現を行うという感じを受けます。

…う〜ん、わかりにくい表現になってるなぁ〜。角田さんの回答の方が正解かも。

一応参考にURL入れておきます
「RISC」  http://yougo.ascii24.com/gh/00/000010.html
「SISC」  http://yougo.ascii24.com/gh/00/000009.html

【5975】Re:関数と自作マクロの処理速度の差につい...
発言  JuJu E-MAIL  - 03/6/11(水) 12:43 -

引用なし
パスワード
   カドさん、角田さん、ゆとさん、こんにちはぁ

>コンパイルされたものとインタプリタの違いなのですね。良く分かりました。

同じ条件なら、アルゴリズムの差もありますよね。

では、ちょっと別の回答も...

ドコにいるかもでも大きな違いが発生します。
例えば、セルを何個か足す関数を作るとしましょう。
外にいるマクロは、Rangeを経由して値を取得するのは結構遅いですよね。
内にいるExcel関数は、もっと速く値を取得することができます。
範囲が大きくなるとこの差が効いてきます。

ではではぁ

【6013】Re:関数と自作マクロの処理速度の差につい...
質問  カド  - 03/6/11(水) 22:14 -

引用なし
パスワード
   回答くださった皆さん有難うございます。

>外にいるマクロは、Rangeを経由して値を取得するのは結構遅いですよね。
>内にいるExcel関数は、もっと速く値を取得することができます。
外にいるマクロと中にいる関数の値を取得する差は、どうして生ずるのですか?
これまでの回答以外の理由があれば教えて下さい。

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