ExcelマクロVBA入門
第33回.セルの書式(フォント,Font)

Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
最終更新日:2019-07-08

第33回.セルの書式(フォント,Font)


セルで表示している文字の書体のマクロVBAでの指定方法です。
セル(Rangeオブジェクト)のフォントは、Fontプロパティになります。


Fontプロパティは、Fontオブシェクトを返します。
解りづらい説明だと思います。
オブジェクトは階層構造になっており、
下位のオブジェクトを参照する時は、
そのオブジェクトを返すプロパティを経由しているのです。
つまり、Fontプロパティを経由して、Fontオブジェクトを扱うという事になります。

難しい理屈はひとまず置いておくとして、
とにかく、
Range.Fontでセルのフォントを扱えるという事を理解してください。

マクロでの指定

Range.Font.プロパティ = 設定値
Fontオブジェクトには、以下のプロパティがあります。



プロパティ プロパティの説明 プロパティの設定値と説明
Name フォント名
FontStyle フォント スタイル 下のBoldとItalicを使用して下さい。
Bold 太字 True、False
Italic 斜体 True、False
Size フォントのサイズ
Strikethrough 水平な取り消し線 True、False
Superscript 上付き文字 True、False
Subscript 下付き文字 True、False
OutlineFont アウトライン フォント True、False
Shadow 影付きフォント True、False
Underline 下線の種類 xlUnderlineStyleNone
xlUnderlineStyleSingle
xlUnderlineStyleDouble
xlUnderlineStyleDoubleAccounting
Color フォントの色 RGB値を表す長整数※1
ColorIndex フォントの色 2003までの56色カラーパレットのインデックス
何色か分かりづらいのでColorを使ったほうが良い
ThemeColor 配色のテーマ カラー 2007以降のみ
TintAndShade 色を明るく、または暗く 2007以降のみ
ThemeFont テーマのフォント 2007以降のみ

Excel2007以降で追加されたプロパティがあります。
2007では色に関して大きく機能強化されたので、それに伴うプロパティの追加となっています。
テーマについては、マクロではなくワークシートで設定しておいたほうが良いでしょう。

色定数・・・※1

VBAには、色を表す定数が用意されています。

vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbMagenta マゼンタ
vbCyan シアン
vbWhite

RGB値を表す長整数の代わりに、上記の定数を使用することが出来ます。
カラー定数以外にも、XlRgbColor列挙などで指定することもできます。
Colorプロパティの設定値一覧
塗りつぶし文字色等々の色指定は結構悩ましいものがありますExcel2003までならColoIndexで56色だけだったので簡単でしたがExcel2007以降はフルカラーがつかえるようになった為色指定が悩ましくなりました。Excelのフルカラーは24ビットカラー(16,777,216色)

RGB関数

RGB値を作成する関数として、RGB関数が用意されています。
RGB(red, green, blue)
red, green, blue、それぞれを0~255で指定します。



Range.Font.Color = RGB(255, 0, 0) '赤
Range.Font.Color = RGB(255, 255, 255) '白
Range.Font.Color = RGB(0, 0, 0) '黒

色の指定を解除(自動)

色の指定を自動に戻す場合は、
Range.Font.ColorIndex = xlAutomatic
見た目の結果は黒文字になりますが、
あくまで、「自動」と「黒」は違うということを理解してください。

フォント(Font)設定についての注意点

フォントは、人がエクセルのシートを見たときに非常に影響があります。
同じデータでも、フォントが違う事で見易さが格段に違ってきます。
しかしその見易さは、人によっても感性の違いもありますし、時代とともに変化もしていきます。
このように、正解のない部分は、
いつでも簡単に変更できるようにしておいた方が、保守性が良いという事になります。

一番簡単に変更できるのは、やはりシートで変更できることになります。
つまり、何でもマクロで設定してしまうより、
なるべくシートで自由にフォントを設定しておけるようにした方が良い場合も多いという事です。



同じテーマ「マクロVBA入門」の記事

第30回.総合練習問題3
第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)
第33回.セルの書式(フォント,Font)
第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)
第36回.総合練習問題4
第37回.ブック・シートの指定
第38回.セルに計算式を設定(Formula)
第39回.セルのクリア(Clear,ClearContents)
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)


新着記事NEW ・・・新着記事一覧を見る

Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • >
  • セルの書式(フォント,Font)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