プロが教える店舗&オフィスのセキュリティ対策術

Excelの行の挿入についてお伺いします。

10行ごとに罫線を引いているのですが、行を挿入すると、罫線ごと移動してしまい、せっかく10行ごとに引いた罫線がずれてしまいます。

これを10行ごとの罫線は変えず、行だけを挿入したいのですが、どうすればいいのでしょうか?

また、表作成において、改善案や便利なことなどもあるようでしたら教えてください。よろしくお願いします。

A 回答 (7件)

こんばんわ。

早速サンプルマクロを作ってみました。次のように操作してみて下さい。

1.新規ブックを開き、ALT+F11を押してVBE(Visual Basic Editor)の画面を開く。
2.左上のVBAProjectと書いてある画面の下にあるSheet1にカーソルをあわせ、ダブルクリックする。(右側が白い画面に変わる)
3.その白い画面に、下のコードをコピー・ペーストする。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim myRow As Long
Dim myCnt As Integer
Dim i As Integer

myRow = Cells(Rows.Count, 1).End(xlUp).Row
myCnt = Cells(myRow, Columns.Count).End(xlToLeft).Column
Range(Cells(1, 1), Cells(myRow, myCnt)).Borders(xlEdgeBottom).LineStyle = xlNone
Range(Cells(1, 1), Cells(myRow, myCnt)).Borders(xlInsideHorizontal).LineStyle = xlNone

For i = 10 To myRow Step 10
Range(Cells(i, 1), Cells(i, myCnt)).Borders(xlEdgeBottom).LineStyle = xlContinuous
Range(Cells(i, 1), Cells(i, myCnt)).Borders(xlEdgeBottom).Weight = xlThick
Next i

End Sub

4.ALT+F11を押し、SHeet1の画面に切り替える。
5.適当にデーターを入力した後、挿入・削除をやってみる。

そのつど10行ごとに罫線が引かれます。
    • good
    • 0
この回答へのお礼

参考になります。
ありがとうございました。

お礼日時:2002/10/04 20:47

説明を間違えました



当初の
=MOD(ROW(),10)=1
が11 21 31 と1行目のタイトル行を除いて
10行おきの式ですね
これをB1から設定すると1行目の下辺も罫線が引かれ
ます
(タイトル行なら引かれても問題ないとは思いますが)

タイトル行無しの10行おきなら
=MOD(ROW(B1),10)=0
でOKです

相対参照セルを入れる時のは、特性の行位置でなく
例えばシート範囲の10数行下から表が始まる場合
行値を気にせず10行おきに引くためにその選び初め
セルに =MOD(ROW(B1),10)=0 とすれば10行おき
となるものです。

紛らわしい説明でスミマセンでした!
 
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございました。

お礼日時:2002/10/03 23:55

再び こんばんは



>なぜB2からにしないといけないのでしょうか?
あ これは現在の式では気にされなくて結構です。
実は、1行目がタイトル行で以降10行単位で罫線
などの場合があるのかなと思いましてその時の式
B2から選択した場合
 =MOD(ROW(B1),10)=1 とROW()関数の中に
相対参照のセル指定をする関係から記載したものです。

要は範囲選択した場合、選択範囲で反転していないセル
(アクティブ)に対して相対参照式をいれる説明をする
必要があるためです(希に下行から上に範囲選択される
方がいるため)

>また、例えば、この表を利用するにつれて利用範囲が
>増えてき、初期範囲を超えた場合はどう対処すれば
>いいのでしょうか?
条件付き書式は書式なのでコピー可能です。
設定範囲で空白行があれはそのまま複写
入力がある場合は複写してからデータを消すか書式のみ
の貼り付けでよろしいかと思います。
また、当初の式で 設定範囲内であれば必要行挿入すれば
そのまま複写されます。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございました。

お礼日時:2002/10/03 23:55

はじめまして。


VBAでマクロを組めば、あなた様のやりたいことは簡単に実現できると思います。
もし私でよろしければ、サンプルマクロを作ってみたいと思いますので、ご希望の節はお知らせ下さい。

この回答への補足

ご回答ありがとうございます。
ぜひとも教えていただきたいと思います。
VBAはそれほど詳しくはないのでわからないこともでてきますが、参考にさせていただきたいと思います。
ご面倒だとは思いますが、よろしくお願いします。

補足日時:2002/10/03 02:26
    • good
    • 0

こんばんは



例えば 初期範囲がB2:E100 として
・初期状態では横罫線無し
・その範囲を選択(必ずB2から)
・書式設定 条件付き書式 数式が▼
 数式欄 =MOD(ROW(),10)=1
 書式ボタン 罫線タブ 下辺のみ 罫線を設定

で如何でしょうか!

この回答への補足

ご回答ありがとうございます。
試してみましたが、確かに選択した範囲では罫線がずれずにできました。貴重でした。
なぜB2からにしないといけないのでしょうか?

また、例えば、この表を利用するにつれて利用範囲が増えてき、初期範囲を超えた場合はどう対処すればいいのでしょうか?が

補足日時:2002/10/03 02:37
    • good
    • 0

いわれるままのことは無理ですね。



罫線を引いたシートとは別なシートに入力しておいて、
それをコピーし、罫線を引いたシートで値を貼り付け
ではだめですか。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/10/03 02:28

そいつはExcelの仕様ということで、無理かもしれません。


どうしてもとおっしゃるのなら、数十行分の罫線を含む書式を別のシートに作っておき、作業しているシートに行を挿入するたびに別シートの書式のみを作業シートにコピーすることでなんとかなります。こいつをマクロの記録などを使って1クリックで出来るようにしておくと、後々ラクではないかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/10/03 02:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!