Sizeプロパティ
Sizeプロパティはセルやオートシェイプなどに入力されている文字列のフォントのサイズの取得および設定を行うことが出来ます。
構文
1 |
Fontオブジェクト.Sizeプロパティ |
Sizeオブジェクトの親オブジェクトはFontオブジェクトですが、Fontオブジェクトの親オブジェクトはセルの場合はRangeオブジェクト、オートシェイプの文字列の場合はShapeRange.TextFrame2.TextRangeオブジェクト、と入力されている個所によって異なります。
Sizeプロパティに設定する値はポイント単位になります。1ポイントは72分の1インチで約0.35ミリになります。
サンプルコード
以下は指定セル範囲のフォントサイズの取得と、指定セルのフォントサイズの設定を行うサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub FontSizeTest() Dim r As Range '// A1からC3セルのフォントサイズを取得(出力) For Each r In Range("A1:C3") Debug.Print r.Font.Size Next '// アクティブセルのフォントサイズを設定 ActiveCell.Font.Size = 12 '// A1セルのフォントサイズを設定 Range("A1").Font.Size = 14 End Sub |
標準フォントサイズの取得と設定
ブックには標準フォントが既定されています。標準フォントサイズはApplicationオブジェクトのStandardFontSizeプロパティで取得および設定を行うことができます。
用途としてはブック作成時の元のフォントサイズに戻したい場合などで利用することができます。
なお、標準フォントサイズを変更した場合はExcelを再起動するまで変更したサイズが反映されません。
以下は標準フォントサイズの取得と設定のサンプルコードです。
1 2 3 4 5 6 7 |
Sub StandardFontSizeTest() '// 標準フォントサイズの取得 Debug.Print Application.StandardFontSize '// 標準フォントサイズの設定 Application.StandardFontSize = 12 End Sub |
セルのフォントサイズ変更時の注意点
セルのフォントサイズを変更するとセルの高さがフォントサイズに合わせて自動調整されてしまいます。
またフォントサイズを大きくすることで入力されている文字列がセルの列幅を超えてしまうこともあります。
多くの場合はセルの大きさが変わることは許容されると思いますが、どうしてもセルのサイズを変更したくない場合は、変更後のフォントサイズに合わせて影響するセル範囲を結合セルにするなどで回避してください。
セルのロック機能やシートの保護機能を駆使すると高さが変わらないようにはできますが、文字が切れている状態になるためおすすめしません。
等幅フォントのサイズに3の倍数のポイントが推奨される理由
余談ですが、MS 明朝やMS ゴシックなどの等幅フォントのフォントサイズは3の倍数がきれいに見えると言われます。
この「きれい」というのは半角文字と全角文字が混在している場合に、複数行ある文字列で全角文字の幅がずれずに等幅間隔が維持されていることを指します。
これはポイントとピクセルの関係が影響しています。先に挙げましたが1ポイントは1/72インチです。1インチは96ピクセルです。そのため1ポイントは1/72インチ→96/72ピクセルとなります。
9ポイントの場合のピクセル数は9×96/72ピクセル=12ピクセル、になります。これが10ポイントだと13.333・・ピクセル、11ポイントだと14.666・・・ピクセル、12ポイントだと16ピクセル、となります。
このとき、割り切れないピクセルの場合はフォントとしての横幅が半角文字1に対して全角文字2の相対幅にならないことから、「きれい」に見えないという理屈です。
なお、Excelの場合は10.5ポイントなどの小数点のサイズも設定可能です。10.5ポイントは14ピクセル(10.5×96÷72)になります。9ポイントも12ポイントもいまいち気に入らない場合は10.5ポイントを設定するのもいいでしょうね。