◆ どっちの罫線が引かれてるか または両方とも引かれてるか
◆ 行を挿入したときにどっちに線が残るかに関係する

最近気づいたことです
エクセルで A1 と A2 の縦に並んだセルの間の横線や A1 と B1 の横に並んだセルの間の縦線がありますよね

ここに罫線を引く時に A1 の下と A2 の上の違いはないと思ってました

ですが別々に管理されています


行や列の挿入をしたときにその違いがでてきます

ここでは A1 と A2 の 2 つのセルを使います

A1 の下側だけ

A1 の下側だけに罫線を引いて 横線が見える状態にします

この状態で 2 行目を右クリックして行を挿入します

すると A1 と A2 の間にセルが追加されるので A1 の下に線があり A2 と A3 の間には線はありません

excelborder01

A2 の上側だけ

次は A2 の上側だけに罫線を引いて 横線が見える状態にします

この状態で 2 行目を右クリックして行を挿入します

すると今度は A1 の下には線はなく A2 と A3 の間に線ができます

excelborder02

A1 の下と A2 の上の両方

ここまでくれば想像出来ると思います

A1 の下側と A2 の上側両方に罫線を引いて横線が見える状態にします

この状態で 2 行目を右クリックして行を挿入します

すると A1 の下 と A3 の上の両方に罫線があります

excelborder03



エクセルの罫線で行の追加や削除すると線があったりなかったりバラバラでよくわからない動きをしていて くっついていた行を壊してるわけだから間の罫線がどうなるかは内部処理次第で当てにならない と思ってましたが こういう管理がされてたのですね

罫線引くときにセルからみて下か上なんて考えないので罫線が上だったり下だったりバラバラに保存されているのが原因でした


ところでこれって目で見ても違いはわからないですよね
セルの書式設定ならわかるかなと思って開いてみても 見た目の方が優先で罫線なしのセルでも隣接セルに罫線があると線ありになっていました

excelborder04

マクロならセルの情報として Border 持ってくるので取れそうと思ってやってみると セルの書式と一緒で罫線が片方でも両方で罫線ありとみなされていました
MsgBox Range("A1").Borders(xlEdgeBottom).LineStyle
MsgBox Range("A2").Borders(xlEdgeTop).LineStyle

どっちかに罫線があればメッセージボックスは両方 1 でした

マクロでも取れないって判断のしようがなくない?と思ってもう少し調べてみたのですが 私のオフィス力が低いので結局よくわからなかったです

別の種類にしたら?

くっついててもセルごとに別々に管理してるなら 上のセルには点線で下のセルには二重線にしたらどうなるの?と試してみました

罫線を設定するときは 普段通りで後から設定した罫線になります
点線のあとで二重線を設定すると点線ではなくなります

ここから 行を挿入してみると

二重線だけになりました

線の種類が違うと 重なるもう一方は消えてしまうようです
同じ種類の線になるのじゃなくて消えてしまうとはまたわかりづらい動きです


見えないところで色々あるから Office は思い通りに動かないっていう あれなんですねー