『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】Fontプロパティ

【Excel VBA】フォントの種類と変更

Excel 2016 から「游ゴシック」がデフォルト(既定)のフォントとして採用されています(以前は「MS Pゴシック」でした)。これが気に入らないという人は、ワークシートの [ファイル] タブをクリックし、[オプション] 画面の [全般] で既定フォントを変更しましょう。
 
Excelでブック全体のフォントを設定・変更する
別にそのままでいいという人は、何もしないでおきましょう。文字フォントの種類は、下図にあるように [ホーム] の [フォント] ボックスで指定します。たくさんあるので、お好きなフォントを選んでくださいな。
 
Excelでフォントを選択
 
あるいは、[Ctrl] + [1] で表示される [セルの書式設定] の [フォント] 設定画面で、フォント名を選ぶこともできます。
 
Excelの書式設定でフォントを設定する

【VBA】Fontプロパティ

フォントの設定を VBA であれこれいじりたいときは、Range オブジェクトの Font プロパティで Font オブジェクトにアクセスします。文字の大きさを 24 ポイント、色を赤に、さらにアンダーラインを引くプロシージャを書いてみましょう。

'[VBA] B2セルのフォントを変更する

Sub SetFont()

  Range("B2").Value = "Atlier Kobato"
  Columns("B").AutoFit

  With Range("B2").Font
    .Size = 24
    .Color = RGB(255, 0, 0)
    .Underline = True
  End With

End Sub

VBAのフォントプロパティで文字の大きさと色を変更し、アンダーラインを引く

【VBA】Characters.Fontプロパティ

このように、セル全体のフォントを設定するときには Range.Font プロパティを使いますが、セル内の一部の文字列のフォントを変えたい場合は、Range.Characters.Font プロパティを用います。これは Excel のセル内の一部の文字列を選択して右クリックして、[書式設定] の [フォント] を変更する操作に該当します。以下のプロシージャを実行すると、最初の文字から 7 文字目までのフォントを変更します。

'[VBA] 最初の文字から7文字目までのフォントを変更する

Sub CharactersFont()

  Range("B2").Value = "Atlier Kobato"
  Columns("B").AutoFit

  With Range("B2").Characters(Start:=1, Length:=7).Font
    .Italic = True
    .Color = RGB(0, 0, 255)
    .Strikethrough = True
  End With

End Sub

【VBA】Range.Characters.Fontプロパティで一部の文字列のフォントを変更
 
Characters プロパティの Start 引数で適用範囲の先頭位置を、Length 引数で適用範囲の長さ (先頭位置から何番目までを範囲とするか)を指定しています。以下に Font オブジェクトの各種プロパティのサンプルコードを載せておきます。

'[VBA]セルA1からセルAkまで"あとりえこばと"を入力するサブルーチン
Sub Atlierkobato(k as Long)
  For y = 1 To k
    Cells(y, 1) = "あとりえこばと"
  Next y
End Sub

'[VBA] Fontオブジェクトのサンプルコード

Sub FontSample()

Atlierkobato (16)

'A1セルの文字のフォントを"MS P明朝"にする
Range("A1").Font.Name = "MS P明朝"

'A2セルの文字サイズを24ポイントに設定する
Range("A2").Font.Size = 16

'A3セルの文字を太字にする
Range("A3").Font.Bold = True

'A4セルの文字を斜体にする
Range("A4").Font.Italic = True

'A5セルの文字に打消し線を入れる
Range("A5").Font.Strikethrough = True

'A6セルの文字を上付きにする
Range("A6").Font.Superscript = True

'A7セルの文字を下付きにする
Range("A7").Font.Subscript = True

'A8セルの文字に下線を引く
Range("A8").Font.Underline = xlUnderlineStyleSingle

'A9セルの文字に二重下線を引く
Range("A9").Font.Underline = xlUnderlineStyleDouble

'A10セルの文字色を青にする
Range("A10").Font.Color = vbBlue

'A11セルの文字色を赤にする
Range("A11").Font.ColorIndex = 3

'A12セルの文字をアクセント2(オレンジ)に設定する
Range("A12").Font.ThemeColor = xlThemeColorAccent2

'A13セルの文字を太字にする
Range("A13").Font.FontStyle = "Bold"

'A14セルの文字を斜体にする
Range("A14").Font.FontStyle = "Italic"

'A15セルの文字を太字・斜体にする
Range("A15").Font.FontStyle = "Bold Italic"

'A16セルの文字を太字・斜体にする
Range("A16").Font.FontStyle = "太字 斜体"

