Excelでは、表形式のデータを「テーブル(ListObject)」に変換すると、見た目の整った構造化された表になります。
さらに、テーブルの表示スタイルやヘッダー行、集計行、行の縞模様などはVBAから細かく制御することができます。
本記事では、VBAでテーブルを作成しつつ、各表示オプションを一括設定する方法をご紹介いたします。
目次
想定される用途
- テーブルの外観を統一し、ユーザーにとって見やすい表を生成したい。
- ヘッダーや集計行などの表示・非表示をコードでコントロールしたい。
- マクロ処理で自動的に整ったレイアウトを作成したい。
VBAコードの例
以下のコードでは、セル範囲 C4:F9
をテーブルに変換し、名前・スタイル・表示設定を細かく指定しています。
Sub CreateFormattedTable()
Dim tbl As ListObject
Dim dataRange As Range
Set dataRange = ActiveSheet.Range("C4:F9")
' テーブル作成と各種プロパティ設定
With ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, _
Source:=dataRange, _
XlListObjectHasHeaders:=xlYes)
.Name = "売上テーブル"
.TableStyle = "TableStyleMedium3"
' 表示設定
.ShowHeaders = True ' ヘッダー行を表示
.ShowTableStyleColumnStripes = True ' 縦の縞模様を有効化
.ShowTableStyleRowStripes = False ' 横の縞模様を無効化
.ShowTableStyleFirstColumn = False ' 最初の列の強調なし
.ShowTableStyleLastColumn = False ' 最後の列の強調なし
.ShowTotals = False ' 集計行は表示しない
.ShowAutoFilterDropDown = False ' フィルターボタン非表示
End With
End Sub
設定可能な主なプロパティ一覧
プロパティ名 | 意味 | 設定例 |
---|---|---|
ShowHeaders | ヘッダー行の表示 | True または False |
ShowTableStyleColumnStripes | 縦方向の縞模様 | True または False |
ShowTableStyleRowStripes | 横方向の縞模様 | True または False |
ShowTableStyleFirstColumn | 最初の列を強調表示 | True または False |
ShowTableStyleLastColumn | 最後の列を強調表示 | True または False |
ShowTotals | 集計行を表示 | True または False |
ShowAutoFilterDropDown | 列のフィルターを表示 | True または False |
スタイル一覧の一例
スタイル名 | 説明 |
---|---|
TableStyleLight1 ~ Light21 | 淡い配色のスタイル群 |
TableStyleMedium1 ~ Medium28 | 中間色のスタイル群(見出しや縞模様に適) |
TableStyleDark1 ~ Dark11 | 濃色を基調としたスタイル群 |
※スタイル名は実行環境により異なるため、実際にExcelの「テーブルデザイン」タブから確認可能です。
まとめ
Excel VBAを使えば、単にセル範囲をテーブルに変換するだけでなく、ヘッダー・集計・縞模様・フィルターなどの表示要素を自在に設定できます。
ユーザーにとって見やすく、使いやすいレイアウトを自動で整えることができ、業務の品質と効率が同時に向上します。
特に、テンプレートや報告資料の定型化を行っている現場では、このような表示制御は非常に重宝されるでしょう。
ぜひ本記事を参考に、実務へご活用ください。