即効テクニック

書式設定関連のテクニック

文字の配置を設定する

(Excel 2013/2016)

文字の配置位置を2つのプロパティを利用して設定します

●詳細●
HorizontalAlignmentプロパティでは、対象のオブジェクト内における横方向での文字列の配置位置を設定します。縦方向の配置位置はVerticalAlignmentプロパティで設定します。指定に使用する定数は下の表ABを参照してください。
HorizontalAlignmentプロパティには、RangeオブジェクトとStyleオブジェクトだけに適用できる定数が3つありますので、その他のオブジェクトに対しては使わないようにしてください。

  構文  Object.HorizontalAlignment     横位置を設定     設定/取得
        Object.VerticalAlignment       縦位置を設定     設定/取得


  設定項目              内容
  Object                Range、Style、AxisTitle、ChartTitle、DataLabel、
                        DataLabelsコレクション、DisplayUnitLabel、
                        TextFrameオブジェクト [省略不可]


・表A HorizontalAlignmentプロパティで使用する定数一覧(XlHAlignクラス)
定数                            値   内容          対象オブジェクト
xlHAlignCenter               -4108   中央揃え      全て
xlHAlignDistributed          -4117   均等割り付け  全て
xlHAlignJustify              -4130   両端揃え      全て
xlHAlignLeft                 -4131   左詰め        全て
                                    (インデント)      
xlHAlignRight                -4152   右詰め        全て
xlHAlignCenterAcrossSelection    7   選択範囲内    Range、Style
                                     で中央
xlHAlignFill                     5   繰り返し      Range、Style
xlHAlignGeneral                  1   標準          Range、Style


・表B VerticalAlignmentプロパティで使用する定数一覧(XlVAlignクラス)
定数                            値   内容          対象オブジェクト
xlVAlignBottom               -4107   下詰め        全て
xlVAlignCenter               -4108   中央揃え      全て
xlVAlignDistributed          -4117   均等割り付け  全て
xlVAlignJustify              -4130   両端揃え      全て
xlVAlignTop                  -4160   上詰め        全て

次のサンプル1は、セル内の文字配置を、横位置、縦位置ともに中央揃えに設定します。

●サンプル1●
Sub HorizontalAndVerticalAlignmentSamp1()

    With Range("B2")                             '---セルB2に対して
        .HorizontalAlignment = xlHAlignCenter    '---横位置 中央揃え
        .VerticalAlignment = xlVAlignCenter      '---縦位置 中央揃え
    End With

End Sub

縦位置、横位置ともに、文字の入力されたセル内での中央位置に配置されています。
複数セルにまたがったセル領域内で文字の配置を設定したい場合には、そのセル範囲を結合するとよいでしょう。しかし、複数のセル範囲内での横位置の中央揃えに関しては、セルを結合することなく実現可能です。

次のサンプル2を見てください。

●サンプル2●
Sub HorizontalAndVerticalAlignmentSamp2()

    With Range("A2:I2")
        .HorizontalAlignment = xlHAlignCenterAcrossSelection
        '---選択(対象の)範囲内で中央揃え
    End With

End Sub

定数xlHAlignCenterAcrossSelectionを指定していますので、「選択範囲内で中央」の配置になるわけですが、マクロで行う分には、対象範囲が明示してあれば、対象となる範囲を選択しておく必要はありません。