化学反応式の図示のためのコード とりあえずExcelで
うまくいかなくて悶々としてたので,ここに書きなぐって,お風呂に入って冷静に考えたら,
前回できなかったやつって,ポインタ使って丁寧にやっていくしかないか,と頭が冷えました。
パワーポイントでは VBAいじってても カーソルが見えなくなることが多々あり,うまく行ってない時はそんな細かい事でも
いらいらしますし,エラーが表示されないこともある,でちょっと付き合いにくいヤツなので,Excelでやってみた。
めんどうだったので,反応物と生成物で振り分けたりはしていません。
コードはこんな感じ
Sub test() Dim sht As Worksheet: Set sht = Sheet1 Dim rng As Range: Set rng = sht.Range("h2:r10") Dim i, j, k, l, x, y x = 1: y = 1 For i = 3 To 6 For j = 1 To sht.Cells(i, 2) If 11 - x + 1 < sht.Cells(i, 3) Then y = y + 1: x = 1 For k = 0 To UBound(Split(sht.Cells(i, 4), ",")) Step 2 For l = 1 To Split(sht.Cells(i, 4), ",")(k) rng.Cells(y, x) = Split(sht.Cells(i, 4), ",")(k + 1) x = x + 1 Next Next If x <> 11 Then x = x + 1 Next y = y + 1: x = 1 Next End Sub
ポインタを置いて丁寧にやったこと。
分子毎に毎回残りの列と分子数を比較して,入らないなら改行としたこと。
分子一個分原子を並べたら,xを一つ増やして空白を入れたこと。
違う物質になるときに改行したこと。
For Nextをがんがん回しただけで解決したようでした。
うまく行かなくなったらお風呂に行くのはいいことだ ( ´ー`)フゥー...