📊 Excel VBA Top100
🎨

SetFontStyle

書式設定

選択範囲のフォント名・サイズ・太字・色を一括設定します

選択したセル範囲のフォント名・サイズ・太字・斜体・下線・色を一括設定するマクロです。フォント関連の設定を個別に行う手間を省き、指定した書式を選択範囲全体に一度に適用します。会社の標準フォントへの一括変換・レポートのヘッダー書式統一・コピー元の異なるフォントを自社基準に揃えるなど、書式の統一作業を効率化します。特定のフォントスタイルを頻繁に適用する場合にマクロ化するメリットが大きいです。内部ではFont.Name・Font.Size・Font.Bold・Font.Colorなどのプロパティをまとめて設定しており、複数のフォント関連書式を一度の実行で統一できます。SetCellStyleが背景色や配置まで含む包括的な書式変更であるのに対し、本マクロはフォントに特化しているため、文字まわりだけを整えたい場面で使い分けると効果的です。

SetFontStyle デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 対象範囲を選択してから SetFontStyle を実行します

🎯 活用シーン

  • ✓異なるフォントが混在する資料を会社標準フォント(游ゴシック等)に一括変換して、統一感のある文書に整えたいとき
  • ✓重要な警告メッセージや注意事項を赤字・太字に一括設定して、読者の目に留まりやすくしたいとき
  • ✓プレゼン資料のタイトルや見出しに統一したフォントスタイルを一括適用して、デザインの一貫性を保ちたいとき
  • ✓複数人が作成した資料をまとめる際に、フォントをすべて統一して一体感のある提出物に仕上げたいとき
  • ✓注意喚起の文言だけ太字・赤字に変更して視認性を高めたいとき

💡 実装のヒント

  • ▸フォント名は正確な名称を指定する必要があります。インストールされていないフォントを指定した場合はデフォルトフォントに戻ります。
  • ▸色はRGB値または定義済み定数(vbRed・vbBlueなど)で指定できます。会社のブランドカラーを使う場合はRGB値を事前に確認してください。
  • ▸フォントサイズは1ポイント単位で指定できます。本文は10〜11pt・見出しは12〜14ptが一般的なビジネス文書の基準です。
  • ▸フォント名を会社標準(游ゴシック等)に固定しておくと、異なる環境で開いても表示崩れが起きにくくなります。
  • ▸重要度に応じてフォントサイズを3段階程度に絞ると、資料全体の統一感が保ちやすくなります。

💻 VBAコード

' SetFontStyle
' -----------------
' Macro Name: SetFontStyle
' Description: 選択範囲のフォント名・サイズ・太字・色を一括設定します
' Parameters: なし
' Returns: なし
' Usage: 対象範囲を選択してから SetFontStyle を実行します
' -----------------

Sub SetFontStyle()
    On Error GoTo ErrorHandler

    Dim rng As Range
    Dim fontName As String
    Dim fontSize As String

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
        Exit Sub
    End If

    Set rng = Selection

    fontName = InputBox("フォント名を入力してください", "フォント名", "游ゴシック")
    If fontName = "" Then Exit Sub

    fontSize = InputBox("フォントサイズを入力してください", "フォントサイズ", "11")
    If fontSize = "" Then Exit Sub
    If Not IsNumeric(fontSize) Then
        MsgBox "数値を入力してください", vbCritical, "エラー"
        Exit Sub
    End If

    With rng.Font
        .Name = fontName
        .Size = CDbl(fontSize)
        .Bold = (MsgBox("太字にしますか?", vbYesNo, "太字") = vbYes)
        .Color = RGB(0, 0, 0)
    End With

    MsgBox "フォントスタイルを設定しました", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub