- ベストアンサー
VBAで10行おきにセルの下に罫線を引く方法
Excel2003のVBAを使用し、10行おきに太い罫線をセルの下側に引きたいのですが、ご存知な方教えて頂けないでしょうか? 出来る事なら、セルの中に×が入っている行は自動的に省いて(選ばず)10行おきに罫線を引きたいと思っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 >10行目の行全体に罫線が引かれるようコーディング頂けると大変助かります。 とありましたので・・・ 本来であればデータがない列まで罫線は必要ないであろうと思い データが入っている最終列を取得して、そこまでの列に罫線を引くようにしていました。 ご希望はデータがあるなしに関わらず最終列(Excel2003の場合はIV列)まで罫線を引きたい! というコトですね! ↓のコードに変更してみてくささい。 Sub Sample2() Dim i As Long, cnt As Long, c As Range Application.ScreenUpdating = False For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Set c = Rows(i).Find(what:="×", LookIn:=xlValues, lookat:=xlPart) If c Is Nothing Then cnt = cnt + 1 If cnt = 10 Then With Rows(i).Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium End With cnt = 0 End If End If Next i Application.ScreenUpdating = True End Sub 今度はどうでしょうか?m(_ _)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 横からお邪魔します。 データは1行目からあるとします。 Sub Sample1() Dim i As Long, j As Long, cnt As Long, c As Range j = ActiveSheet.UsedRange.Columns.Count Application.ScreenUpdating = False For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Set c = Rows(i).Find(what:="×", LookIn:=xlValues, lookat:=xlPart) If c Is Nothing Then cnt = cnt + 1 If cnt = 10 Then With Cells(i, 1).Resize(1, j).Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium End With cnt = 0 End If End If Next i Application.ScreenUpdating = True End Sub こんな感じではどうでしょうか?m(_ _)m
補足
ご回答頂き有難うございます。 ただ、コーディング頂いた内容ですと、10行目の一列のみに罫線が引かれた状態になります。 10行目の行全体に罫線が引かれるようコーディング頂けると大変助かります。 ご面倒かと思いますが、今一度ご教示頂けますでしょうか?
- kybo
- ベストアンサー率53% (349/647)
例えば「セルの中に×が入っている行は自動的に省いて」というのがA10、A20などに入力されている場合は罫線を引かないという意味であれば、以下の様にしてみてください。 表の具体性がなかったので、A列の最終行まで罫線を引くものとし、行全体に罫線を引くものとています。 Sub macro() Dim C As Range For Each C In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row) If C.Row Mod 10 = 0 And C.Value <> "×" Then C.EntireRow.Borders(xlEdgeBottom).Weight = xlThick End If Next C End Sub
お礼
ご回答頂き有難うございました。 VbA初心者ですので、またお世話になる事があるかと思います。 今後とも宜しくお願いいたします。
補足
ご回答頂き有難うございます。 ただ、コーディング頂いた内容で試してみたのですが、×もカウントされてしまいます。 説明が不十分だったと反省しておりますので、もう少し詳しく質問内容を補足致します。 例えば,A列に567467474H4と数字やアルファベットが11個並び、K列の10行目に×が入っていた場合、A列10行目に入っているHをカウントせず、A列の11行目に罫線を引きたいのです。 A列の最終行まで罫線を引き、行全体に罫線を引くのはご回答頂いた内容で間違いありません。 お手数ですが、今一度ご教示いただけますでしょうか?
お礼
早速のご教示、有難うございました。 コーディング頂いた内容に間違いありません。 問題なく起動しました。 本当に助かりました。