「マクロ if goto 使い方」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
そもそも、どのアプリケーションの話かがわかりませんが、GoTo文の使い方を知りたいと思っていた方による検索です。
ここではIf文の中でGoTo文を使ったVBAマクロをご紹介しておきます。
GoToステートメントを使ったサンプルマクロ
以下のマクロを実行すると、
「ボタンを押してください。」というメッセージボックスが表示され、
「はい」ボタンを押すと
「[はい]が押されました。」
「いいえ」ボタンを押すと
「[いいえ]が押されました。」
というメッセージボックスが表示されます。
Dim ret As VbMsgBoxResult
ret = MsgBox("ボタンを押してください。", vbYesNo)
If ret = vbYes Then
GoTo YES_TASK
Else
MsgBox "[いいえ]が押されました。"
End If
Exit Sub
YES_TASK:
MsgBox "[はい]が押されました。"
GoToステートメントの使い方
解説を読むよりは、まず上記のマクロをステップ実行して、[はい]ボタンを押したときに、行ラベル・YES_TASKへ飛ぶこと、[いいえ]ボタンを押したときには飛ばないことを確認しましょう。
文法上の注意としては、行ラベルの後ろに「:」(コロン)を付けることと、行ラベルの直前にはExit文が存在することが多いという点です。(Exit文が存在するかどうかは、もちろん処理の流れによって変わります。)
Exit文がない場合どうなるかについても、上記のマクロで「Exit Sub」をコメントアウト後に実行して確認してみてください。
上記のマクロはあくまでもサンプルで、メッセージボックスの[はい]を押したときに、GoToステートメントで、行ラベルへジャンプすることを確認していただくために、「YES_TASK」という名前にしました。
実際に利用するマクロの場合は、GoToステートメントで飛んだあとに行う処理が、何であるのか意味がわかるような行ラベルにしましょう。
行ラベルであることをわかりやすくするために、ここではすべての文字を大文字にしていますが、会社などで利用するマクロの場合、何らかのコーディングルールを作ってらっしゃるはずですから、それに従いましょう。
また、そもそもどういうケースでGoToステートメントを使うのかについても、社内でルールを明確にしておくことをおすすめします。
最終更新日時:2018-09-23 14:59
- Newer:Rangeのデフォルトプロパティ・既定のプロパティは?
- Older:VBAでコピーを別のシートに行う
Home » エクセルマクロ・Excel VBAの使い方 » GoTo文を使ったVBAマクロ