読みやすいプログラムを書くため、とっても重要な「可読性(かどくせい)」。
IF文の階層や、タブインデントによる字下げを意識することで読みやすさは向上します。
みなさん、こんにちは。セルネッツ竹本です。
今回は、「可読性」をテーマに、解説をしたいと思います。
結論から言うと、VBEで複数行をまとめて字下げするには、行を選択してTabキーを押します。
まとめて字下げを戻すときはShift+Tabです。
本記事では、インデントの有無による見え方の違い、一括で設定・解除する操作、VBEの設定、字下げのルールを解説します。
字下げもなく読めないマクロ、誰も触れずに放置していませんか?
- IF文が何重にもなり、どこからどこまでが一つの処理か分からない
- 前任者のマクロを直したいが、読み解くだけで何日もかかる
- 少し直しただけで別の箇所が動かなくなり、手を出せない
そのお悩み、可読性を高める改修で解決できます。Excel専門のシステム開発会社『セルネッツ』なら、既存マクロを解析し、字下げや処理のまとまりを整理できます。動作を変えずに、後任の方が読める形へ書き直します。前任者が作ったマクロの改修・引き継ぎもお任せください。
\Excel専門特化 × 低価格 × スピード対応/
全国対応・お見積もり無料
インデント(字下げ)とは?可読性が上がる理由
インデントとは、行の先頭に空白を入れて、書き出しの位置を右にずらすことです。
ForやIfの中の処理を1段下げると、処理のまとまりが見た目でわかるようになります。
字下げは見た目だけのもので、マクロの動作には影響しません。
読みやすいコードを書くための考え方は、VBAのコード設計のコツでも解説しています。
タブインデントを設定した場合、設定しない場合の見え方
(A)インデント無しの書き方(極端ですが・・・)

書き出し位置がすべて同じなため、階層がわかりにくい。
(B)インデント有りの書き方

※画像の中のコメントは「5行目まで」ですが、コードは「For S_行 = 2 To 4」なので、対象は2〜4行目です。
両者を比べると、(B)は、階層が視覚的に識別できるため、読みやすさが向上しています。
大切なことは、「グループの始めと終わりが一瞬でわかること」。
階層が深くなるほど、この字下げによるメリットは高まります。
インデントを設定・解除する方法(一括操作も)
1行ならTabキー、複数行なら選択してからTabキーで字下げします。
1行ずつ字下げする:Tabキー
キーボードの [Tab]キー押下で、字下げが適用されます。

複数行をまとめて字下げ・解除する
字下げしたい行をマウスやShift+↓キーで選択し、Tabキーを押すと、選んだ行がまとめて1段下がります。
同じように選択してShift+Tabキーを押すと、まとめて1段戻ります。
行の途中から選択しても、選択範囲にかかっている行全体が対象になります。
メニューとツールバーから操作する
複数の行をまとめて字下げする場合は、[編集]メニューの[インデント]・[インデントを戻す]からも操作できます。
上の画像の「編集」ツールバーは、[表示]→[ツールバー]→[編集]で表示できます。
操作の早見表
| やりたいこと | 操作 |
| 1行を字下げする | 行の先頭にカーソルを置いてTab |
| 複数行をまとめて字下げする | 行を選択してTab |
| 複数行の字下げをまとめて戻す | 行を選択してShift+Tab |
| メニューから操作する | [編集]→[インデント]/[インデントを戻す] |
| ボタンで操作する | [表示]→[ツールバー]→[編集]で出るボタン |
VBEのインデント設定(タブ間隔・自動インデント)
Tabキー1回で何文字下げるかと、改行したときに字下げを引き継ぐかは、VBEのオプションで設定します。

通常は、既定値のままで良いと思います。
VBE>ツール(T)>オプション(O)>編集タブ
で表示されます。
- タブ間隔:Tabキー1回で下げる文字数です。既定は4です。
- 自動インデント:オンにすると、改行したときに前の行と同じ位置から書き始められます。
インデントの付け方のルール
「始まりの行」と「終わりの行」を同じ位置にそろえ、その間を1段下げるのが基本です。
- Sub〜End Subの中は、1段下げる
- For〜Next、Do〜Loop、If〜End If、Select Case〜End Select、With〜End Withの中は、さらに1段ずつ下げる
- ElseやElseIfは、Ifと同じ位置にそろえる
Sub CheckPrice()
Dim i As Long
For i = 2 To 10
If Cells(i, 5).Value > 10000 Then
Cells(i, 6).Value = "1万円超"
Else
Cells(i, 6).Value = ""
End If
Next i
End Sub
Withを何重にも重ねると、字下げをしても読みにくくなります。With構文による可読性の低下もあわせてご覧ください。
インデントの注意点
次の3点を知っておくと、字下げで迷いません。
- 自動で整える標準機能は無い:VBEには、モジュール全体の字下げを自動で整える機能がありません。外部のアドインを使うか、範囲を選んでTab/Shift+Tabで整えます。
- チームでタブ間隔をそろえる:人によって下げる幅が違うと、かえって読みにくくなります。
- 深くなりすぎたら処理を分ける:何段も下がるときは、処理の一部を別のプロシージャに分けることも検討します。
よくある質問
インデントを一括で解除するには?
解除したい行を選択して、Shift+Tabキーを押します。
1回で1段戻るので、何段も下がっている場合は複数回押します。
コード全体のインデントを自動で整えられますか?
VBEの標準機能ではできません。
外部のアドインを使う方法もありますが、会社のPCでは導入できないこともあるため、まずは手作業で整える習慣を付けるのがおすすめです。
字下げされていない他人のコードは、どう読めばよいですか?
ForとNext、IfとEnd Ifの組を探して、その間を字下げしながら読むと構造が見えてきます。
エラーの原因を追うときの手順は、実行時エラーの原因を突き止めるデバッグのコツで解説しています。
まとめ|範囲を選んでTabとShift+Tabで、字下げをそろえよう
字下げは、行を選んでTabで一括設定、Shift+Tabで一括解除できます。
始まりと終わりの行をそろえ、その間を1段下げれば、処理のまとまりが一目でわかります。
「コードが読みやすい」ということは、プログラミングでとても重要なことです。
コードの揃えが習慣化するようになることで、「読みにくいソース」も感覚的にわかってきます。長いコードを短く読みやすく書く例は、マクロ記録の長い罫線コードを短く書く方法で紹介しています。
今回のテーマは、「タブインデント字下げ」について、解説を行いました。
本記事が、Excel実務の効率化のご参考になれば幸いです。
マクロの解析・整理の費用は、作業時間で決まります
- 基本料金50,000円+設計・開発の時間単価(税別)です
- マクロの量を拝見し、作業時間の見込みを先にお伝えします
- 作り直した方が早い場合も、正直にお伝えします
セルネッツでは相見積もりを歓迎しています。料金は基本料金に、要件定義・設計・開発の時間単価を加えた体系です(税別)。改修と作り直しのどちらが得策かも、正直にご説明します。システム導入相談やセカンド・オピニオンも、60分無料で承ります。
\Excel専門特化 × 低価格 × スピード対応/
全国対応・お見積もり無料