- エクセルは1つのセルに計算式を入力すると、そのセルにだけ計算結果が返ってくる。ベクトル演算やマトリクス演算等を行う場合は、計算式を展開して各セル一つひとつに式を入力しなければならず、式の入力が煩雑な上に可読性が非常に悪くなる。
- そこで、1つの計算式で複数のセルに演算結果を返す仕組みを実現した。利用者がセルに入力したスクリプトを解釈実行するインタープリタ方式である。表現形式は若干異なるが、エクセルが備える通常の関数を使うように利用できる。
- 20年ほど前に作って個人で利用してきた。エクセルの開発用言語(VBA、visual basic for application)はこれまでほとんど変更がなく、今でも全く問題なく使用できる。
本サーバーは変更されます。今後は下記より閲覧してください。
1 記述方法
- インタープリタが扱うのはユーザが定義した関数及びマクロで、セルにスクリプトとして記述する。
- 関数型スクリプトは下記のように記述する。
=exe(式表題,代入文,代入文,・・・)
- 代入文は式の演算結果をセル範囲に代入することを指示する。
セル範囲=式
- マクロ型スクリプトは下記のように記述する。
=exe(式表題,マクロ名,引数,引数,・・・)
- 引数はセル範囲及び、エクセルが直接評価できる式を記述する。
2 エクセル画面の例
- 回転マトリクスの生成
- 2つのマトリクスの乗算
- 関数の引数に関数を使用(入れ子階層数はエクセルの限界まで)
- コピー&ペーストするとセル範囲が自動調整される(上記(2)に示したセルI1を
コピー&ペーストした)
- 代入文を3個指定した例(代入文は後ろから実行される)
- 関数の引数や戻り値のセル範囲の形状は任意
3 エラー表示画面
- 実行時にエラーが発生した場合、下記のようなメッセージを出して訂正すべき箇所の発見を手助けする。