'対応するVBAコードをB列に記入
Range("B1") = "Range(""A1"").Font.Name = ""MS P明朝"""
Range("B2") = "Range(""A2"").Font.Size = 16"
Range("B3") = "Range(""A3"").Font.Bold = True"
Range("B4") = "Range(""A4"").Font.Italic = True"
Range("B5") = "Range(""A5"").Font.Strikethrough = True"
Range("B6") = "Range(""A6"").Font.Superscript = True"
Range("B7") = "Range(""A7"").Font.Subscript = True"
Range("B8") = "Range(""A6"").Font.Superscript = True"
Range("B9") = "Range(""A9"").Font.Underline = xlUnderlineStyleDouble"
Range("B10") = "Range(""A10"").Font.Color = vbBlue"
Range("B11") = "Range(""A11"").Font.ColorIndex = 3"
Range("B12") = "Range(""A12"").Font.ThemeColor = xlThemeColorAccent2"
Range("B13") = "Range(""A13"").Font.FontStyle = ""Bold"""
Range("B14") = "Range(""A14"").Font.FontStyle = ""Italic"""
Range("B15") = "Range(""A15"").Font.FontStyle = ""Bold Italic"""
Range("B16") = "Range(""A16"").Font.FontStyle = ""太字 斜体"""

'A列とB列の幅を自動調整
Columns("A:B").AutoFit

'B列のフォントをConsloasに設定
Columns("B").Font.Name = "Consolas"

End Sub

【VBA】 Font オブジェクトのプロパティ一覧生成マクロ

【VBA】標準フォントと標準サイズを取得する

VBA で現在設定されている文字列の標準フォントと標準サイズは、それぞれ Application.StandardFont と Application.StandardFontSize で取得できます。

'[VBA]デフォルトのフォントとサイズを表示
Sub get_standard()
  Debug.Print "現在設定されている標準フォント:"; Application.StandardFont
  Debug.Print "現在設定されている標準サイズ:"; Application.StandardFontSize
End Sub

'実行結果
'現在設定されている標準フォント:Yu Gothic
'現在設定されている標準サイズ: 11

また、Application.StandardFont と Application.StandardFontSize に値を代入することで、デフォルトのフォントやサイズを変更できます。

'[VBA]デフォルトのフォントとサイズを変更

Sub change_standard()
  Application.StandardFont = "BIZ UDP明朝 Medium"
  Application.StandardFontSize = 16
End Sub

【VBA】見出しの書式を整えるマクロ

Excel で見出しの書式を作る時にはホームタブから太字を選択したり、セルの塗りつぶしの色を決めたりと、結構手間がかかりますね。シートによって見出しの種類を変えるという人もあまりいないでしょうから、予め自分で好きな書式を決めておいて、マクロをぽちっと実行して一発で見出しに変えてしまいましょう。
 
vba見出し

Sub Header_Style()
  With Selection
  .Font.Name = "MS Pゴシック" '文字フォントはMS Pゴシック
  .Font.Bold = True '太字
  .Font.Size = 11 '文字サイズは11 ポイント
  .Font.Color = RGB(0, 0, 0) '文字色は黒
  .Interior.Color = RGB(220, 230, 190) 'セルの塗り潰しは薄緑
  .RowHeight = 14 '行の高さは14
  .VerticalAlignment = xlCenter '文字位置は上下中央揃え
  End With
End Sub

実際には皆さんが設定したい書式に応じて = の右側を変えてください。以下に少し説明が必要な記述について説明します。
 
フォントや塗り潰しに用いる色の指定方法はいくつかありますが、ここでは RGB による指定を説明します。RGB は「Red, Green, Blue」の頭文字で、それぞれ 0 から 255 の範囲で細かく数字を指定し、この3つの色の混交によって微妙な色合いを表現します。特に塗り潰しの場合は少し薄い色などが望ましいでしょうから、皆さんが各自で調整してください。リボンの「ホーム」⇒「フォントの色」⇒「他の色を選択」と順にクリックすると、パレットが現れます。そこで適当な色をクリックすると対応する RGB の数値が表示されるので、メモをとっておきます。それを見ながら上のコードを書き換えてください。

VerticalAlignment プロパティはセルの中の文字列の位置を整えます。上のコードでは上下中央と設定してありますが、他にも次のような種類があります:
 
 VerticalAlignment = xlTop 上詰め
 VerticalAlignment = xlBottom 下詰め
 VerticalAlignment = xlJustify 両端揃え
 VerticalAlignment = xlDistributed 均等割り付け
 
もしこの書式設定がいらないという場合は、上のコードからこの部分を削除するか、頭に「’」を付けておいてください。
 
おすすめ記事:【Excel】ハイパーリンクの設定

コメント