Excelのユーザー定義関数の制限についてちょっと覚え

Excelのユーザー定義関数の制限についてちょっと覚え

●ユーザー定義関数の制約
・セルの挿入、削除、書式の設定はできません
・セルの値の変更はできません
・シートの移動、名前の変更、削除または追加もできません
・計算方法または画面表示の変更もできません
・非自動再計算(再計算させたいなら「Application.Volatile」メソッドを使う)
・ブックへの名前の追加。
・プロパティの設定およびほとんどのメソッドの実行。

特に
Selectメソッドは要注意。たとえばあるセル範囲をループしながら何らかの計算を行うようにするときはFunctionプロシージャの引数をObject型にしてSelectメソッドを使わないように考慮する必要があります。

当然できるはずやと思うとったんが「他のセルの値の変更」と「自動再計算」
仕様やと言われたらそれまでやけど。




関数を使った数式内で他のセルを参照している場合、参照しているセルの値が変更されると、数式の結果も自動的に再計算されます。それはそのときその参照しているセルを使った数式が入ったセル全部が再計算されると同時に、NOW関数やTODAY関数を使った数式が入ったセルも再計算されます。
しかし!VBAでFunctionプロシージャ内でNOW関数を使っている場合は、そのプロシージャに無関係なセルが変更されても再計算は行われません。

・当該のユーザー定義関数が入力されているセルをダブルクリックしてEnterキーを叩く
・そのFunctionプロシージャ内に
 Application.Volatile
という記述を入れておく。
などの対処が必要です。
関連記事
Guide
  •  …この記事と同じカテゴリの前後記事へのページナビ
  •  …この記事の前後に投稿された記事へのページナビ
 

~ Comment ~

  ※コメントの編集用
  シークレットコメントにする (管理者のみ表示)

~ Trackback ~

卜ラックバックURL


この記事にトラックバックする(FC2ブログユーザー)

MENU anime_down3.gif

同じカテゴリの記事が一覧表示されます
同じタグの記事が一覧表示されます
更新月別の記事が一覧表示されます
キーワードで記事を検索