「フォント」の操作を最速理解する エクセルVBA

vbacellsfonteyecatch

エクセルVBAでセルの書式設定のフォント操作を行います。
全てFontプロパティの関連ですが、フォント名・スタイル・サイズ・下線・色・文字飾りの設定についてです。

こんにちは じゅんぱ店長 (@junpa33) です。

エクセルVBAの操作の中での基本中の基本 セルの書式設定。その中で今回は「セルのフォント」についてです。

セルの文字表示の設定では欠かせない設定項目です。非常に重要ですので、しっかり設定できる様にしておきましょう。

セルの書式設定「フォント」の操作とはこの部分

書類作成でフォントの選択が、書類の品位に大きくかかわっているのは事実です。

書類内容的に非常に有益なものであっても、フォント種の選択から来る見栄えの違いで、受け手側の扱いが大きく変わるものです。

大げさではなく、それだけ重要な設定項目だということです。

「フォント」の要件を決めるそれぞれの設定をVBAで知る

セルの書式設定フォントタブの設定項目は、

になっています。

このフォントタブで設定される項目すべてに関わっている、VBAコードは「Fontプロパティ」です。

Fontプロパティ

構文

Rangeオブジェクト.Font

Fontプロパティは戻り値として「Fontオブジェクト」を返します。

ですので、更にその「Fontオブジェクト」に対して各種の設定を行える「関連プロパティ」をつなぐことが出来ます。

フォント名

「フォント名」の設定は書類作成でも、書類の顔と言える部分でもあり、必須の習得事項です。

Fontプロパティが返すFontオブジェクトに対して、「Nameプロパティ」をつなげます。

構文

Rangeオブジェクト.Font.Name = “フォント名”

フォント名は全角の名称になっていますので、名称中に半角が混じっていると設定できません。

フォント名(サンプル)

フォント名入力用フォント名
MS PゴシックMS Pゴシック
MS P明朝MS P明朝
MS UI GothicMS UI Gothic
メイリオメイリオ
游ゴシック游ゴシック

<Example>

ActiveSheet.Cells.Font.Name = “MS P明朝”

現在表示しているシート全体のフォントを「MS P明朝」に設定します。

スタイル

「スタイル」の設定は、標準・斜体・太字・太字 斜体 を指定することが出来ます。

設定するプロパティは「FontStyleプロパティ」です。

構文

Rangeオブジェクト.Font.FontStyle = “定数”

FontStyleの定数説明
“標準”デフォルト
Bold 又は ”太字”太字
Italic 又は ”斜体”斜体
Bold Italic 又は ”太字 斜体”太字 斜体
False設定の解除

<Example>

(太字 斜体を設定)

Range(“B3”).Font.FontStyle = “太字 斜体”

(太字 斜体を設定解除)

Range(“B3”).Font.FontStyle = False

このスタイルの設定には、同様のことが可能な別のプロパティも存在します。

「Boldプロパティ」と「Italicプロパティ」です。

(太字設定) Range(“B3”).Font.Bold = True

(斜体設定) Range(“B3”).Font.Italic = True

サイズ

「サイズ」の設定は、文字の大きさを設定します。通常は11~12pt.の設定になっています。

設定するプロパティは「Sizeプロパティ」です。

文字を強調したいということで大きく設定すると、セルに入りきらないことがあります。その場合は、

AutoFitプロパティで、入力文字がすべて表示されるようにしましょう。

構文

Rangeオブジェクト.Font.Size = 数値(文字サイズ)

<Example>

Range(“B1”).Font.Size = 13

セルB1の文字サイズを13ポイントに設定します。

セル幅自動調節のコード例

With Range(“B5”)

  .Font.Size = 25

  .EntireColumn.AutoFit

End With

セルB5の文字サイズを25pt.設定しセル幅を調節

下線

「下線」の設定は、なし・下線・二重下線・下線(会計)・二重下線(会計) を指定することが出来ます。

設定するプロパティは「Underlineプロパティ」です。

構文

Rangeオブジェクト.Font.Underline = “定数”

Underlineの定数説明
xlUnderlineStyleNoneなし
xlUnderlineStyleSingle下線
xlUnderlineStyleDouble二重下線
xlUnderlineStyleSingleAccounting下線(会計)
xlUnderlineStyleDoubleAccounting二重下線(会計)

<Example>

Range(“B3”).Font.Underline = xlUnderlineStyleDouble

「色」の設定はフォントカラーの設定になりますが、

色を指定するプロパティは「Colorプロパティ」か「ColorIndexプロパティ」を利用します。

Colorプロパティ

Colorプロパティは、色の指定方法として色の「定数」または「RGB値」での指定となります。

構文

Rangeオブジェクト.Font.Color = 色定数

または 

Rangeオブジェクト.Font.Color = RGB(R値, B値, G値)

指定色色表示定数RGB(R値, B値, G値)カラー値
vbBlack0,0,00
vbRed255,0,0255
vbGreen0,255,065280
vbYellow255,255,065535
vbBlue0,0,25516711680
マゼンダvbMagenta255,0,25516711935
シアンvbCyan0,255,25516776960
vbWhite255,255,25516777215

<Example>

Range(“B3”).Font.Color = RGB(125,125,0)

ColorIndexプロパティ

ColorIndexプロパティは色パレットの色番号を使って色指定を行います。

構文

Rangeオブジェクト.Font.ColorIndex = 色番号

vbafontsys001
153525149115556
94612101454716
345435042411348
744648335415
384036353437392
1718192021222324
2526272829303132

<Example>

Range(“B3”).Font.ColorIndex = 3

セルB3の文字色を赤に設定

文字飾り

「文字飾り」の設定は、取り消し線・上付き・下付き を指定することが出来ます。

設定するプロパティは「Strikethroughプロパティ」「Superscriptプロパティ」「Subscriptプロパティ」です。

取り消し線

取り消し線の設定には「Strikethroughプロパティ」を使用します。

Strikethroughプロパティ

構文

Rangeオブジェクト.Font.Strikethrough = True または False

取り消し線を引くときは「True」、解除するときは「False」を指定します。

上付き

上付き文字の設定は「Superscriptプロパティ」を使用します。

Superscriptプロパティ

構文

Rangeオブジェクト.Font.Superscript = True または False

上付き文字を設定するときは「True」、解除するときは「False」を指定します。

下付き

下付き文字の設定は「Subscriptプロパティ」を使用します。

Subscriptプロパティ

構文

Rangeオブジェクト.Font.Subscript = True または False

下付き文字を設定するときは「True」、解除するときは「False」を指定します。

セルの「フォント」タブ VBAの最速理解のまとめ

セル書式設定「フォント」タブの設定についてのVBAコード化を説明しました。

内容的には、コードの組み立てを理解するというよりは、プロパティの使い方を覚えるという内容のものです。

ここでは、使用頻度の高い設定箇所のVBAコードをササッと使えるようになれば良いのではと思います。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。