方陣の判定処理時間はユニット5ケで6秒と予想外に長いので
VBAの処理を見直した。後の為に以下に整理しておく。
1.処理時間の長い原因
下図の方陣シートを参照して2つの繰り返し処理を行っていた為である。
1)5行目の部隊データ欄をB列からG列まで必ず6回参照する。
2)6行目の隊形データ欄をB列からG列まで必ず6回参照する。
部隊か隊形データの欄が空白か0の列は判定処理を省略するが、
データが残っていると判定処理を行う。
→pythonプログラムからの起動時には処理終了後にデータ消去を
していなかったので、最悪の場合には1回の処理で3つの判定処理をしていた。
(フランス軍、ロシア軍、プロシア軍の判定を行った後では3つのデータが残るため)
2.対策
2.1概要
対策案として2つあるが、案2を使うことにした。
案1)pythonプログラムからの処理終了後に6行目のデータを消去する。
5行目のデータは別シートの方陣表を参照する為に必要である。(下図)
この方法では必ず6回繰り返す処理が1つ残るので、最適ではない。
案2)B列だけを使うように処理を変える。(繰り返し処理がない)
B列はフランス軍専用ではなく処理用として、1回の起動で1回の判定しかしないようにする。
(そもそもpythonプログラムからの起動では1ユニットの判定しか必要がない為)
別シートの方陣表を参照する為の順番(下図)はpythonプログラムで指定する。
上記の順番が下図の別シートの方陣表の順番になる。
次回へつづく
<個人的な感想>
しばらく前に作ったプログラムで何をしているかを理解するするのに時間がかかる。
不意に現役でプログラムを作っていた頃を思い出した。
他人のプログラムを改修する仕事もあり、この人は何をしたいのか分からずに
苦労した記憶がある。
自分で作ったプログラムでも、時間が経つと他人の作ったものと同じように感じる。
歳のせいかもしれない。