このページの内容について
このページは、VBAエキスパート(ExcelVBAベーシック)試験合格講座の第二十回記事です。公式テキスト第3章「モジュールとプロシージャ」の内容について解説します。自分でも手を動かしながら読み進めてください。
インデント
インデントとは
ExcelVBA(マクロ)に限らず、コードを整然ときれいに書くとそれだけで可読性が向上します。中でも適切なインデントを設定することは基本中の基本の必須項目です。インデントとは、文章やプログラムなどの文字列の開始位置をずらすことで、視覚的な整列や読みやすさを向上させるための機能のことです。VBAのデフォルト設定では「Tab」を入力することで空白文字の半角4文字分の間隔をあけることができます。
インデントあり/インデントなしの比較
インデントありのサンプルコード(クリックでコピー)
Private Sub Test_Indent()
Dim user_anser As VbMsgBoxResult
Dim factorial As Long, i As Long
Dim test_msg As String
user_anser = MsgBox("処理を実行しますか?", vbYesNo + vbInformation)
Select Case user_anser
Case vbYes
factorial = 1
For i = 1 To 10 Step 1
factorial = factorial * i
Next i
Call MsgBox("10! = " & factorial, vbInformation)
Case vbNo
Call MsgBox("処理の実行を中断します", vbInformation)
End Select
End Sub
インデントなしのサンプルコード(クリックでコピー)
Private Sub Test_UnIndent()
Dim user_anser As VbMsgBoxResult
Dim factorial As Long, i As Long
Dim test_msg As String
user_anser = MsgBox("処理を実行しますか?", vbYesNo + vbInformation)
Select Case user_anser
Case vbYes
factorial = 1
For i = 1 To 10 Step 1
factorial = factorial * i
Next i
Call MsgBox("10! = " & factorial, vbInformation)
Case vbNo
Call MsgBox("処理の実行を中断します", vbInformation)
End Select
End Sub
インデントの重要性
上記はどちらも同じマクロです。処理を開始するかどうかをユーザーへ質問し「はい」の場合、10の階乗を求めて返します。「いいえ」の場合、中断メッセージを表示します。インデントが適切に使用されているコードは繰り返し箇所や分岐箇所が一目見て判別でき、読みやすくなっています。
【PR】VBAエキスパート試験対策記事
当サイトでは、オデッセイコミュニケーションズ社が運営する試験であるVBAエキスパート(Excel VBA ベーシック/Excel VBA スタンダード)の出題範囲をベースに用語や各種関数の解説などを行っています。試験合格に向けて必須と言われる公式テキストに沿って解説をしています。受験をするか悩んでいる方、テキストとは別視点の解説を見てみたい方、受験はしないがExcelVBA(マクロ)に興味がある方へ向けた記事です。
Comment