• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAにおける罫線の色指定について)

エクセルVBAにおける罫線の色指定について

このQ&Aのポイント
  • エクセルVBA初心者のため、指定した範囲の罫線色が変わらない問題が発生しています。
  • コード内で指定した範囲の下罫線と左罫線の色を青に変更したいです。
  • 画像を添付しましたので、参照してください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#157410
noname#157410
回答No.2

Dim as Objectですか? 変数宣言しないと、基本はいけません。 Dim は変数宣言を表します。 なおObjectは、シート、配列などの変数入れるときに使います。 setが頭にくる宣言など。 またSetした場合どこかで開放しないと、メモリー食いますが今回の質問の中に無かったので省いています。 set ws1=Noting これが解放です。 End Sub前に入れておいた方がいいでしょうね。 Dim ** as Longは整数とか決まりがあります。 これを抜かすと動かない場合があります。 VBAは結構いい加減で、変数宣言しなくても動く場合もありますが、基本は変数宣言要ります。 癖付した方がいいですよ。

dradra33
質問者

お礼

VBAの学習をはじめてまだ1週間なので ご指摘いただいたことは今後の参考と させていただきます。

その他の回答 (1)

noname#157410
noname#157410
回答No.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

dradra33
質問者

お礼

早速のご回答ありがとうございます。 上記のコードをコピペして実行したら 質問文通りの表ができました。

dradra33
質問者

補足

早速のご回答ありがとうございます。 上記のコードをコピペして実行したら 質問文通りの表ができました。 ただ「Dim ws1 As Object」というコードについて お尋ねしたいことがあります。 (1)このコードの意味はなんでしょうか? (2)「Dim 」とはステートメントの一種だと聞きます。 上のSubステートメントとバッティングして、 1つの処理に対して2つの命令語が発せられ、 「Dim 」以下の内容によっては処理できないことも あるのでしょうか? お忙しいところたびたびの質問で、誠に恐れ入りますが ご教示のほどよろしくお願いします。

関連するQ&A