- 締切済み
GoTo文とかSelect文の処理の仕方に関して
Excel VBAに関しての質問です。 コードを書いていてGoTo文とかSelect Case文を使いますが、 例えば、GoTo文で飛ばされた間のコードは処理時間に影響するのでしょうか? また、Select Case文で該当しなかった命令文は処理時間に影響するのでしょうか?? 以下の命令文があります。 Sub TEST() Dim A As Long For i = 1 To 10 Cells(i, 1) = A A = A + 1 Next i GoTo B For i = 1 To 10 Cells(i, 2) = A A = A + "あ" Next i B: End Sub これ、GoTo文で飛ばさないと、「型がちがうよ!」って怒られてしまいます。 (もちろん、例えとしてで、こんなコードは、いまでは書かなくなりましたが(汗)) ということは、GoTo文で飛ばされたコードはシングルクォーテーションで くくられたことと同じになるんでしょうか? GoTo B 'For i = 1 To 10 'Cells(i, 2) = A 'A = A + "あ" 'Next i B: そもそも私のイメージでは、シングルクォーテーションで囲まれた範囲は、 演算処理とは関係なく無視されるみたいにイメージしていたんですけど、 いくら、シングルクォーテーションで囲んだとしても、その範囲が膨大に大きく多い文字数だと、 やっぱり処理時間に影響するものなのでしょうか?? Select Case文を使うときに、 Select Case 条件式 Case 条件1 すんごく長いコード Case 条件2 すんごく長いコード ・ ・ ・ End Select って、続くとします。 条件に一致していないところは演算処理に影響を及ぼさないのでしょうか?? もちろん、長いコードを書けば、ファイルのサイズは大きくなるでしょうが、演算処理の速さに影響するものなのかな??ってのがとても気になりました。 ご存じの方おりましたら、ご指南くださいませ。 ちなみに、私はまだVBAを勉強し始めてまだ間もない若輩者でして、GoTo文などは、とりあえず「ここ要らないかも」って思ったところに使用するくらいで、高度な使用の仕方はしておりません。 それと、私はExel VBAしかプログラミング言語を知らないので、VBAではこうだけど、別の言語の似た命令だと、影響したり、しなかったり。。。するよ。みたいなお話も聞けたら幸いです。 どうぞ、よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
- kmee
- ベストアンサー率55% (1857/3366)
- imogasi
- ベストアンサー率27% (4737/17070)
- inadomez
- ベストアンサー率40% (9/22)
- KAZUMI2003
- ベストアンサー率37% (77/208)
お礼
実験していただいて恐れいります。 まだまだプログラムの組み方がへたくそで、大きなコードをひとまとまりとして、Select文で選択させて実行するようなものしかつくれなくて、もっと勉強してスマートなコードを書けるようになりたいです! ありがとうございます!