読者です 読者をやめる 読者になる 読者になる

Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。Word VBAも始めました。

原子の構造と電子配置⑤構想中

Powerpoint VBA

chemiphys.hateblo.jp
つづきです。

今は差し迫った仕事が重要で,長期的な教材づくりとかに時間を割きにくいので,こちらはコード面では進んでいません。

ただ,
授業で使いやすいように,どういう方向にもっときちんと作るかという方向で検討中。

とりあえず動いたので,これでいいやで終わってもいいんですが,物理分野と違い,一応私の教員免許には 理科(化学)と書かれていますので,

もうちょいちゃんと作るべきだと思われます。



①まず1つは,周期律のところでネタになる 原子半径の大きさ。電子殻が同じでも,原子核中の陽子数が増えると,基本的には原子半径は小さくなります。
化学便覧やいろんな図表にサイズの数値はありますので,それを利用すれば,だいぶそれっぽくなるはず。これはたぶん実装可能。

②閉殻を表現したい。価電子以外のきれいに収まっている分の電子は,反応に関与しないという話をいつもするんですが,それをどうにか表したい。
現段階でも適当に色がつくようになっていますが,実際閉殻な部分はどうなるんだろう。どうにかしたいよなぁ。例えばめちゃくちゃ電子が活発に動いてて,外部からの影響を遮断するように描くとか,
動きが逆に緩慢になるように表現するのか,むしろ閉殻部分は回るのを止めてしまうとか,明滅させてしまうとか,いろいろ表現方法はあるだろう。

と,ここまで書いたところで,お風呂に行ってたんですが,そこではっと気づいた。

今電子一つ一つを別々にぐるぐる回してますが,

まず電子殻の線を描いて,そこに電子を等間隔,または適切に配置してグループ化して,ローテーションプロパティぽいのがあるはずだから,
それを動かせばくるくる位置関係を保ったまま回せるんじゃないだろうか。

そしたら,結局20番目までの元素ならK,L,M,N殻まで,つまり4つ回せばいいだけだから 楽じゃないか。

回転系のお絵かきって,これで結構応用効くんじゃないかな。

Option Explicit

Sub a()
Do
    ActivePresentation.Slides(1).Shapes("原子核").Rotation = ActivePresentation.Slides(1).Shapes("原子核").Rotation + 1
    ActivePresentation.Slides(1).Shapes("txt").TextFrame.TextRange = " "
    DoEvents
Loop
End Sub

原子核という適当なShapeとtxtというテキストボックス更新可能なものを何か置いたら試せます。

f:id:chemiphys:20170206214616g:plain
これはひどい・・・コードですが 回せました(゚▽゚*)

わざと変数を一つも使わずに回してみた。

これなら,静止画段階をきちっと描くことに集中して,容易に回せるんじゃないかな。

クラスモジュールを駆使して回すことも大事な技術です。とても楽しい。応用もいろいろありうる。惑星ぽいのを描いたのはそれじゃなきゃ大変。

でも,今回の原子模型はあきらかにグループ化したものをRotationいじって回した方が いろいろ応用効くよな。

同じことをしようとしてもいろいろとアプローチはありますねぇ。。

オモシロクナッテキタ。