📊 Excel VBA Top100
🎨

SetCellStyle

書式設定

選択範囲に指定したExcel組み込みスタイルを適用します

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

SetCellStyle デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(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