今回は、文字のフォントを取得・設定する方法をご紹介します。
処理の開始時に書式をリセットする際などに使用する場面があるかと思います。
本記事では、サンプルコードを用いてコピペで使える実践的なコードもご紹介します。
- 文字のフォントを設定・取得する方法が分かります。
- ワークシートに設定されている標準フォント名の取得方法もご紹介します。
- テーマのフォントを有効にする方法もご紹介します。
- サンプルコードを用いて、コピペで使える実践的なコードをご紹介します。
前提
今回の記事では、以下の3つのプロパティをご紹介します。
# | プロパティ | 説明 |
---|---|---|
1 | Name | セルの文字のフォントを設定・取得する |
2 | StandardFont | ワークシートの標準フォント名を取得する |
3 | ThemeFont | ブックに適用されているテーマのフォントを有効にする |
基本情報
Nameプロパティ
文字のフォントを設定するには、FontオブジェクトのNameプロパティを使用します。
Nameプロパティでは、フォントの設定だけでなく取得も可能です。
設定
‘ A1セルのフォントを 「Meiryo UI」に変更する
Range(“A1”).Font.Name = “Meiryo UI”
全角と半角の違いやスペースが混入しているか等を気を付けて、フォント名を正しく指定しましょう。
例えば「MS Pゴシック」は、アルファベット部は全角であり、MSとPの間にスペースがあります。
Excelのリボン上にある「フォント」から、フォント名をコピーしましょう。正式名称が取得できますし、フォント反映後のイメージも確認できます。
取得
‘ A1セルのフォントを取得する
Dim fontStr As String
fontStr = Range(“A1”).Font.Name
StandardFontプロパティ
ワークシートの標準フォント名は、StandardFontプロパティにて取得できます。
文字のフォントをリセットしたい場合に便利です。
‘ A1セルのフォントを取得する
Dim fontStr As String
fontStr = Application.StandardFont
標準フォント名は、Excelのオプションから確認・設定できます。
ThemeFontプロパティ
ブックに適用されているテーマのフォントを取得するには、ThemeFontプロパティを使用します。
テーマは、「見出し」と「本文」の2つでフォントが分かれており、「見出し」と「本文」のどちらを取得するかは定数で指定できます。
‘ A1セルのテーマ(見出しフォント)を有効にする
Range(“A1”).Font.ThemeFont = xlThemeFontMajor
# | 定数 | 説明 |
---|---|---|
1 | xlThemeFontMajor | テーマの見出しフォント |
2 | xlThemeFontMinor | テーマの本文フォント |
3 | xlThemeFontNone | テーマのフォントを使用しない |
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
最後に
今回は、文字フォントを取得・設定する方法をご紹介させて頂きました。
この記事が、皆さんのお力になれば幸いです!
コメント