ここでの挑戦は、セルへのデータの挿入と書式です。詳細についてあまり解説はしませんが、自身でプロシージャを解析するのも勉強になると思いますので、さまざまな書籍を参考にしてください。では、まず下の記述例をやって見ましょう。
Sub 練習()
Worksheets("Sheet1").Range("A1") = 100
With Worksheets("Sheet1").Range("A1")
.Font.Bold = True
.Font.ColorIndex = 3
.Interior.ColorIndex = 10
.ColumnWidth = 20
.RowHeight = 20
End With
End Sub
VBAコードの説明をします。
1行目・・・練習1というプロシージャ名にする。
2行目・・・ワークシートのSheet1のセルA1に「100」という値を代入(挿入)する。
3行目・・・空白行にして、プロシージャの区切りを整理する。(空白行は処理には影響しない)
4行目・・・Withステートメントを利用している。(書式は後で記述)
ワークシート「Sheet1」のセルA1に太字、文字色を赤、塗りつぶしを緑、セル幅を20pt、セルの高さを20ptに設定する。
10行目・・・Withステートメントの終了を宣言。
セルにデータを挿入するには、Range("A1")=値という記述をします。前述したように、直接Rangeから指定はしませんので、オブジェクトはワークシートから指定をします。「Sheet1」のワークシートのセルA1に100の値を挿入するのであれば、
Worksheets("sheet1").Range("a1") = 100 となります。
次に書式ですが、フォントに太字を入れるのであれば、
Worksheets("sheet1").Range("a1").Font.Bold = True となります。
また、文字色を赤にするのであれば
Worksheets("sheet1").Range("a1").Font.ColorIndex = 3 となります。
1つの書式だけであれば、このような記述でもかまいませんが、複数の書式をつけるのであれば、Withステートメントを利用します。Withステートメントを使って処理を記述する場合は、必ず「.」から始まるようにし、1行に1つの処理を記述します。
上記の例の動作はどちらも同じです。Withステートメントを使用したほうが、記述も簡潔で見やすいです。複数の設定をあるオブジェクトにするのであれば、Withステートメントを利用しましょう。
With Object
statements
End With
Object:対象となるオブジェクト名を記述
statements:実行する処理を記述
次に書式設定で、セルの幅や高さを指定するときには、ColumnWidht(セル幅)とRowHeight(セル高)を使います。例題に使用されたように指定する値は=を付けた後に、記述します。
また、この数字はポイント単位です。高さの場合は、1ptが約0.35mmとなります。
この例題のVBAを実行すると、Excel上での結果は以下のように反映されます。
色 | インデックス番号 | 色 | インデックス番号 |
---|---|---|---|
黒 | 1 | 茶色 | 9 |
白 | 2 | 緑 | 10 |
赤 | 3 | 紺 | 11 |
明るい緑 | 4 | 黄土色 | 12 |
青 | 5 | 紫 | 13 |
黄色 | 6 | 深緑 | 14 |
マゼンタ | 7 | 灰色 | 15 |
シアン | 8 | 濃い灰色 | 16 |
フォントやセルを塗りつぶすには、ColorIndexプロパティを使いますが、色数が限られます。自分の好みの色を指定したい場合は、Colorプロパティを使います。ただ、このColorプロパティは、値にRGB値を指定するようになっています。RGB値とは、コンピュータで色を表現するのに使われる「Red」、「Green」、「Blue」の3色の組み合わせで作成される値です。この値を算出してくれるのがRGB関数で、RGB()のカッコの中にRed、Green、Blueの各値を0から255の範囲で指定します。その組み合わせをRGB関数で値を返し、色を指定します。記述方法は次のとおりです。
Worksheets("Sheet1").Range("A1").Font.Color = RGB(0、255、0)
上の記述では、文字色が緑色になります。
RGB関数を使った場合、実際に数値を設定して実行しない限り、どんな色になるか分かりません。通常は、ColorIndexプロパティでインデックス番号を使ったほうが分かりやすいでしょう。ColorIndexプロパティで表現できない色を使いたいときにColorプロパティを使用するようにしましょう。