普通に、セルに式を書いている分には、こんなこと考えもしませんでした。
いままで、他のセルを変更するような関数の必要性にも遭遇しませんでした。
EXCELの関数ではセル書き換えができない
おそらく、ほとんどの表計算処理では、関数をつかって他のセルを変更する場面がでてこないのです。
ところが、そんな必要がでてきました。
どういうことかというと、
同じような計算が何度も発生するので、計算結果をどこかのセルに保存しておき、
再度同じ計算が必要になったら、保存しておいたセルを参照するような処理を実装しようとしたのです。
もちろん、セルに関数を書いても駄目だろうというのは感じていましたが、モジュールを作ってやれば他のセルを書き換えできると考えていたのです。
関数からマクロを呼び出せばできるだろうと。
しかし、それがどうやってもうまくいきません。
関数のなかからcells()関数を呼び出してセル書き込みしても、書き込みされないのです。
デバックしてかってに関数が終了してしまうような
いつもと違った動きになります。
これが動いたり動かなかったり。
エラーとならなかったのではまってしまいました。
モジュールから呼び出しても、関数呼び出しではセルの書き換えはできない!
いろいろためして調べた結果、これが結論です。
関数は、セル参照はできますが、セル書き込みはできません。
セル書き込みしたいのであれば、マクロ形式で実装する必要があったということです。
いろいろ調べたのですが、これが結論です。
セル書き換えができなかった処理の例
対処方法
基本はあきらめることになります。
実行のタイミングをどこにするかの問題はありますが、関数でなくマクロとして処理されるようにすることで対処できます。