VisualBasic5.0の実行速度を高めるためのチューニングポイント
VisualBasicはCコンパイラなどと比べて遅いといわれます。
しかし、データベースのチューニングと同じようにコーディング次第で実行速度を高めることが可能です。
特に業務系アプリケーションを構築する場合ではDAOやRDOの使い方、SQLの記述の仕方の善し悪しでかなり実行速度が変わってくると思われます。
1.Variant変数は使わない
Variant変数は使わないようにしましょう。この変数は処理が遅くなります。
数値を取り扱う変数はLongを使いましょう。Longは32ビットCPUで非常に高速に処理されます。
2.Object変数は使わない
総称オブジェクト型Obectはオブジェクト変数版のVariantといえるもので、オブジェクトであればなんでもセットできるものですが、処理は遅くなります。
オブジェクト変数はFormやTextboxなど固有オブジェクト型を使って、必要なオブジェクト型を明示しましょう。
3.プロパティの値を直接加工しない
テキストボックスなどのTextプロパティの値を
Textbox1.text = Textbox1.text & ";"
などと直接加工すると処理が遅くなります。
このような場合は、
temp = temp & ";"
Textbox1.text = temp
とした方が速くなります。
4.For Eachループを使用する
For EachループはFor Nextループより格段に速く処理します。
配列やオブジェクトコレクションではFor Eachループを使用しましょう。
5.ドット演算子の数を減らす
Commandbutton1.Font.Size = 10のような書き方は避けましょう。
めんどうでも、
Dim Fontobject As Font
Set Fontobject = Commandbutton1.Font
Fontobject.Size = 10
と指定しましょう。
6.フォームは事前にLoadしておく
フォームの表示をShowだけで行うと非常に時間がかかります。
他のフォームを処理している間などでこそっとメモリにLoadしておきましょう。
7.事前バインディングを使用する
OLEオートメーションを使用する場合、
Dim ObjExcelApplication As Object
Set ObjExcelApplication = CreateObject("Excel.Application")
とはせずに、
Dim ObjExcel As Excel.Application
Dim ObjExcelApplication As Object
Set ObjExcelApplication = New ObjExcel
と指定しましょう。オブジェクト呼び出しのための余分なオーバーヘッドがなくなります。
情報化ヒント集(Tips)に戻る
ホームページに戻る