はじめに
おい、そこの罫線
A1の下罫線か、A2の上罫線か、どっちなんだい!
https://twitter.com/Tsutsui0524/status/1772401667331289207
エクセルで「下罫線と上罫線のどっち?」というツイートを見かけました。
確かに疑問だと思ったので、罫線の位置を調べるマクロを作ってみました。
本記事の対象者
- エクセルVBAが分かる方。
罫線の位置を調べるマクロ
Sub 罫線の位置を調べる()
Dim s_result As String
Dim bs As Borders
Set bs = ActiveCell.Borders
If bs(3).LineStyle <> xlNone Then
s_result = s_result + "上"
End If
If bs(2).LineStyle <> xlNone Then
s_result = s_result + "右"
End If
If bs(4).LineStyle <> xlNone Then
s_result = s_result + "下"
End If
If bs(1).LineStyle <> xlNone Then
s_result = s_result + "左"
End If
If s_result = "" Then
MsgBox ("上右下左に罫線はありません。")
Else
MsgBox ("罫線は「" + s_result + "」です。")
End If
End Sub
マクロの解説
Visual Basic Editorを立ち上げてActiveCellのBordersのItemを調べてみました。
するとBorderが1から6まであって、順に左、右、上、下、左上から右下への斜め、右上から左下の斜めの罫線に対応していることが分かりました。
作成したマクロは、選択した1つのセルの上右下左のどこに罫線があるかをダイアログボックスで報告する関数になります。
たかが罫線と侮るなかれ
A1の下罫線は、必ずしもA2の上罫線とは限りません。A1とA2のどちらかに罫線があれば、A1とA2の間に罫線があるように見えます。A1とA2の間に罫線があったとしても、A1の下罫線とA2の上罫線のどちらかは見分けがつかないということです。A1の下罫線とA2の上罫線の両者とも存在することもあります。
罫線は奥深いです