ゆるおたノート

Tomorrow is another day.

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

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

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

私は、Meiryo UIが好きです*1
ポップでハッキリしていて、堅すぎない雰囲気を感じます。
あと、小さくても読みやすい。

自分のExcelでは、PCが配られるたびに既定のフォントをMeiryo UIに設定していますが、
ファイルをダウンロードしたり誰かからメールでもらったりすると、
ゴシック体になっていることが多いのです。

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

特にフォントを指定せずファイルを送る方が多いですが、その方が必要に迫られていないだけと思われるので、
その方自身には罪がない気がします。

ただ、会社でも解像度の高いPCを使うことが増えてきて、MSゴシックなどのフォントだと
文字がギザギザに見える*3こともあります。

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

私は「はっきり見えるものを使いたい!」ので、
ブックを好きなフォントに変更するマクロをご紹介します。

マクロ

コード

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

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のアプリケーションの標準フォントを"Meiryo UI(9px)"に変更。
  2. ブックに含まれる全シートの全セルについて、"Meiryo UI(9px)"に変更。
  3. 変更結果を出力。
  4. (1.が設定変更された場合は反映に再起動が必要になるので)その点もメッセージを出力。

補足

すぐ使えるようにしよう

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

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

毎日起動するブックか個人用マクロブックにでも登録して、
いつでも呼び出せる状態*5にしておくと良いかと思います。

標準フォントとは?

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

列番号、行番号のフォントも変わります。
この↓赤枠の部分です。雑でごめんなさい…

行番号と列番号

ただし、これが適用されるのは自分で新規作成したExcelファイルのみです。
それ以外のファイルはガマンしましょう…

本当は貰ったファイルも反映してくれると嬉しいんだけどな…

注意!

フォントを変更したい場合は、端末にあるフォントを使うか、
必要なフォントをインストールしてから実行してください。

オリジナルアプリを使っているとかでなければさすがにもう無いかとは思いますが、
Windows XPなど古いOSの端末ではMeiryo UI自体がインストールされていないので、
その場合はそもそも反映されません。

まぁ、そもそもこの場合は「OS自体も早くアップデートした方が良い」とは思うのですが…
これは使用者の都合にもよりますよね。

豆知識

行の幅も調整しましょう

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

  • 変更前(自動調整)

  • 変更後(24pxに指定)

「余白」が増えてスッキリしたのが伝わるでしょうか?(フォントはいじってません)
予実分析等、表形式でデータを提出する時などに力を発揮すると思います。

良かったらお試しください。

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

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

これはフォントのエイリアスによるもので、ギザギザにならないように工夫したものを
アンチエイリアスフォントと言うそうです。

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

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

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

Excelから追い出す

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

良かったらこちらもご参照ください。太ったり痩せたりすることりさんがかわいいです。 www.excel-chunchun.com

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

PCから追い出す

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

www.atmarkit.co.jp

www.change-your-tomorrow.com

私は、後者を参考に「Noto Sans CJK JP」というフォントを設定しています。
サイズと太さを調整して、視認性が上がりました。

<2019/07/21追記>
フォントは丸ゴシック系の「Kosugi Maru(MotoyaLMaru)」に変更しました。
下記画像も置き換えています。

Windowsの設定(システム設定)」など一部変わらないところはあるものの、
端末内のほぼ全てを好きなフォントに変えることができます。

※変わらないところは、そもそも頻繁に触らない部分なのでストレスに感じるほどでは無いはず。

後記

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

もちろん「1番大事なのは本文」です。

でも、業務でExcelを使うのであれば、誰かに見せるほどでもないファイルでも
表を作ったりマクロを書いたりで長時間触れることも「必ずある」はずです。

作業者自身がデータを探しやすいようにすることで、作業をラクにすることができます。
これも時短テクニックの1つです。

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

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

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

注釈

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

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

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

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

*5: デキる方は、アドイン化の方が良いのかな…?

*6:参考書籍