Home » エクセルマクロ・Excel VBAの使い方 » GoTo文を使ったVBAマクロ

「マクロ if goto 使い方」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。

そもそも、どのアプリケーションの話かがわかりませんが、GoTo文の使い方を知りたいと思っていた方による検索です。

ここではIf文の中でGoTo文を使ったVBAマクロをご紹介しておきます。

[スポンサードリンク]

GoToステートメントを使ったサンプルマクロ

以下のマクロを実行すると、
「ボタンを押してください。」というメッセージボックスが表示され、
「はい」ボタンを押すと
  「[はい]が押されました。」
「いいえ」ボタンを押すと
  「[いいえ]が押されました。」
というメッセージボックスが表示されます。

Sub GoTo文を使ったサンプル()
 Dim ret As VbMsgBoxResult
 ret = MsgBox("ボタンを押してください。", vbYesNo)

 If ret = vbYes Then
  GoTo YES_TASK
 Else
  MsgBox "[いいえ]が押されました。"
 End If

 Exit Sub

YES_TASK:
 MsgBox "[はい]が押されました。"

End Sub

GoToステートメントの使い方

解説を読むよりは、まず上記のマクロをステップ実行して、[はい]ボタンを押したときに、行ラベル・YES_TASKへ飛ぶこと、[いいえ]ボタンを押したときには飛ばないことを確認しましょう。

文法上の注意としては、行ラベルの後ろに「:」(コロン)を付けることと、行ラベルの直前にはExit文が存在することが多いという点です。(Exit文が存在するかどうかは、もちろん処理の流れによって変わります。)
Exit文がない場合どうなるかについても、上記のマクロで「Exit Sub」をコメントアウト後に実行して確認してみてください。

上記のマクロはあくまでもサンプルで、メッセージボックスの[はい]を押したときに、GoToステートメントで、行ラベルへジャンプすることを確認していただくために、「YES_TASK」という名前にしました。
実際に利用するマクロの場合は、GoToステートメントで飛んだあとに行う処理が、何であるのか意味がわかるような行ラベルにしましょう。

行ラベルであることをわかりやすくするために、ここではすべての文字を大文字にしていますが、会社などで利用するマクロの場合、何らかのコーディングルールを作ってらっしゃるはずですから、それに従いましょう。

また、そもそもどういうケースでGoToステートメントを使うのかについても、社内でルールを明確にしておくことをおすすめします。

関連語句
Visual Basic for Applications

最終更新日時:2018-09-23 14:59

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » GoTo文を使ったVBAマクロ

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.