見出し画像

【Day20】文系オタクのエンジニア道~指定したところから処理 GoToステートメント~

こんにちは
安田です

今回は条件分岐の中の
指定したところにジャンプする
GoToステートメントについてです

任意の指定したところから処理を開始する

GoToステートメントのコード

Sub ジャンプさせる()

'GoTo 第三部
    
MsgBox "第一部 ファントムブラッド"
MsgBox "第二部 戦闘潮流"
'第三部:

MsgBox "第三部 スターダストクルセイダース"

End Sub

いま、コメントアウトしておりますが
第三部 スターダストクルセイダースまで飛ばすためには
GoToラベル名(任意)
ラベル名:
で囲います

上のコードでは、第一部から順番にメッセージボックスが表示されます

コメントアウトを解除すると
第三部のメッセージボックスのみが表示されるようになります

いくつかのパターンで処理を変える

Sub 乱数()
 Dim x As Integer

'乱数を表示させる
 x = Application.WorksheetFunction.RandBetween(1, 3)
 MsgBox x
 
 '乱数で出てきた数字に応じて処理が変わる
 Select Case x
   
  Case 1
    GoTo 第一部
  
  Case 2
    GoTo 第二部
  
  Case 3
    GoTo 第三部
  
 End Select
 
Exit Sub

第一部:
  Range("A1").Value = "ファントムブラッド"
 
第二部:
  Range("B1").Value = "戦闘潮流"

第三部:
  Range("C1").Value = "スターダストクルセイダース"
    
End Sub

乱数で表示された数値が「1」の場合は
第一部のラベルにジャンプして、それ以下の処理を実行
(ファントムブラッド、戦闘潮流、スターダストクルセイダースが表示)

乱数で表示された数値が「2」の場合は
第二部のラベルにジャンプして、それ以下の処理を実行
(戦闘潮流、スターダストクルセイダースが表示)

乱数で表示された数値が「3」の場合は
第三部のラベルにジャンプして、それ以下の処理を実行
(スターダストクルセイダースが表示)

まとめ

以前、笑わせるセールスマンさんからコメント頂いていたところが
ようやくつながった感じがしました
理解に時間がかかりました(;・∀・)

一つずつ、点と点が繋がり線となり
線と線を繋いで面にして
面を重ねて立体化させていくと
自分の中に定着していくかなと思います

参考動画

VBAマスターに俺はなる

最後まで読んでいただき
ありがとうございます
安田

マガジンにまとめてありますので
よかったらそちらも御覧ください


この記事が気に入ったらサポートをしてみませんか?