ゆるおたノート

Tomorrow is another day.

【Excel VBA】ブックのフォント、まとめて変更しませんか?

リファレンスに載せたコードを独立した記事として編集しております。

皆さんは、お気に入りのフォントはありますか?

私は、Meiryo UIが好きです*1
ポップで、ハッキリしていて、堅すぎない雰囲気を感じます。あと、小さくても読みやすい。
なので、自分のPCが変わるたびにExcel既定のフォントMeiryo UIに設定しています。

ところが、ファイルをダウンロードしたり誰かからメールでもらったりすると、MS ゴシックや游ゴシック等のWindowsOS標準のゴシック体になっていることが多いのです。

これが読みづらいのなんのって。
特に游ゴシックとかはうっす――――い。視力の弱い私には見えないです…
「Clear Typeテキストの調整」*2も試していますが、それでも私には薄く感じるのです…

世の中には特にフォントにはこだわらずファイルを作成・編集する方も多いですが、その方自身に罪は無いとは思います。
その方が必要に迫られていないだけだと思うので…

ただ、会社でも解像度の高いPCを使うことが増えてきて、標準フォントだと文字がギザギザに見える*3ことが増えてきました。

つまり、読みづらい。*4

私は「仕事で使うものなら誰でもはっきり見えるものを使いたい!」ので、その対策を探しました。
その方法の1つ、ワークブックのデータを好きなフォントに変更するマクロをご紹介します。

マクロ

コード

フォント名やフォントサイズの値は、お好きなものに変更してお使いください。

Sub setFont()

    '変数の定義
    Dim strFontName As String: strFontName = "Meiryo UI"
    Dim numFontSize As Long:   numFontSize = 9

    'Excelアプリケーションの標準フォントを変更
    With Application
        .standardFont     = strFontName
        .standardFontSize = numFontSize
    End With

    '各シートのフォントを変更
    Dim ws As Worksheet
    For Each ws In Worksheets
        With ws.Cells.Font
            .Name = strFontName
            .Size = numFontSize
        End With
    Next ws

    'メッセージボックスを作成
    Dim msg As String
    Dim strFontSize As String: strFontSize = CStr(numFontSize)

    msg = "設定を変更しました。"
    msg = msg & vbCrLf & "----------------------------"
    msg = msg & vbCrLf & "▼Excelアプリケーション"
    msg = msg & vbCrLf & "フォント:" & strFontName
    msg = msg & vbCrLf & "サイズ:" & strFontSize & " px"
    msg = msg & vbCrLf & "(ダウンロードしたファイルには反映されません。)"
    msg = msg & vbCrLf & "----------------------------"
    msg = msg & vbCrLf & "▼ワークシート"
    msg = msg & vbCrLf & "フォント:" & strFontName
    msg = msg & vbCrLf & "----------------------------"

    'メッセージボックスを出力
    MsgBox msg
    MsgBox "設定反映のため、Excelを再起動してください。"

End Sub

処理の流れ

  1. Excelアプリケーションの標準フォントを変更。

    オブジェクト プロパティ 設定値
    Applicationオブジェクト standardFontプロパティ Meiryo UI
    standardFontSizeプロパティ 9px
  2. ブックに含まれるシート1枚ずつ、シート内の全セルを変更。

    オブジェクト プロパティ 設定値
    Rangeオブジェクトから取得したFontオブジェクト Nameプロパティ Meiryo UI
    Sizeプロパティ 9pxI
  3. 変更の結果をメッセージ出力。
    ※1.が設定変更された場合は反映させるためにExcelの再起動が必要になるので、その旨も追記。

補足

すぐ使えるようにしよう

この部分↓は、フォントの違うブックに遭遇する度に適用したくなると思います。(極端?)

'シートの標準フォントを変更
Dim ws As Worksheet
For Each ws In Worksheets
    With ws.Cells.Font
        .Name = strFontName
        .Size = numFontSize
    End With
Next ws

毎日起動するブック個人用マクロブックなどに登録して、いつでも呼び出せる状態にしておくのをおすすめします。

デキる方は、アドイン化しても良いのかもしれません。

標準フォントとは?

シートを新規作成した時の既定のフォントとして設定されます。

また、この↓赤枠部分のように、列番号、行番号のフォントも変わります。

※雑でごめんなさい…
行番号と列番号

ただし、これが適用されるのは、自分で新規作成したExcelファイルのみです。
それ以外のファイルは残念ながらガマンです…
本当は他の人から貰ったファイルにも反映してくれると嬉しいんだけどなぁ。

注意!

フォントを変更する際は、必要なフォントが端末にインストールされていることを事前に確認してから実行してください。

例えば、Windows XPなど古いOSの端末ではそもそもMeiryo UI自体がインストールされていないので、フォントの変更は反映されません。
オリジナルの業務アプリを使っているとかでなければ、ここまでの環境はもう流石に無いかとは思います*5が、頭の片隅に置いておいていただけたら幸いです。

豆知識

さて、今回は記事のテーマからそれるのでコードには入れていませんが、追加情報を更にいくつかご紹介します。

行の幅も調整しましょう

