げんちゃんゲームランド

げんちゃんゲームランド - 無料ブラウザゲーム 商人物語のサイト

やや晴れていたが、時折雪が降り、とても寒い。

この日記を27日に書いたが、書き込む前に消してしまい、今日28日にまた書いている。間違えて消してしまうことはたまにあるが、頑張って書いたものが消えると、ショックは大きい。

昨日、相平衡論のグラフを描画するエクセルのツールを作ったが、今日はそれを改良していた。この相平衡論の自由エネルギー曲線というのは、2つの曲線を通る接線を引いて、その時の接点を下に下ろし、その場所の割合を求めるという使い方をするため、まず接線を自動で引きたかったが、これは難しく、やはり実際定規を当てて引くのが早いことがわかった。で、そうなると、連続的にたくさんのグラフを出して、印刷しなければならない。他の人は、一つ一つ値をいれてグラフを作成し、それを他のシートにコピーし、並べていって印刷したのだという。一つのグラフを書き換えて印刷するのなら簡単だが、値を細かく変えた、たくさんのグラフを出力するのは、工夫がいる。で、じゃあ具体的にどのようにしたいのかというと、定数項を入れて、温度の範囲と温度の刻みを入れるだけで、自動的にグラフが印刷されるようにしたい。例えば、800℃から1000℃まで、50℃毎にグラフ化すると、800、850、900、と、順に値を変えたグラフができ、印刷されるという感じである。紙がもったいないので、1ページに3つとか、6つとか、任意の個数のグラフと、定数項を入れたい。と、イメージは決まったわけだが、どうやって実現させるか。マクロ機能で、グラフをGIF画像にして出力できるようなので、最初グラフをWEBページとして出そうと考えて作業をした。スタイルシートなどで、グラフの並び方を変える。だが、WEBページの画像は、解像度が悪いため、グラフの曲線が滑らかでなくなってしまう。高解像度の画像を、WEBページに縦横圧縮して入れれば、印刷時にはきちんと印刷されるのだが、結局WEBページ上ではグラフがつぶれてしまう。結局、WEBで出すのは方法としてよくないことがわかった。で、1ページに入るグラフの個数は3個と決め、エクセル上で予め印刷するスペースを設け、マクロの範囲を指定して印刷する機能で印刷することにした。やや妥協した感じがするが。結局、エクセルでローカル上にファイルを出力するというのは、自分で商人物語のデータを出したりと、自分一人用としては使えるのだが、配布を考えた場合、どこのディレクトリに出力するのかだとか、ファイル名の重複とか、考慮すべきことが多くてあまりいい方法ではないみたいだ。で、完成し、印刷。マクロで印刷するのは、とても簡単で、オブジェクトの後にプリントのメソッドを入れるだけである。久しぶりにVisualBasic的なものを触ったが、行末に「;」は入れなくていいし、文法は指摘してくれるし、楽だ。「select case」構文も使えるし。Perlだったら、「if…elsif」でつなげていくしかないからなぁ。特に、カッコをほとんど使わないのがいい。IF文もカッコを含まないし。また、ラベルとGOTO文というのもベーシックだけかもな。

と、作っているうちに1日が経ってしまった。本当はちょっと買い物とかにも行こうと思っていたのだが。