こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。
当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善とITスキルアップをサポートし、共に成長するパートナーでありたいと考えています。
VBAでのGoTo ステートメントの使い方
今日は、VBA(Visual Basic for Applications)でのGoToステートメントの使い方について、初心者の方にもわかりやすく解説していきます。特に、コードの一部をスキップしたり、特定の処理に直接ジャンプするために利用されるGoToステートメントの活用法に焦点を当てます。
Go To ステートメントとは?
GoToステートメントは、VBAにおいてプログラムの制御を特定の行に移動させるために使用されます。
これにより、コードの実行を任意の場所から再開させることができます。ただし、GoToステートメントの使用は、慎重に行う必要があります。過度に使用すると、コードの可読性が低下し、デバッグが難しくなるためです。
どうしてもLoopやIfなどの条件式で実装すると可読性が悪くなる時などには、便利に使うことができます。
Go To Continueの例
例えば、ある条件下でループの一部をスキップし、次のイテレーションに進みたい場合、GoToステートメントを使用して「Continue」ポイントにジャンプさせることができます。
Sub GoToContinueExample()
Dim i As Integer
For i = 1 To 10
If i Mod 2 = 0 Then
' 偶数の場合は以下の処理をスキップ
GoTo Continue
End If
' 奇数の場合のみ実行される処理
Debug.Print i & ”: は奇数です。"
Continue:
Next i
End Sub
この例では、1から10までの数値をループしています。
偶数の場合はDebug.Printステートメントをスキップし、直接Continueラベルにジャンプしています。
その結果、奇数のみが「〜は奇数です。」として出力されます。
注意点
GoToステートメントを使う際は、以下の点に注意してください。
- 使用を最小限に
-
GoToは、特にエラーハンドリングなど限られた場合にのみ使用し、ループや条件分岐など他の制御構造を利用する方がおすすめです。ただし、使わないことによってコードがややこしくなる場合は使っていいと思います。
- 明確なラベル
-
ジャンプ先となるラベル(この例ではContinue)は、その目的が明確にわかる名前をつけてるようにすること。
ひとつのプロシージャの中に、複数配置した時には、もうパニックになってしまいがちです(笑) - コードの可読性
-
GoToの使用がコードの可読性を下げないように、使用する場合はコメントをすることで分かりやすくしましょう。
GoToステートメントは強力なツールですが、その力を賢く使うことが大切です。プログラムの流れを簡単に変えられる一方で、使いすぎはコードを複雑にします。適切な場合にのみ使用し、常に他の制御構造が利用できないかを考えるようにしましょう。
GoToステートメントについての解説が、皆さんのVBA学習の一助となれば幸いです。
稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント