K-fix Learning & Playing

基礎編


VBAにTRY ④

では、簡単な日程表を作成してみましょう。ここでは、罫線の設定に注目してください。また、同じオブジェクト名を記述する際には、そのオブジェクトは変数として扱ったほうが、記述が楽になることも理解してください。
では、次のコードを記述してみてください。

                        
        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プロパティを使います。セルのそれぞれの場所を指定する場合の定数は以下のとおりになっています。

Borderプロパティに設定する定数
定数 罫線が引かれる位置
xlBottom セルの下側
xlLeft セルの左側
xlRight セルの右側
xlTop セルの上側
xlDiagonalDown 斜線(右下がり)
xlDiagonalUp 斜線(右上がり)
xlInsideHorizontal セル範囲の真ん中の水平線
xlInsideVertical セル範囲の真ん中の垂直線

線の種類を指定する場合は、LineStyleプロパティを使用します。線種を表す定数は次のとおりです。

LineStyleプロパティに設定する定数
定数 線種
xlDash 鎖線
xlDashDot 一点鎖線
xlDashDotDot 二点鎖線
xlDot 点線
xlDouble 二重線
xlSlantDashDot 斜線
xlContinuous 直線
xlLineStyleNone 線なし

線の太さを指定する場合は、Weightプロパティを使用します。線の太さを表す定数は次のとおりです。

Weightプロパティに設定する定数
定数 線の太さ
xlHairline 極細線
xlThin 細線
xlMedium 中太線
xlThick 太線

BorderAroundメソッドは、セル範囲の中の罫線はまったく設定せず、選択範囲の外側だけに罫線を引くためのものです。書式は以下のとおりです。

BorderAroundメソッドの書式

range.BorderAround(Linestyle、Weight、Colorindex、Color)

range    :罫線を追加するセル範囲を指定
Linestyle  :罫線の種類を指定
Weight    :罫線の太さを指定
Colorindex :罫線の色を指定。カラーパレット番号を指定
Color    :罫線の色を指定。RGB値を指定

-補足:コンパイル方法-

① VBAコードを最後まで記述したら、[デバッグ]メニューを選択し、[VBAProjectのコンパイル]をクリックします。

② 構文間違いがあるとエラーメッセージが表示され、間違っているところが選択されます。

③ OKボタンで返すと、間違った構文は赤色表示されます。
コンパイルでエラーが表示されなくても、プログラムが正常に動作しない場合もあります。構文の間違えではなく、数値の値や文字列を誤って入力すると、意図した動作は行いません。