1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

下罫線か上罫線か?罫線の位置を調べるマクロを作ってみた

Posted at

はじめに

おい、そこの罫線
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の上罫線の両者とも存在することもあります。

罫線は奥深いです:thinking:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?