- ベストアンサー
エクセルVBA 行追加時に自動で罫線を引きたい
こんにちは。いつもお世話になっています。 エクセル2007を使用し、データーベースの表を作っています。 A列からE列まで情報の項目があり、(日付・名前等) 3行目からずっとデータを入力しています。 新しい行に、A列からE列の間に何か入力した時、 もしくは入力してある最終行にカーソルがある時、改行を押した場合 次の新規の行AからEまで、自動に罫線を引くにはどうしたらよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>新しい行に、A列からE列の間に何か入力した時、… ホームタブにある「テーブルとして書式設定▼」の中からてきとーに選んで付けておくと,カンペキに意図通り修飾を施し続けてくれます。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
マクロでやりたいご質問でしたね。 シート名タブを右クリックしてコードの表示を選び,下記をコピー貼り付けておきます。 private sub Worksheet_Change(byval Target as excel.range) if application.intersect(target.cells(1), range("A:E")) is nothing then exit sub with range("A2:E" & target.cells(1).row + 1).borders .linestyle = xlcontinuous .weight = xlthin .colorindex = 1 end with end sub #参考 「その行だけ」に書式を施すと,あとで印刷したり諸々に際して不都合の原因になる場合があります。
- merlionXX
- ベストアンサー率48% (1930/4007)
ANo1さんの方法、参考になりました。 わたしはまだエクセル2000なので、VBAでの方法を考えてみました。 > もしくは入力してある最終行にカーソルがある時、改行を押した場合 改行を押した結果、「下の空白行のA~E列のどれかをセレクトした場合」ということでよろしいでしょうか? ならば以下をお試しください。 1. 該当するシートのシートタブを右クリックして、[コードの表示]。 2. 出てきた白い所に、以下のコードを貼付けます。 '********これより下********** Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row < 3 Then Exit Sub If Target.Column > 5 Then Exit Sub If Application.WorksheetFunction.CountA(Cells(Target.Row, "A").Resize(, 5)) > 0 Then Exit Sub With Cells(Target.Row, "A").Resize(, 5).Borders .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub '********これより上********** 3.Alt+F11キーでワークシートへもどります。 これでOK
お礼
ありがとうございます!
お礼
ありがとうございます! VBAでなくても、こちらで簡単にできたんですね。 助かりました。