Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。JavaScriptやJScript,HTAに最近はまってます。

化学反応式 (4)

だいたい 化学反応式を分解したり,係数を数式内で変えたりと自由に動かせるものを作りました。

理由があって,画面を出すのはあまりよくないと判断し,言葉だけでの表現ですが,いくらかクラスモジュールも使いながらやれて,久々にそのあたりは満足しています。

ですが,配列でデータを用意したあと,二次元の座標に化合物の絵を描くところで思考がストップ。

考えをまとめる上でも,ちょっと書き出しに来たところです。

データとしては,下記のようなデータがあります。2次元配列に格納していて,元素個数のところは,区切りの文字列で格納。


f:id:chemiphys:20181006201331p:plain


ここまで用意出来たら簡単そうなはずなんですが,固まってしまっているんです。

上記のデータをこんな感じにしたい。

f:id:chemiphys:20181006202307p:plain

反応物も生成物も横11×縦9の〇を準備して白くしています。それを必要に応じて色を付けたり,文字をつけて元素ぽく見せるんです。

そのための元の配列を作りたいんですが,。。

できるだけたくさんの分子達を画面に収めたいので,
4, 5個の原子でできた分子なら二つ横に並べたい。 間に一つ空白。余ったところはキニシナイ。
2個,3個の原子でできた分子なら間に1つずつ空白を入れるとして,3つ横に並べたい。
1個の原子からなるものなら空白と交互がいいのかなぁ。

f:id:chemiphys:20181006202118p:plain

必要な情報をそろえているはずなのに,さっくりいかないです(;´▽`A``

今回一から化学反応式を題材にしたパワーポイントものを作ってるんですが,

正規表現をいくらかでも使うことで,以前よりずいぶんやりやすくなったとこを感じます。


でも,正規表現も ほんと 簡単なものしかわからないので,うまく引掛けられないのもあいかわらず。

MnO2+4HCl→MnCl2+2H2O+Cl2

とかで添え字だけ小さくしたいと思い,係数の数字はひっかけたくないけど アルファベットに続く数字だけを正規表現でマッチさせる。。

ということすら結局できませんでした(;´▽`A``

肯定後読みってのでできるんじゃないかなぁと思ってやってみてたんですが・・結局諦めた(;´▽`A``

先は長いです。