
VB6+sp6で開発しています。
最近、変数宣言でInteger型よりもLong型の方が処理が早いとか
If Trim$(strHoge) = vbNullString then の比較よりも
If Len(Trim$(strHoge)) = 0 then の方が早いと教えてもらいました。
実際は何万回も処理が走った時に数秒の差が出る程度だということなのですが
ほんとに処理速度向上に効果あるのでしょうか?
それと共にこんな小さなコードの書き方の違いで
処理効率が良くなったりする方法が他にもあるのか気になりました。
現場でよく使われているようなポピュラーな手法があったら是非教えてくださいm(_ _)m
No.2ベストアンサー
- 回答日時:
>ほんとに処理速度向上に効果あるのでしょうか?
Private Sub Form_Load()
Dim sngNowtime As Single
Dim strHoge As String
Dim i As Long
i = 0
sngNowtime = Timer
Do While i < 1000000
If Trim$(strHoge) = vbNullString Then
i = i + 1
DoEvents
End If
Loop
Debug.Print "Trim$(strHoge) = vbNullString :"; Timer - sngNowtime
i = 0
sngNowtime = Timer
Do While i < 1000000
If Len(Trim$(strHoge)) = 0 Then
i = i + 1
DoEvents
End If
Loop
Debug.Print "Len(Trim$(strHoge)) = 0 :"; Timer - sngNowtime
End Sub
うーん。微差。
1さんのURLの内容と被るかもしれませんが私は
・オブジェクトのTextやCaptionプロパティなどを直接参照しない
・Withを使う
・なるべくFor eachを使う
などを意識していますね。普通に。
ファイルアクセスとかDBをあたりに行ったりする明らかに重い動作を重点的にチェックするのが一番効果が目に見えて楽しいかも。
No.1
- 回答日時:
こんにちは。
maruru01です。いくつか載っているページを紹介します。
http://www.bcap.co.jp/hanafusa/
([VB6.0関係]→[その他]→[プログラムの最適化])
http://www.mb.ccnw.ne.jp/garger-studio/vbgame/be …
可読性とのバランスだと思いますが。
あとは、単純なループ処理の場合など、待ち時間の精神的負担の軽減というアプローチもあるでしょう。
(進行インジゲータの表示など。)
参考URL:http://www.bcap.co.jp/hanafusa/,http://www.mb.ccnw.ne.jp/garger-studio/vbgame/be …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 13:13
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
- Visual Basic(VBA) VBAのifで 4 2023/05/16 14:21
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
小数点を含む数値かどうか判断...
-
Excel VBAにて、2GB超の点群デ...
-
空容量チェック
-
絶対パスの取得について
-
Excelでのセル内容の高速消去方法
-
win10で、正確な待ち時間の作り方
-
Excel VBA データ削除の高速化
-
DoEvents関数って何?
-
ヒストグラム平滑化について
-
C#で書かれたプログラムをバッ...
-
VBでの簡易電卓の作成(減算方...
-
ASICの動作
-
これはCPUか何かハードウエアの...
-
c言語。 組み合わせ最適化問題...
-
clispの実行方法
-
実行時のCPU使用率を増やしたい
-
エクセルVBA 時間抜けの取得
-
関数の値を配列に格納する早さ
-
C言語を使って多項式を計算する...
-
VBS でプログラムを先頭から再試行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
小数点を含む数値かどうか判断...
-
win10で、正確な待ち時間の作り方
-
DoEvents関数って何?
-
Excel VBAにて、2GB超の点群デ...
-
If Not c Is Nothing Then ~延...
-
ノットイコールを教えて下さい
-
絶対パスの取得について
-
テキストファイルの空行をスキ...
-
プログラム上のCPU稼働率低減に...
-
SQLの速度をあげるには・・・
-
プログラミングの授業でPython...
-
VB 電卓 メモリー機能
-
C言語 時刻差分の算出方法
-
Excel(VBA)でSetTimer関数を使...
-
ナップザック問題?をエクセル...
-
Excel VBA での処理時間計測結...
-
VBS でプログラムを先頭から再試行
-
VC++2010 GDIオブジェクトの解...
-
VBでの簡易電卓の作成(減算方...
おすすめ情報