- ベストアンサー
エクセルVBAにおける罫線の色指定について
- エクセルVBA初心者のため、指定した範囲の罫線色が変わらない問題が発生しています。
- コード内で指定した範囲の下罫線と左罫線の色を青に変更したいです。
- 画像を添付しましたので、参照してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Dim as Objectですか? 変数宣言しないと、基本はいけません。 Dim は変数宣言を表します。 なおObjectは、シート、配列などの変数入れるときに使います。 setが頭にくる宣言など。 またSetした場合どこかで開放しないと、メモリー食いますが今回の質問の中に無かったので省いています。 set ws1=Noting これが解放です。 End Sub前に入れておいた方がいいでしょうね。 Dim ** as Longは整数とか決まりがあります。 これを抜かすと動かない場合があります。 VBAは結構いい加減で、変数宣言しなくても動く場合もありますが、基本は変数宣言要ります。 癖付した方がいいですよ。
その他の回答 (1)
Option Explicit Sub 日程表作成() Dim ws1 As Object Set ws1 = Worksheets("sheeT1") With ws1 .Range("B3") = "日" .Range("B3").Select End With Selection.AutoFill Destination:=Range("B3:H3") ws1.Range("B3:H3").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("B3:H3").Select Selection.Borders(xlBottom).LineStyle = xlDouble ws1.Range("B3:H8").BorderAround Weight:=xlThick, _ ColorIndex:=5, LineStyle:=xlContinuous ws1.Range("B3:H8").RowHeight = 35 '日程表の中に横線を入れる ws1.Range("B4:H8").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 5 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .ColorIndex = 5 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 5 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 5 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 5 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 5 .TintAndShade = 0 .Weight = xlThin End With ws1.Range("B3:H8").BorderAround Weight:=xlThick, _ ColorIndex:=5, LineStyle:=xlContinuous '日程表の中に縦線を入れる ws1.Range("C4:H8").Select Selection.Borders(xlLeft).LineStyle = xlContinuous ws1.Range("B3:H8").BorderAround Weight:=xlThick, _ ColorIndex:=5, LineStyle:=xlContinuous '曜日のセルを塗りつぶす With ws1 .Range("B3:B8").Interior.ColorIndex = 38 .Range("C3:G8").Interior.ColorIndex = 19 .Range("H3:H8").Interior.ColorIndex = 19 .Range("B4").Activate End With End Sub
お礼
早速のご回答ありがとうございます。 上記のコードをコピペして実行したら 質問文通りの表ができました。
補足
早速のご回答ありがとうございます。 上記のコードをコピペして実行したら 質問文通りの表ができました。 ただ「Dim ws1 As Object」というコードについて お尋ねしたいことがあります。 (1)このコードの意味はなんでしょうか? (2)「Dim 」とはステートメントの一種だと聞きます。 上のSubステートメントとバッティングして、 1つの処理に対して2つの命令語が発せられ、 「Dim 」以下の内容によっては処理できないことも あるのでしょうか? お忙しいところたびたびの質問で、誠に恐れ入りますが ご教示のほどよろしくお願いします。
お礼
VBAの学習をはじめてまだ1週間なので ご指摘いただいたことは今後の参考と させていただきます。