|
▼山野 さん:
おはようございます。
>マクロaaaのなかでマクロbbbを実行します。
>マクロbbbのコードの一部にはgoto JUMP1という文があり
>このJUMP1はマクロaaaにあるようにしたいのです。
ふ〜ん、ここでGoto文論議をする気はありませんが、
このようなコードを書かないように
40年以上前にダイクストラが構造化プログラミングを
提唱したと思いますが、いかがですか?
>
>sub aaa()
>:
> 'マクロbbbの実行
> bbb
>:
> JUMP1:
>:
>sub
>
>
>sub bbb()
>:
> goto JUMP1
>:
>sub
これ、
Sub aaa()
Dim result As Long
result = bbb
If result = 0 Then
MsgBox "bbbで0が返った"
End If
MsgBox "ccc"
End Sub
Function bbb() As Long
bbb = Int(Rnd() * 2)
End Function
bbbから返ってくる値によって、aaa内でIf文等で
分岐すれば、同じことが出来ますよね?
これらのことが分かっていて、
尚、処理速度やメモリー消費が少ないからという理由で
Goto文を使いたいというなら、VBAではなく、他の処理速度が
速い言語を使うことをまず考えたほうが良いと思いますけどねえ!!
このサイトでもGoto文を使用したコード例は、少ないけれど、
極たまに見かけますが、それは、Goto文を使った方が分かりやすい
とかコードがすっきりするというような例で
ご質問のようなコードが分かりづらくなるような使い方ではありません。
私自身は、Goto文絶対不使用論者ではないけれど、
構造化プログラミング可能言語で使ったことはありませんね!!
|
|