実習用データのダウンロード
VBAにおけるプロパティとは
Excel VBAのプロパティとは、簡単に言えばオブジェクト(セル、シート、ブックなど)の「状態」や「属性」のことを表します。
Excelという世界において、以下のような例えが分かりやすいでしょう。

- オブジェクト(物): セル(Range)
- プロパティ(属性): セルの「値」、セルの「色」、フォントの「太さ」
- メソッド(動作): セルを「消去する」、セルを「コピーする」
プロパティを操作することは、「セルの見た目や中身を書き換える(または取得する)」ことを意味します。
Rangeオブジェクトの階層構造
オブジェクトの階層構造は、「Applicationオブジェクト」が最上位となっています。
「Applicationオブジェクト」はExcelそのものを表します。
それ以下の階層は下図の通りです。

「Application」「Workbook」「Worksheet」「Range」オブジェクトと続き、その下にもフォントや罫線などのオブジェクトが存在します。
そのオブジェクトのプロパティを取得したり変更したりすることができます。
Rangeオブジェクト.Font.プロパティ = 設定値「Rangeオブジェクト」の下の「Fontオブジェクト」の状態に「設定値」を代入する、という意味になります。
例えば「太字(bold)」という状態を代入すると、文字が太字に変更されます。
代表的なプロパティと書き方
Excel VBAでプログラミングでよく使用されるプロパティとその記述の仕方を紹介します。
Fontオブジェクトのプロパティ
フォントのサイズや色、太字などの設定を変更することができます。
Rangeオブジェクト.Font.プロパティ = 設定値■主なプロパティの一覧
| プロパティ | プロパティの説明 | 設定値 |
|---|---|---|
| Size | フォントのサイズ | 数値 数値が大きいほど文字が大きい。 |
| Color | フォントの色 | 色を赤(Red)、緑(Green)、青(Blue)の3つの組み合わせで表現するRGB関数 例:【赤】RGB(255, 0, 0)【黒】RGB(0,0,0) |
| Bold | 太字 | True(太字をオン) False(太字をオフ) |
Colorプロパティの色は、「定数」を使用することでも設定することができます。
- 赤色:vbRed
- 黒色:vbBlack
- 青色:vbBlue
- 白色:vbWhite
などがあります。
Range("A1").Font.Color = vbRed実習問題1

セルB1に表示されている文字の大きさを「20」に変更しましょう。
実習問題1の解答
Sub VBA_part5_001()
'この下から記述しましょう
Range("B1").Font.Size = 20
End Sub実習問題1の解説

文字のサイズを変更するには「Fontオブジェクト」の「Sizeプロパティ」設定値を変えます。
Fontオブジェクトの文字サイズが「20」に変更され、文字が大きくなりました。
実習問題2

セルC1に表示されている文字の色を「赤色」に変更しましょう。
実習問題2の解答
Sub VBA_part5_002()
'この下から記述しましょう
Range("C1").Font.Color = RGB(255,0,0)
End SubSub VBA_part5_002()
'この下から記述しましょう
Range("C1").Font.Color = vbRed
End Sub実習問題2の解説

文字の色を変更するには「Fontオブジェクト」の「Colorプロパティ」設定値を変えます。
色の設定の仕方は、「RGB(R,G,B)」か「定数」で指定します。
実習問題3

セルB3からF3に表示されている文字を全て太字に変更しましょう。
実習問題3の解答
Sub VBA_part5_003()
'この下から記述しましょう
Range("B2:F2").Font.Bold = True
End Sub実習問題3の解説

文字を太字に変更するには「Fontオブジェクト」の「boldプロパティ」の設定値に「True」を代入します。
太字を解除するには、設定値に「False」を代入します。
セルの範囲を指定することで、その範囲のFontオブジェクトに太字が反映されます。
罫線を引くBorders
罫線とは、表やセルを囲む、または見映えよく飾るために引く線のことを指します。
情報を整理し視認性を高める役割を持ちます。
その罫線を引くためには、Rangeオブジェクトの下のBordersオブジェクトとそのプロパティを記述します。
Rangeオブジェクト.Borders(罫線を引く箇所の指定).Linestyle = 線の種類■罫線を引く箇所の指定
罫線を引く箇所を指定するには、該当の定数を記述します。
| 定数 | 引く箇所 |
|---|---|
| xlDiagonalUp | 範囲内の各セルの左下隅から右上への罫線 |
| xlDiagonalDown | 範囲内の各セルの左下隅から右上への罫線 |
| xlEdgeTop | 範囲内の上側の罫線 |
| xlEdgeRight | 範囲内の右端の罫線 |
| xlEdgeBottom | 範囲内の下側の罫線 |
| xlEdgeLeft | 範囲内の左端の罫線 |
| xlInsideHorizontal | 範囲外の罫線を除く、範囲内のすべてのセルの水平罫線 |
| xlInsideVertical | 範囲外の罫線を除く、範囲内のすべてのセルの垂直罫線 |
Range("C2:G5").Borders(xlEdgeTop).LineStyle = xlContinuous
■セル範囲全体に格子状に罫線を引く
定数を記述をしないことで、指定したセル範囲全体に格子状に罫線を引くことができます。
Rangeオブジェクト.Borders.Linestyle = 線の種類■線の種類を決める
線の種類は「Linestyleプロパティ」に定数を代入することで決まります。
定数
説明
参考画像
xlContinuous
実線

xlNone
罫線なし

xlDash
破線

xlDot
点線

xlDouble
2本線

Range("C2:G5").Borders(xlEdgeTop).LineStyle = xlDot
実習問題4

セルB3からF13のセル範囲に格子状に実線を引いて下さい。
実習問題4の解答
Sub VBA_part5_004()
'この下から記述しましょう
Range("B3:F13").Borders.LineStyle = xlContinuous
End Sub実習問題4の解説

セル範囲に格子状で罫線を引く場合は「Borders」で罫線を引く箇所を定数で指定する必要はありません。
線の種類は「Linestyleプロパティ」で該当の線の種類の定数を記述します。
実線は「xlContinuous」です。
あるセルを含む連続したセル範囲を取得するCurrentRegion
VBAの「CurrentRegion」は、特定のセルを含む「空白の行と列で囲まれた連続するデータ範囲(アクティブセル領域)」を自動取得するプロパティです。
表全体が選択されるといった認識で問題ないでしょう。
Rangeオブジェクト(特定のセル).CurrentRegion.プロパティ = 設定値
Rangeオブジェクト(特定のセル).CurrentRegion.メソッドRange("A2").CurrentRegion特定のセルは、どれを指定したら良いか。
表の中であればどのセルを指定しても、自動認識をしてその表全体を取得してくれますが、基本的には「表の一番左上のセル」を指定するのが慣例だと覚えておきましょう。
取得をしたい表の範囲の隣接するセルに、何か文字列が入力されている場合、そのセルも「表の一部である」と認識をしてしまうので要注意です。
その場合は、1列や1行開けて文字を入力をするようにしましょう。
表と隣接していない場合
表と隣接している場合



A3からF13の範囲が取得される

A1からF12までの範囲が選択されてしまう。
実習問題5
セルB3を含む表全体に格子状に破線の罫線を引いて下さい。
実習問題5の解答
Sub VBA_part5_005()
'この下から記述しましょう
Range("B3").CurrentRegion.Borders.LineStyle = xlDash
End Sub実習問題5の解説

特定のセルは、表の一番左上のセルであるB3を指定します。
CurrentRegionによってB3を含む表全体が取得し、BordersのLinestyleプロパティで「xlDash」で破線を引きます。



