🎨
ApplyTableStyle
書式設定A1:D10のデータをExcelテーブルに変換し、TableStyleMedium2スタイルを適用します
選択したデータ範囲にExcelの組み込みテーブルスタイルを自動適用するマクロです。「テーブルとして書式設定」機能のVBA版で、スタイル名を指定するだけで見やすいテーブルデザインが即座に適用されます。ヘッダー行の強調・縞模様の行・オートフィルターの自動追加など、テーブルとしての機能も一緒に設定されます。手動での書式設定作業を大幅に削減し、統一感のある資料を素早く作成できます。内部ではListObjects.Addでテーブルを作成した上でTableStyleプロパティにスタイル名を渡しており、通常の「テーブルとして書式設定」と全く同じ結果を再現します。オートフィルターやヘッダー強調が同時に有効になるため、SetBorderStyleやSetFontStyleで個別に整える手間を省けます。データが追加された際も書式が自動拡張されるのが最大の利点です。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: アクティブシートのA1:D10にデータを用意してマクロを実行。データがテーブル形式(TableStyleMedium2)に変換されます。
🎯 活用シーン
- ✓データ集計表に統一したデザインを素早く適用して、会議資料として見栄えのよい表を短時間で作成したいとき
- ✓複数のシートにまたがるデータ表に同じテーブルスタイルを一括適用して、ブック全体のデザインを統一したいとき
- ✓新入社員でもプロ品質の書式設定ができるよう、会社の標準テーブルスタイルをワンクリックで適用できるようにしたいとき
- ✓月次で追加更新されるデータ表に、更新のたびに手動で書式を整えていた作業を自動化したいとき
- ✓複数部門から集まる報告書のフォーマットを統一し、資料の見た目を標準化したいとき
💡 実装のヒント
- ▸テーブルとして設定すると、データを追加した際に書式が自動的に拡張されます。データの末尾に新しい行を追加するだけで、スタイルが自動適用されます。
- ▸テーブルスタイルを変更したい場合は、テーブル内のセルをクリックして「テーブルデザイン」タブから別のスタイルを選択してください。
- ▸テーブルを通常の範囲に戻したい場合は、RemoveTableStyleマクロを使用するか、テーブルツールの「範囲に変換」を実行してください。
- ▸既にテーブル化されている範囲に再実行すると、スタイルだけが上書きされテーブル構造はそのまま維持されます。
- ▸淡色系・濃色系などスタイル名の系統を統一しておくと、複数シートに適用したときの一貫性が保ちやすくなります。
💻 VBAコード
Sub ApplyTableStyle()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim tbl As ListObject
Set tbl = ws.ListObjects.Add(xlSrcRange, ws.Range("A1:D10"), , xlYes)
tbl.TableStyle = "TableStyleMedium2"
End Sub