行の幅を少し広めにとった上で下揃えにすると、「文字が詰まってる感」が減って少しだけ見栄えよく&読みやすい表になります。*6
※今回のように「Meiryo UIで9px」の場合、行の幅は「22~24px」がオススメです。

  • 変更前(フォントを9px、幅や高さは自動調整)
    高さの変更前

  • 変更後(フォントを9px、行の高さを24pxに指定)
    高さの変更後

変更前と後でフォントはいじってませんが、若干「余白」が増えて見た目に少しスッキリしたのが伝わるでしょうか?

予実分析のようなデータが詰まった表形式でデータを提出する時などに、可読性の面で力を発揮すると思います。良かったらお試しください。

ギザギザ・フォントのワケ

PCディスプレイの解像度が上がると、それまで問題なく見られていたフォントが「ギザギザして見える」ようになることがあります。
これはフォントのエイリアスによるもので、フォントによって設定度合いが異なります。

これに対して「ギザギザにならないように工夫したもの」をアンチエイリアスフォントと呼び、最近のものはこの点を考慮されたものが多いようです。

アンチエイリアスフォントは、アンチエイリアシングを施したフォントのことです。 白黒2値の点で構成されているビットマップフォントは斜線部、曲線部に階段状の ギザギザ(ジャギー)が生じてしまいますが、これを目立たなくするために文字の背景色と 文字色の境界に中間色を補うこと(アンチエイリアシング)によって、低解像度でも滑らかに 見せるよう工夫されたフォントです。

アンチエイリアスフォントのこと|フォントのこと|株式会社カルチ

理想のフォントを検索するときに、キーワードで使ってみると良いかもしれません。

もっと、ゴシック体を追い出したい方へ

Excelから追い出す

ことりちゅん (id:Kotori-ChunChun)さんより、今回の方法以外にもExcelから可能な限り游ゴシックを追い出す方法が詳しくご紹介されています。

良かったらこちらもご参照ください。
太ったり痩せたりすることりさんがかわいいです。 Excelから游ゴシック体を徹底的に駆逐する Part1 - えくせるちゅんちゅん

<2019/07/21追記>
人気記事のようで、その後Part3まで出てます!
マクロ1つで徹底的に排除できるようです!すてき!

PCから追い出す

Excelに加えて、メニューバーやタイトルバー等のWindowsのシステムフォント自体も変えたい方は、以下2つの記事も役に立つと思います。

私は、後者を参考に「Noto Sans CJK JP」というフォントを設定しています。
<2019/07/21追記>
その後、フォントは丸ゴシック系の「Kosugi Maru(MotoyaLMaru)」に変更しました。
※画像も置き換えています。

サイズと太さを調整して、視認性が上がりました。
システムフォントを変更した結果

ただし、下記画像のようにWindowsの設定(システム設定)」など一部変わらないところもあります
残念ながら「Windowsの設定(システム設定)」画面はフォントが変わりません…

こちらを除けば、端末内のほぼ全てを好きなフォントに変えることができます。
※変わらないところは、そもそも頻繁に触らない部分なのでストレスに感じるほどでは無いはず…

後記(持論も少し…)

こういうこと気にするような方が私の周りには居ないようで、私が気にし過ぎなだけなのかなと不安に思ったりもします…
でも、ネット上には結構情報があるのです。同志を見つけたような気持ちで安心します。

もちろん「1番大事なのは本文」です。
しかし、業務でExcelを使うのであれば、誰かに見せるほどでもないファイルでも、表を作ったりマクロを書いたりで「長時間触れる」ことも必ずあるはずです。
それであれば、作業者自身がデータを探しやすいようにすることで、作業をかなりラクにすることができます。
これも時短テクニックの1つと考えています。

個人の好みも大きいので、どのフォントが良いかまで強制するつもりはありませんが、プレゼン資料を作るときに相手に伝わりやすいように見た目を調整するのと同じように、Excelで表を作るときも「どう見えるか」を考えてほしいなと思うのです。
こういうこと言うと「神経質なやつ」扱いされるのですが…あ、ネ申エクセルは別の話ですよ。

…というわけで、つい話が長くなってしまいますが、「見せるデータ」に集中するために「事前に出来ることは済ませてしまおう!」というお話でした。

ここまでお付き合いいただきありがとうございました。ちゃんちゃん。

注釈

*1: このブログでは読みやすいようにフォントを変えてみています。
が、個人的に少し冷たい感じがしているので後で戻すかもしれません。
Mac風フォントの「美しさ」がイマイチ理解できないようなデザイン音痴ですが…

<2019/07/21追記>
その後、丸ゴシック系の「Kosugi Maru(MotoyaLMaru)」に再度変更しました。

*2: よく分からない方は是非ググってみてくださいね!
これだけでもかなり改善はするはずです。

*3: PC新調して解像度が上がってから、Meiryo UIさえギザギザに見えるようになってきたので、これもそろそろ潮時かもしれない(悲)

*4: 「あなたの眼が悪いだけでは?」と言われたらそれまでですが…

*5:そもそもこの場合は「OS自体も早くアップデートした方が良い」とは思います。

*6:参考書籍