高速化計画
・冗長なロジックを無くす 無駄なループがないか。 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" 構文を使えば、 そのインスタンスのテンポラリは一つだけで済むようになるので、処理が高速になります。 ------------------------------------------------------------------- ・処理時間を感じさせなくする スプラッシュ画面を表示させる。 ------------------------------------------------------------------- |