高速化計画


  ・冗長なロジックを無くす
    無駄なループがないか。
    Debug.Printが残ってないか。
   -------------------------------------------------------------------
  ・コントロールを使いすぎてないか
    見栄えだけのコントロールは無くす。
    デバック用のコントロールが残ってないか。
   -------------------------------------------------------------------
  ・コーディングでの注意点
    Option Explicit(変数宣言を強制)は使用する。
   -------------------------------------------------------------------
    変数に適当な型を指定する。
     Variant型(数値、文字、オブジェクト等を格納)は便利だがなるべく使用しない。
     Dim test As String
     Dim test As TextBox

     Function test() As String
     End Function

     補足:IntegerやSingleを使うならLongやDoubleを使用する。
        LongやDoubleの方が高速。また桁オーバーフローの防止にもなる。
   -------------------------------------------------------------------
    文字列関数に型宣言文字を付ける。
     Mid$,Left$,Right$,Format$とする。
     何もないとVariant型になる。
   -------------------------------------------------------------------
    Val関数は使用しない。変わりにCDbl関数とかCSng関数を使うべきである。
   -------------------------------------------------------------------
    引数の渡し方(参照渡し(ByRef)と値渡し(ByVal))を考慮する。
     指定がないときは参照渡しになる。値渡しの方が高速である。
     処理結果を引数に戻すときは参照渡しになる。
   -------------------------------------------------------------------
    AutoRedrawプロパティを使う。
     グラフィックスの再描画速度をあげる。
     Paintイベントを使用すると処理が遅くなる。
   -------------------------------------------------------------------
    単純な画像表示のコントロールはImageコントロールを使用する。
    PictureBoxは多機能であるため消費するリソースが大きい。
   -------------------------------------------------------------------
    ReDimを採用し適切なリソースを確保する。
    Dim test() As String
    ReDim test(Max) As String
   -------------------------------------------------------------------
    With...End With 構文による高速化
    "With...End With" 構文は、オブジェクトのプロパティの箇所をコーディングを
    簡易化するだけでなく、プログラム自体の処理の高速化も図れます。
    VB は通常、指定されたそれぞれのプロパティに対して、そのローカルインスタンスを
    テンポラリとして作成しますが、 "With...End With" 構文を使えば、
    そのインスタンスのテンポラリは一つだけで済むようになるので、処理が高速になります。
   -------------------------------------------------------------------
  ・処理時間を感じさせなくする
    スプラッシュ画面を表示させる。
   -------------------------------------------------------------------