コントロールのフォントを設定する(Fontプロパティ)
コントロールに文字列が表示される場合、 Font プロパティの値を変更することで文字列のフォントを変更することができます。ここでは Excel のユーザーフォームで Font プロパティを使ってコントロールのフォントを設定する方法について解説します。
(Last modified: )
コントロールのフォントを設定する
コントロールのフォントを設定するには Font プロパティを使用します。例えばラベルの Font プロパティの値はデフォルトで「MS UI Gothic」という値が設定されています。また表示はされていませんがフォントサイズなどの情報も保持しています。
フォントを設定するには Font プロパティをクリックし、値のところに表示されている「...」をクリックしてください。
フォントの設定ダイアログが表示されます。
フォントの種類、スタイル、サイズなどを設定してください。設定が終わりましたら「OK」をクリックしてください。
ラベルで表示されている文字列のフォントの種類が変更されました。
このように Font プロパティの値を変更することで、コントロールのフォントを設定することができます。
VBAのプログラムの中でFontプロパティを設定する
プロパティウィンドウを使って Font プロパティの値を変更する代わりに、 VBA のコードを記述して Font プロパティの値を変更することもできます。
Font プロパティは Font オブジェクトを返します。 Font オブジェクトのプロパティに対して値を設定していくことでフォントに関する設定を行うことができます。プロパティウィンドウから設定する場合は、ダイアログを使ってフォントの関する色々な設定を Font オブジェクトに行っていました。
Font オブジェクトに用意されている主なプロパティには次のようなものがあります。
Name Size Bold Italic Underline Strikethrough
各プロパティの設定方法について簡単に確認します。
フォント名
フォント名を指定する場合は Font.Name プロパティを使用します。次の書式を使用します。
オブジェクト.Font.Name = フォント名を表す文字列
対象のオブジェクトの Font.Name プロパティに対してフォント名を表す文字列の値を代入します。例えば "MS UI Gothic" や "MS 明朝" などです。
フォントサイズ
フォントサイズを指定する場合は Font.Size プロパティを使用します。次の書式を使用します。
オブジェクト.Font.Size = フォントサイズを表す数値
対象のオブジェクトの Font.Size プロパティに対してフォントサイズを表す数値を代入します。例えば 12 や 20 などです。
太字と斜体
太字や斜体を設定する場合は Font.Bold プロパティまたは Font.Italic プロパティを使用します。次の書式を使用します。
オブジェクト.Font.Bold = True / False オブジェクト.Font.Italic = True / False
対象のオブジェクトに太字を設定する場合は Font.Bold プロパティに対して True を代入します。対象のオブジェクトに斜体を設定する場合は Font.Italic プロパティに対して True を代入します。
下線
下線を設定する場合は Font.Underline プロパティを使用します。次の書式を使用します。
オブジェクト.Font.Underline = 下線の種類を表す値
下線の種類を表す値は次のいずれかを Font.Strikethrough プロパティに対して代入します。
| 定数 | 値 | 説明 |
|---|---|---|
| xlUnderlineStyleDouble | -4119 | 二重下線 |
| xlUnderlineStyleDoubleAccounting | 5 | 二重下線(会計) |
| xlUnderlineStyleNone | -4142 | 下線なし |
| xlUnderlineStyleSingle | 2 | 一重下線 |
| xlUnderlineStyleSingleAccounting | 4 | 一重下線(会計) |
取り消し線
取り消し線を設定する場合は Font.Strikethrough プロパティを使用します。次の書式を使用します。
オブジェクト.Font.Strikethrough = True / False
対象のオブジェクトに取り消し線を設定する場合は Font.Strikethrough プロパティに対して True を代入します。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャを作成し、その中で Font プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize イベントに対するイベントプロシージャを使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize()
Label1.Font.Size = 20
With CommandButton1.Font
.Name = "MS UI Gothic"
.Bold = True
End With
End Sub
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。追加されているラベルのフォントサイズが変更され、コマンドボタンのフォント名が変更され太字が設定されていることが確認できます。
このように VBA のプログラムの中で Font プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで Font プロパティを使ってコントロールのフォントを設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。