2007年へ/ 2008年へ/ 2009年へ/ 2010年へ/ 2011年へ/ 2012年へ/
2012-04-15[n年前へ]
■例外補足で演算子をオーバーロードするエクセルHack!
エクセル(表計算ソフト)の「表空間と値の拡張」を考える!?の続き、エクセルで「複素数」をセルに入力し、"=A+B"といった”普通の記述の”入力で複素数演算を実現させる、という「Excelの独自型」…まず、その実装方法が面白いです。
①複素数セルA1、A2に対し、=A1+A2のように入力
②#VALUE!エラーが出るので、それを検出(Workbook_Changeを利用)
③検出したセルに対し、入力数式を複素数演算用関数を用いた数式に変換(ここは、数式を解析して汎用に変換する機能が必要ですが、これはたぶんできる)
④変換後の専用関数による数式で計算し、そのまま値を返す
この方針を眺めると、 ”エラーを検出し、エラーの元になった文字列をもとに、拡張処理を実行させる”という実装方法が、"No method"例外を補足し、”見つからない”関数名を元にSQLパターン等を生成し、その関数名で「したいこと」を実現するというRuby on Rails のコードを連想します。
例外補足で演算子をオーバーロードする、という面白く・楽しいエクセル Hackです。