では、簡単な日程表を作成してみましょう。ここでは、罫線の設定に注目してください。また、同じオブジェクト名を記述する際には、そのオブジェクトは変数として扱ったほうが、記述が楽になることも理解してください。
では、次のコードを記述してみてください。
Sub 練習()
Dim WS1 As Worksheet
Set WS1 = Worksheets("Sheet1")
With WS1
.Range("B2") = "日"
.Range("B2").Select
End With
Selection.AutoFill Range("B2:H2")
WS1.Range("B2:H7").Select
With Selection.Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With Selection.Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With Selection.Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With Selection.Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
Range("B2:H2").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Selection.Borders(xlBottom)
.LineStyle = xlDouble
End With
WS1.Range("B2:H7").BorderAround Weight:=xlThick, _
ColorIndex:=5, LineStyle:=xlContinuous
WS1.Range("A2:A7").RowHeight = 35
With WS1
.Range("B2:B7").Interior.ColorIndex = 38
.Range("C2:G7").Interior.ColorIndex = 19
.Range("H2:H7").Interior.ColorIndex = 8
End With
End Sub
長い記述ですが、コードに間違いがないようにしましょう。間違っていても、コンパイルすることでコードの記述ミスは分かります。
コンパイルとは、VBAコードを上から下のほうに向かって、構文に間違いがあるかどうかを判断してくれるツールです。間違いがあれば、エラーが出たりデバック表示になります。一旦、停止ボタンをクリックしてから構文を書き直してください。コンパイル方法は後述します。
では、このプロシージャの説明をしていきましょう。
1行目:練習2というプロシージャ名を指定。
2行目:Setステートメントで、Worksheets("Sheet1")を変数WS1に格納しています。これは、後からWorksheets("Sheet1")というオブジェクト名を何回も使うので、変数を利用して記述の手間を省いています。
3~6行目:Sheet1のセルB2に「日」を挿入して、そのセルを選択しています。
7行目:先ほど「選択されたB2」からH2までオートフィルを実行しています。これは、日から土までの曜日をオートフィル機能を使って入力しています。
8行目:セルB2からH7までを範囲選択します。
9~28行目:選択したセル範囲の1つ1つのセルの左、上、下、右の順に青色の細線の罫線を設定します。
30~37行目:セルB2からH2までを選択し、セル内の文字を水平側と垂直側を中央揃えに設定し、その選択されている下側は、二重罫線を設定します。
38~39行目:2行になっているが、途中で改行の設定がされているので、ステートメントは1行となる。ここでは、セルB2からH7の範囲の周り(外周)を青色の太い直線の設定を設定しています。
40行目:セルA2からA7のセルの高さを35ポイントに設定します。
41~45行目:Sheet1のワークシート内の、セルB2からB7までをピンク、セルC2からG7までを薄い黄色、セルH2からH7までをシアンで塗りつぶす設定をします。
Excelでの結果は次のようになります。
罫線のプロパティはBorderプロパティを使います。セルのそれぞれの場所を指定する場合の定数は以下のとおりになっています。
定数 | 罫線が引かれる位置 |
---|---|
xlBottom | セルの下側 |
xlLeft | セルの左側 |
xlRight | セルの右側 |
xlTop | セルの上側 |
xlDiagonalDown | 斜線(右下がり) |
xlDiagonalUp | 斜線(右上がり) |
xlInsideHorizontal | セル範囲の真ん中の水平線 |
xlInsideVertical | セル範囲の真ん中の垂直線 |
線の種類を指定する場合は、LineStyleプロパティを使用します。線種を表す定数は次のとおりです。
定数 | 線種 |
---|---|
xlDash | 鎖線 |
xlDashDot | 一点鎖線 |
xlDashDotDot | 二点鎖線 |
xlDot | 点線 |
xlDouble | 二重線 |
xlSlantDashDot | 斜線 |
xlContinuous | 直線 |
xlLineStyleNone | 線なし |
線の太さを指定する場合は、Weightプロパティを使用します。線の太さを表す定数は次のとおりです。
定数 | 線の太さ |
---|---|
xlHairline | 極細線 |
xlThin | 細線 |
xlMedium | 中太線 |
xlThick | 太線 |
BorderAroundメソッドは、セル範囲の中の罫線はまったく設定せず、選択範囲の外側だけに罫線を引くためのものです。書式は以下のとおりです。
range.BorderAround(Linestyle、Weight、Colorindex、Color)
range :罫線を追加するセル範囲を指定
Linestyle :罫線の種類を指定
Weight
:罫線の太さを指定
Colorindex :罫線の色を指定。カラーパレット番号を指定
Color :罫線の色を指定。RGB値を指定
① VBAコードを最後まで記述したら、[デバッグ]メニューを選択し、[VBAProjectのコンパイル]をクリックします。
② 構文間違いがあるとエラーメッセージが表示され、間違っているところが選択されます。
③ OKボタンで返すと、間違った構文は赤色表示されます。
コンパイルでエラーが表示されなくても、プログラムが正常に動作しない場合もあります。構文の間違えではなく、数値の値や文字列を誤って入力すると、意図した動作は行いません。