Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


70278 / 76738 ←次へ | 前へ→

【10970】Re:処理速度の向上について
発言  ichinose  - 04/2/20(金) 8:02 -

引用なし
パスワード
   ▼K.C さん:
おはようございます。
処理速度を上げる方法はあると思いますが、それは別の方におまかせするとして・・。
このコードで疑問があったので質問です。

>Sub test()
>
>Dim n, o, m, x, y, i As Double
>n = Range("A1").End(xlDown).Row
>o = Range("B1").End(xlDown).Row
>
>For m = 1 To o
>
>  x = Cells(m, 2)
>st1:
>  For i = 1 To n
>  
>    If Cells(i, 1) <= x And x <= Cells(i + 1, 1) Then
>    y = i + 1
>    
>    GoTo st2
>    
>    ElseIf Cells(i, 1) > x And x > Cells(i + 1, 1) Then
'       このIF文にひっかかるcells(i,1)という値の一例を教えて下さい
'       ここに入ってくるcells(i,1)って存在しないのではないですか?
'       もしかして、Andではなくて、Orですか?
'       でも、そうだとしたらこれループしっぱなしになってしまいますよ。
>    
>    GoTo st1
>    
>    ElseIf Cells(1, 1) > x Then
>    y = 2
>    GoTo st2
>    
>    ElseIf Cells(n, 1) < x Then
>    y = n
>    GoTo st2
>    
>    End If
>  Next
>st2:
>
>  Cells(m, 3).Value = y
>
>Next
>
>End Sub
それから、Goto文を否定するわけではないのですが、
上のコード、Goto文を入れない方が見やすいコードになりませんか?
0 hits

【10968】処理速度の向上について K.C 04/2/19(木) 23:17 質問
【10969】Re:処理速度の向上について りん 04/2/20(金) 7:49 発言
【10970】Re:処理速度の向上について ichinose 04/2/20(金) 8:02 発言
【10982】Re:処理速度の向上について Hirofumi 04/2/21(土) 17:57 回答
【10986】質問と別解 Hirofumi 04/2/21(土) 21:40 回答
【10988】Re:処理速度の向上について K.C 04/2/22(日) 0:46 お礼

70278 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free