🎨
SetCellStyle
書式設定選択範囲に指定したExcel組み込みスタイルを適用します
選択したセルのフォント・サイズ・太字・斜体・色・背景色・配置など複数の書式を一度に設定するマクロです。よく使う書式の組み合わせをマクロとして登録しておくことで、ボタン一つで好みのスタイルを素早く適用できます。会社の標準書式やプロジェクト固有のデザインルールをマクロ化することで、チーム全員が統一した書式を簡単に使えるようになります。内部ではFont・Interior・HorizontalAlignmentなど複数のプロパティを一つのプロシージャ内でまとめて設定しており、呼び出し側は引数を渡すだけで複合的な書式を再現できます。SetFontStyleやSetBorderStyleを個別に呼び出すよりも処理がシンプルになり、社内標準デザインをコード化して共有する際の基盤としても活用できます。用途別に複数のスタイル関数を用意しておけば、資料の種類に応じて呼び分けるだけで統一感を保てます。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 対象範囲を選択してから SetCellStyle を実行し、スタイル名を入力します
🎯 活用シーン
- ✓ヘッダー行・小計行・合計行などの特殊な行に、会社標準の書式を一度に適用して資料の体裁を整えたいとき
- ✓強調したいセルに特定のフォントサイズ・太字・色の組み合わせを素早く適用して、大事なポイントを目立たせたいとき
- ✓新入社員でもルールに沿った書式設定ができるよう、標準書式をボタン一つで適用できる仕組みを整えたいとき
- ✓会社のブランドガイドラインに沿った書式を標準化し、誰が作成しても同じ見た目になるようにしたいとき
- ✓強調表示が必要な小計・合計行に統一したスタイルを素早く適用したいとき
💡 実装のヒント
- ▸よく使う書式の組み合わせをコードに事前定義しておくと、引数なしで実行するだけで目的の書式が即座に適用されます。
- ▸Excelのセルスタイル機能(ホームタブ)と組み合わせて、カスタムスタイルを登録しておく方法も有効です。
- ▸複数の書式を組み合わせて適用する場合、処理順序が結果に影響することがあります。フォントの設定→配置→背景色の順で設定することをお勧めします。
- ▸頻用する書式パターンをいくつか関数として用意しておくと、用途に応じて呼び分けるだけで済むため保守性が高まります。
- ▸背景色とフォント色のコントラストが低いと視認性が下がるため、設定前にアクセシビリティの観点で確認することをお勧めします。
💻 VBAコード
' SetCellStyle
' -----------------
' Macro Name: SetCellStyle
' Description: 選択範囲に指定したExcel組み込みスタイルを適用します
' Parameters: なし
' Returns: なし
' Usage: 対象範囲を選択してから SetCellStyle を実行し、スタイル名を入力します
' -----------------
Sub SetCellStyle()
On Error GoTo ErrorHandler
Dim rng As Range
Dim styleName As String
If TypeName(Selection) <> "Range" Then
MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
Exit Sub
End If
Set rng = Selection
styleName = InputBox("適用するスタイル名を入力してください" & vbCrLf & _
"例: Good / Bad / Neutral / Heading 1 / Title", "スタイル名", "Good")
If styleName = "" Then Exit Sub
On Error Resume Next
rng.Style = styleName
If Err.Number <> 0 Then
MsgBox "スタイル「" & styleName & "」が見つかりません", vbCritical, "エラー"
Exit Sub
End If
On Error GoTo ErrorHandler
MsgBox "スタイル「" & styleName & "」を適用しました", vbInformation, "完了"
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub