|
すでに適切な回答をいただいています。
以下、参考のためのメモです。
(1)
ht tps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q108658705
(2)
ht tps://msdn.microsoft.com/ja-jp/library/office/ff700515(v=office.14).aspx
> 揮発性関数
> 揮発性関数は、参照元が変更されていないように思われる場合でも、再計算のたびに必ず再計算されます。揮発性関数を多用すると、再計算のたびに計算速度が低下しますが、全計算には影響しません。Application.Volatile を関数のコード内で指定すると、ユーザー定義関数を揮発性関数にできます。
>
> Excel の組み込み関数の中でも、RAND()、NOW()、および TODAY() は、言うまでもなく、揮発性関数です。また、OFFSET()、CELL()、INDIRECT()、および INFO() も揮発性関数です。
>
> 以前は揮発性関数として記載されていたが、実は、揮発性関数でないものに、INDEX()、ROWS()、COLUMNS()、および AREAS() があります。
((注)↑は、Excel2010を前提とした記述です)
質問にある、手法2を使いたい理由は何ですか?
記述のための労力節約ですか? コピーペイストすればさほどではないのでは?
式の明瞭性を確保する観点からも本来の1の使い方を私は推奨します。
Application.Volatileは、ユーザー定義関数を揮発性関数にする仕組みですが、
どの程度のセルでこの関数を使うかによりますね。
もしTODAY,NOW,INDIRECT,OFFSETを多用する方であれば、すでに揮発性関数を経験済み。
気にならないのであれば、それを使うのもアリかもしれません。
|
|