エクセル 関数か?VBAか?

question:1157947032 で、VBAや関数を利用した、それぞれ特徴のあるいい回答がそろいました。
各商品ごとに数量のによって単価が変わるという要件への対応法ですので、興味のある方はご覧ください。
私のコメントがきっかけ?.. コメントで、関数か?VBAか?の意見が出ています。こちらも、それぞれのお考えがあり興味深いのですが、これは永遠の命題ですかね..


私も、VBAは使うのですが..やはりまわりに理解できる人がいないと、メンテナンスできなくて後で困ることが多々でてきました。
それに、エクセルのユーザ定義の表示形式や、条件付書式を使っただけでも、戸惑う人がいる職場なので、今後も業務で使い続けるものは、極力簡単な関数の組み合わせで対処しようと考えています。


この例とは別ですが、気になっているのは、他の方が作成したごく一部のVBAでは、エクセル本来の機能を使わずに、処理が遅いものが見受けられました。
一例として、シート上のある範囲の数字をクリアするVBAだったですが、ForEach文で広い範囲をなめているためか数秒間だんまりになりました。
でも、ジャンプのセル選択でも充分な状況だったので、それをキー記録すると一瞬で処理できました。

これは、尊敬するOffice TANAKA 田中さんの「VBA高速化テクニック」の「関数を使え!」にも、同様の趣旨のことを書かれていますが、VBAでもエクセルの基本機能を可能なら使うべきだと思います。


私なりのまとめ:それぞれ、一長一短あるので、用途や要件によって使い分ける。
 まとめになっていないかもしれませんが... m(_ _)m


最後に、関数やエクセルの基本機能でどこまでできるか、競ったような企画ということで雑誌「日経PC21」の「表計算腕自慢大会」の入選作品もご覧ください。これは、懲りすぎかな...