連載
» 2016年08月04日 05時00分 公開

Excelマクロ/VBAで始める業務自動化プログラミング入門(5):セルの数値、フォント、文字位置、背景色、けい線など表示形式/書式設定の使い方 (2/4)

[薬師寺国安,PROJECT KySS]

セルのフォント書式設定

 次に、セルに入力されたデータの「フォントの種類」「フォントサイズ」「フォントの文字色」「セルの塗りつぶし」「フォントの斜体」「フォントの太字」などを設定してみよう。

 まず、図3のデータの「社員名簿」というセルのデータの、「書体」「文字サイズ」「文字色」を変えてみよう。

図3 何の書式も設定されていないデータ

 単にデータだけであっても、無味乾燥な数字だけの羅列ではなく、ちゃんと書式が設定されたデータは、見栄えも良いし、プレゼンテーションの資料としても十分に利用できる。書式設定をマクロ化しておくと、格段にデータの見栄えが良くなり、上司からの受けも良くなること、確実である。

 マクロはリスト2のようになる。

Sub セルのフォントに関する書式設定()
  With Range("B2").Font
    .Name = "游ゴシック"
    .Size = 20
    .ColorIndex = 3
    .Bold = True
  End With
End Sub
リスト2 セルのフォントに関する書式設定

With〜End Withステートメント

ここで初めて出てきた「With」だが、「With」〜「End With」ステートメントを使うと、オブジェクトを省略して記述できる。例えば、上記「.Name」は本来「Range("B2").Font.Name」、「.Size」は本来「Range("B2").Font.Size」と記述するが、同じものを繰り返し書くと、長くなるので面倒だ。「With」〜「End With」内では、プロパティの頭に「.」を付けるが、オブジェクトの指定を省略できるので便利だ。


 書体(Name)には「Meirio UI」を指定。文字サイズ(Size)には20を指定。文字色(ColorIndex)には「赤」を表す「3」を指定。どの色がどのColorIndexに該当するかは、図4参照。

図4 色のColorIndex(引用:「ColorIndexプロパティ - MSDN」)

 太字(Bold)にはTrueを指定して「太字」とする。「太字」以外に「斜体」を表す「Italic」や下線を引く「Underline」がある。Trueを指定することで、これらの書式が適用される。

 リスト2を実行すると図5のように表示される。

図5 「社員名簿」という文字に書式が適用された

セルの文字位置に関する書式設定

 次に、「社員名簿」と「氏名」の文字位置を「中央揃え」に設定し、文字色を「青」系統色にしてみよう。マクロはリスト3のようになる。

Sub 項目名の文字位置を「中央揃え」にし文字色を青系統色にする()
  With Range("B3:C3")
    .Font.ColorIndex = 32
    .Font.Bold = True
    .HorizontalAlignment = xlCenter
  End With
End Sub
リスト3 項目名の文字位置を「中央揃え」にし、文字色を「青」系統色にする

 文字位置(水平位置)を指定するにはHorizontalAlignmentプロパティを指定する。指定する値は表3を参照。

表3 HorizontalAlignmentに指定する値
定数 水平文字位置
xlGeneral 標準(規定値)
xlLeft 左寄せ
xlCenter 中央揃え
xlRight 右寄せ
xlFill 繰り返し
xlJustify 両端揃え
xlCenterAcrossSelection 選択範囲内で中央
xlDistributed 均等割り付け

 リスト3を実行すると図6のように項目名が「中央揃え」で「太字」かつ「青」で表示された。

図6 項目名に書式が適用された

 文字位置をそろえるには、表3の水平位置をそろえるHorizontalAlignment以外に、垂直方向をそろえるVerticalAlignmentがある。値は表7を参照。

表4 VerticalAlignmentに指定する値
定数 垂直文字位置
xlTop 上詰め
xlCenter 中央揃え(規定値)
xlBottom 下詰め
xlJustify 両端揃え
xlDistributed 均等割り付け

セルの背景色を設定

 セルの背景色を設定するには、Interiorプロパティを使用する。図6の「社員番号」と「氏名」セルの背景色をグレーで塗りつぶすには、リスト4のように記述する。

Sub セルの塗りつぶし()
 Range("B3:C3").Interior.ColorIndex = 15
End Sub
リスト4 「社員番号」と「氏名」セルを塗りつぶす

 指定したセルの背景色は、InteriorオブジェクトのColorIndexプロパティで設定する。ColorIndexに指定する値は、図4参照。

 リスト4を実行すると、図7のように表示される。

図7 指定したセルを塗りつぶした

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。