【Excel VBA】文字のフォントを取得・設定する(Nameプロパティ)

はじめに

今回は、文字のフォントを取得・設定する方法をご紹介します。
処理の開始時に書式をリセットする際などに使用する場面があるかと思います。
本記事では、サンプルコードを用いてコピペで使える実践的なコードもご紹介します。

この記事を読むメリット
  • 文字のフォントを設定・取得する方法が分かります。
  • ワークシートに設定されている標準フォント名の取得方法もご紹介します。
  • テーマのフォントを有効にする方法もご紹介します。
  • サンプルコードを用いて、コピペで使える実践的なコードをご紹介します。

前提

今回の記事では、以下の3つのプロパティをご紹介します。

#プロパティ説明
1Nameセルの文字のフォントを設定・取得する
2StandardFontワークシートの標準フォント名を取得する
3ThemeFontブックに適用されているテーマのフォントを有効にする
文字のフォント関連のプロパティ

基本情報

Nameプロパティ

文字のフォントを設定するには、FontオブジェクトのNameプロパティを使用します。
Nameプロパティでは、フォントの設定だけでなく取得も可能です。

設定

構文

‘ A1セルのフォントを 「Meiryo UI」に変更する
Range(“A1”).Font.Name = “Meiryo UI”

全角と半角の違いやスペースが混入しているか等を気を付けて、フォント名を正しく指定しましょう。
例えば「MS Pゴシック」は、アルファベット部は全角であり、MSとPの間にスペースがあります。

めい

Excelのリボン上にある「フォント」から、フォント名をコピーしましょう。正式名称が取得できますし、フォント反映後のイメージも確認できます。

Excelリボン – フォント

取得

構文

‘ A1セルのフォントを取得する
Dim fontStr As String
fontStr = Range(“A1”).Font.Name

StandardFontプロパティ

ワークシートの標準フォント名は、StandardFontプロパティにて取得できます。
文字のフォントをリセットしたい場合に便利です。

構文

‘ A1セルのフォントを取得する
Dim fontStr As String
fontStr = Application.StandardFont

りゅう

標準フォント名は、Excelのオプションから確認・設定できます。

Excelのオプション – 標準フォント名の確認方法

ThemeFontプロパティ

ブックに適用されているテーマのフォントを取得するには、ThemeFontプロパティを使用します。
テーマは、「見出し」と「本文」の2つでフォントが分かれており、「見出し」と「本文」のどちらを取得するかは定数で指定できます。

構文

‘ A1セルのテーマ(見出しフォント)を有効にする
Range(“A1”).Font.ThemeFont = xlThemeFontMajor

#定数説明
1xlThemeFontMajorテーマの見出しフォント
2xlThemeFontMinorテーマの本文フォント
3xlThemeFontNoneテーマのフォントを使用しない
ThemeFontプロパティ定数 – XLThemeFont列挙体

ThemeFontプロパティでは、フォントを指定しているわけではなくセルに対してテーマを有効にしています。
従って、テーマのフォント設定が変更された場合、ThemeFontプロパティが有効になったセルは連動してフォントが変更になります。

サンプルコード

セルを指定して文字フォントを設定

サンプルコード
Public Sub setStrFont()

    ' A2セルのフォントを「游ゴシック」に設定
    Range("A2").Font.Name = "游ゴシック"

    ' A3セル ~ C7セルのフォントを「標準フォント」に設定
    Range("A3:C7").Font.Name = Application.StandardFont

    ' 1行目セルのフォントを「テーマの見出しフォント」に設定
    Range("1:1").Rows.Font.ThemeFont = xlThemeFontMajor
End Sub

シート全体の文字フォントを設定

サンプルコード
Public Sub setStrFontForWorksheet()

    ' 1シート目全体のフォントを「游ゴシック」に設定
    ThisWorkbook.Worksheets(1).Cells.Font.Name = "游ゴシック"
End Sub

全シートの文字フォントを標準の文字フォントに設定

サンプルコード
Public Sub setDefaultStrFontForAllWorksheet()

    ' Worksheet分ループ
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets

        ' すべてのセルに対して 標準フォントを設定
        ws.Cells.Font.Name = Application.StandardFont
    Next ws
End Sub

最後に

今回は、文字フォントを取得・設定する方法をご紹介させて頂きました。
この記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA