- ベストアンサー
エクセル2000マクロについて
マクロでデータが入力されている所だけ、罫線の格子線を引くマクロを 教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>データが入力されている所だけ、罫線の格子線 データが入っているところだけ、というのを厳密に考えると「格子線」でなく「外枠」でいいような気もします。 下のマクロはデータが入っているセルだけを罫線で囲む(外枠)ものです。 Sub 罫線() For m = 1 To 50 For n = 1 To 50 Cells(n, m).Select If Cells(n, m) <> "" Then Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Else End If Next n Next m End Sub 質問とは違うかもしれませんが、気になったので…。 for n =1 to 50 は1行目から50行目という意味ですので、適当に数字を変えて試してみて下さい。
その他の回答 (2)
- taknt
- ベストアンサー率19% (1556/7783)
あ、ちょっと質問の意味を取り違えてました。 マクロでデータが入力されている所を データの入力をマクロでしていて、そこだけ 罫線をひきたいという 意味にとらえてしまいました。
- taknt
- ベストアンサー率19% (1556/7783)
まず マクロで データを入力した個所を A1からB16とします。 Range("A1:B16").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With これでどうでしょうか?