Excel on the Web 初のTypeScriptプログラム

Microsoft 365の web ExcelはVBのマクロではなく、TypeScriptのプログラムが動く。
TypeScriptはJavaScriptの上位互換で、変数のTypeが厳格になっているだけで、大きく変わるところはない。
そこで練習がてら、逐次反応をオイラー法で解くプログラムをJavaScriptからTypeScriptに変換してみた。

最も簡単な逐次反応は,
A→B,  r1=k1Ca
B→C,  r2=k2Cb
と書くことができる。
k1, k2は反応速度定数だ。Ca,Cb,Ccは各成分の濃度だ。

各成分の濃度を表わす微分方程式は次のようになる。
dCa/dt = -k1Ca
dCb/dt =k1Ca – k2Cb
dCc/dt = k2Cb

これをオイラー法を使って解く。


初期条件をセルから読み込み、各時間での濃度をセルに出力し、グラフを書く。

セルの値の取り出し方、出力の仕方が解れば、1時間もあれば作れる。
TypeScriptと言うからには、変数のTypeにはうるさい。
セルには、どんなタイプ(文字、数字、真偽値)が入っているかわからない。
そこでScript的には赤波線が置かれエラー表示なる。

そこで、解決方法がわからず1時間もかかってしまったのだけど、結局実行してみたらすぐに動いた。

エクセルのVBマクロは、どうも怖くて使う気になれない。
そこで、エクセルからコピーして、Webアプリで計算して、またエクセルに戻すようなことをやって来た。

でも、エクセルの表中のSmiles構造式を読み込んで、Y-MBで物性推算して結果を書き込むとかが簡単にできるようになる。

これは、色々と夢は広がる。

Excelの上でTypeScriptを動かすにも紆余曲折があった。
Cromeでは動くのにSafariで動かない問題は、どうもOneDriveの問題だったようだ。
自分は個人的には昔からOneDriveを使っている。

Pirika.comを始めて最近Microsoft 365に変えた。
そこで2種類のOneDriveがコンフリクトを起こしていたようだ。
まー、ユーザーの少ないMacではどうしても情報が少ないのだろう。

前のonedriveを消去して、Microsoft 365からインストールし直したら、Safariでも動くようになった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です