インデントの設定

広告

セルの水平位置の設定で「左詰め」「右詰め」「均等割り付け」を設定した場合に、インデントを設定することが出来ます。左詰めの場合は左側に、右詰めの場合は右側に、均等割り付けの場合は両端にインデントが設定されます。

インデントを設定するにはRangeオブジェクトの「IndentLevel」プロパティで設定します。

Dim range1 As Range

Set range1 = Range("A1")
range1.HorizontalAlignment = xlLeft
range1.IndentLevel = 1

設定する値はインデントする文字数です。1文字と指定した場合には全角1文字に相当します。

注意する点としては、「IndentLevel」プロパティを設定すると、「HorizontalAlignment」プロパティが「xlLeft」に自動的に変更されてしまいます。その為、右詰めや均等割り付けでインデントを設定する場合には、まず「IndentLevel」プロパティを設定してからその後で「HorizontalAlignment」プロパティを設定して下さい。

サンプルプログラム

では簡単なサンプルで試してみましょう。

testcellalign2.bas

Sub テスト()
    
    Range("A1:B3").Value = "日本語"
    
    Range("A1:A3").IndentLevel = 1
    Range("B1:B3").IndentLevel = 3
    
    Range("A1:B1").HorizontalAlignment = xlLeft
    Range("A2:B2").HorizontalAlignment = xlRight
    Range("A3:B3").HorizontalAlignment = xlDistributed
            
    
    Range("A5:B7").Value = "日本語"
        
    Range("A5:B5").HorizontalAlignment = xlLeft
    Range("A6:B6").HorizontalAlignment = xlRight
    Range("A7:B7").HorizontalAlignment = xlDistributed
            
    Range("A5:A7").IndentLevel = 1
    Range("B5:B7").IndentLevel = 3
        
End Sub

上記マクロを実行すると次のようになります。

セルの文字配置の設定

上3つのセルと、下3つのセルは、設定している内容は同じなのですが、水平位置とインデントの設定する順番が異なります。インデントを設定すると水平位置の設定が全て「左詰め」になってしまうので、プロパティを設定する順番は注意して下さい。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)