バタイユゲーム支援ツール強化版の高速化案5(2/E)

つづき

(2)セル内容の取り込みを限定した。(下図枠内)
   今までは6行3列のセル内容を全て取り込んでいたが、先頭行が空白の列は
   取り込まないように変えた。先頭行が空白なら、その列は無効な為である。

(3)セルの書き込みを纏めて行うように変えた。(下図下線部)
   セル毎に書き換えるのではなく、セル範囲に配列を書き込むようにした。
   射撃戦、士気チェック、白兵戦のモジュールは全て改修した。

4.エラーで苦戦した内容
(1)配列の添え字の最小値
   今までは添字付きで代入していたが、添字なしで代入する場合に初期設定では
   最小値が0から始まる事に気付かなかった。上図の下線部2番目が該当する。
   対策はメイン(サブの外側)でOption Base 1を宣言する。

(2)配列を縦方向のセルに代入できない。
   対策はTranspose関数を使う。(下図下線部)

5.参考資料
  下記のWEBページにお世話になりました。ありがとうございます。
 ・配列を使う
 ・VBAで2次元配列の初期化と利用方法
 ・Option Base
 ・【VBA】配列の格納とセルへ範囲指定して貼り付け【Resizeが便利】

<個人的な感想>
今回の改修は大規模だったので、もっと高速化ができると期待した。
その為、1.3秒の短縮にはガッカリした。3秒は短縮したかった・・・。