EXCEL VBA - 配置の取得と設定

配置の取得

セルの水平位置は HorizontalAlignment プロパティ、垂直位置は VerticalAlignment プロパティを使用します。各プロパティの値は、セルの書式設定の配置で指定されたものになります。

Debug.Print (Range("A1").HorizontalAlignment) ' 1
配置の取得

配置の設定

セルの水平位置は HorizontalAlignment プロパティ、垂直位置は VerticalAlignment プロパティを使用します。

Range("A1").HorizontalAlignment = xlCenter
Range("A1").VerticalAlignment = xlTop
配置の設定

水平位置の定数は、以下のように定義されています。

水平位置の定数一覧
定数水平位置
xlGeneral1標準
xlLeft-4131左詰め
xlCenter-4108中央揃え
xlRight-4152右詰め
xlFill5繰り返し
xlJustify-4130両端揃え
xlCenterAcrossSelection7選択範囲内で中央
xlDistributed-4117均等割り付け

垂直位置の定数は、以下のように定義されています。

垂直位置の定数一覧
定数垂直位置
xlTop-4160上詰め
xlCenter-4108中央揃え
xlBottom-4107下詰め
xlFill5繰り返し
xlJustify-4130両端揃え
xlDistributed-4117均等割り付け

インデントの設定

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

インデントを設定するには Range オブジェクトの IndentLevel プロパティで設定します。設定する値はインデントする文字数です。1 と指定した場合には全角 1 文字に相当します。

Range("A1").HorizontalAlignment = xlLeft
Range("A1").IndentLevel = 1
インデントの設定

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

前後にスペースを入れる

セルの水平位置の設定で「均等割り付け」を設定した場合、前後にスペースを入れることができます。前後にスペースを設定するには Range オブジェクトの AddIndent プロパティを使用します。前後にスペースを入れる場合は True を指定します。

Range("A1").HorizontalAlignment = xlDistributed
Range("A1").AddIndent = True
前後にスペースを入れる

文字の制御

セルの幅で値を折り返して全体を表示させる場合は Range オブジェクトの WrapText プロパティを使用します。設定する値は True または False を設定します。True を設定した場合、折り返しが行われます。

Range("A1").WrapText = True
折り返して全体を表示する

表示される文字サイズを縮小して全体を表示させる場合は Range オブジェクトの ShrinkToFit プロパティを使用します。設定する値は True または False を設定します。True を設定した場合、文字サイズの自動調整が行われます。

Range("A1").ShrinkToFit = True
縮小して全体を表示する

セルを結合するには、結合するセル範囲を表す Range オブジェクトに対して MergeCells プロパティに True を設定します。セルを結合した場合、結合したセル範囲の左上にあるセルに含まれていた値だけが有効となり、その他のセルに含まれていた値はすべて削除されます。また、結合されたセルに対して水平位置などの指定を行いたい場合は、結合したセル範囲の左上のセルに対して行います。

range("A1:B2").MergeCells = True

Range("A1").HorizontalAlignment = xlCenter
Range("A1").Value = "ABC"
セルを結合する

結合されたセルを解除する場合には、MergeCells プロパティに False を設定します。

range("A1:B2").MergeCells = False
セルの結合を解除する

文字列の方向

文字列の方向を設定する場合は Range オブジェクトの Orientation プロパティを使用します。Orientation プロパティには角度を設定します。角度は -90 から 90 までの範囲で設定できます。

Range("A1").Orientation = 45
文字列の方向

関連記事