VBAでセルの書式設定(配置)

投稿日: 2024年6月9日

セルの書式設定で配置に関するVBAの書式設定の方法を詳しく説明していきます。

文字の配置

横の位置

HorizontalAlignmentプロパティは、セル内のテキストの水平方向の配置を設定します。

項目説明表示方法
xlCenter上揃え.HorizontalAlignment = xlCenter
xlLeft左揃え.HorizontalAlignment = xlLeft
xlCenter中央揃え.HorizontalAlignment = xlCenter
xlRight右揃え.HorizontalAlignment = xlRight
xlFillフィル.HorizontalAlignment = xlFill
xlJustify両端揃え.HorizontalAlignment = xlJustify
xlCenterAcrossSelection選択範囲で中央揃え.HorizontalAlignment = xlCenterAcrossSelection
xlDistributed均等割り付け.HorizontalAlignment = xlDistributed
縦の位置

VerticalAlignmentプロパティは、セル内のテキストの垂直方向の配置を設定します

項目説明表示方法
xlTop上揃え.VerticalAlignment = xlTop
xlCenter中央揃え.VerticalAlignment = xlCenter
xlBottom下揃え.VerticalAlignment = xlBottom
xlJustify両端揃え.VerticalAlignment = xlJustify
xlDistributed均等割り付け.VerticalAlignment = 均等割り付け
実際の使い方

以下のコード例では、セルA1を中央揃えに設定しています。

Sub FormatCellAlignment()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws.Range("A1")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
End Sub

このコードを実行することで、セルA1のテキストが水平方向および垂直方向に中央揃えになります。

複数のセルを一度に設定する場合

複数のセル範囲に対して一度に書式設定を適用する場合も、同じ方法を使用できます。

Sub FormatRangeAlignment()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws.Range("A1:B10")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlTop
    End With
End Sub

この例では、範囲A1のセルが水平方向に中央揃え、垂直方向に上揃えに設定されます。

文字の制御

折り返して全体を表示する

Excel VBAでセルの文字を折り返して全体を表示するには、WrapTextプロパティを使用します。

項目説明表示方法
WrapTextテキストを折り返して表示する.WrapText = True
Rows.AutoFitセルの高さを自動調整する.Rows.AutoFit
実際の使い方

セルA1のテキストを折り返して表示する方法を示します。

Sub SetWrapText()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws.Range("A1")
        .WrapText = True
    End With
End Sub

このコードを実行すると、セルA1のテキストが折り返して表示されるようになります。

セルの高さを自動調整する場合
Sub SetWrapTextAndAutoFit()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws.Range("A1:B10")
        .WrapText = True
        .Rows.AutoFit
    End With
End Sub

縮小して全体を表示する方法

Excel VBAでセルの文字を縮小して全体を表示するには、ShrinkToFitプロパティを使用します。ShrinkToFitプロパティをTrueに設定することで、セル内のテキストがセルのサイズに合わせて自動的に縮小されます。

項目説明表示方法
ShrinkToFitテキストを縮小して全体を表示する.ShrinkToFit = True
実際の使い方

セルA1のテキストを縮小して全体を表示する方法を示します。

Sub SetShrinkToFit()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws.Range("A1")
        .ShrinkToFit = True
    End With
End Sub

セルA1のテキストがセルのサイズに合わせて縮小されて表示されるようになります。

折り返しと縮小表示を組み合わせる場合
折り返しと縮小表示を同時に設定することはできません。どちらか一方を選択する必要があります。例えば、セル内のテキストが長い場合は折り返しを設定し、短い場合は縮小表示を設定する、といった使い分けが考えられます。

セルを結合する

Excel VBAでセルを結合するには、RangeオブジェクトのMergeメソッドを使用します。

項目説明表示方法
Mergeセルを結合するws.Range(“A1:B1”).Merge
UnMerge結合の解除ws.Range(“A1:B1”).UnMerge
実際の使い方

セルA1からB1を結合する方法を示します。

Sub MergeCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ws.Range("A1:B1").Merge
End Sub

このコードを実行すると、セルA1からB1が結合されます。

結合解除の方法

結合されたセルを解除する場合は、UnMergeメソッドを使用します。以下の例では、セルA1からB1の結合を解除します。

Sub UnMergeCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ws.Range("A1:B1").UnMerge
End Sub

セル内の文字の方向の設定

Excel VBAでセル内の文字の方向(文字の向き)を設定するには、Orientationプロパティを使用します。このプロパティに設定できる値は、-90から90の範囲の角度、または特定の定数値(例えばxlVertical)です。

項目説明表示方法
Orientation角度指定.Orientation = 45
垂直方向に設定.Orientation = xlVertical
水平方向に設定.Orientation = 0
実際の使い方

セルA1のテキストの方向を45度に設定する方法を示します。

Sub SetTextOrientation()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws.Range("A1")
        .Orientation = 45
    End With
End Sub

以上でExcelのセルの書式設定の配置タブに記載されている大まかな使い方の方法になります。

記事