ExcelVBAで資料を作成する際、フォーマットに合わせて値を動的に入力する機能の部品として作成したためメモを残しておきます。
機能と呼び出し方
ここでは、この関数の機能と呼び出し方を説明します。
機能としては、指定したセルに設定されている罫線の有無が想定通りかをチェックするものになります。
呼び出し方と戻り値
以下のように呼び出します。戻り値は、罫線の存在状態が想定通りの場合は「True」、想定通りではない場合は「False」となります。
Dim ret As Boolean
ret = checkBorders("C3", True, True, True, True)
引数
- 引数1:チェック対象セルのアドレス
- 引数2:セル上端の存在状態(True:存在する/False:存在しない)
- 引数3:セル下端の存在状態(True:存在する/False:存在しない)
- 引数4:セル左端の存在状態(True:存在する/False:存在しない)
- 引数5:セル右端の存在状態(True:存在する/False:存在しない)
ソースコード
このソースでは、シートはアクティブシートを対象にしていますが、引数などで対象シートを選択できるようにしても良いかもしれません。
Public Function checkBorders(ByVal cell As String, ByVal top As Boolean, _
ByVal bottom As Boolean, ByVal right As Boolean, ByVal left As Boolean) As Boolean
checkBorders = False
Set sht = ActiveSheet
With sht
If (top) Then
If .Range(cell).Borders(xlEdgeTop).LineStyle = xlLineStyleNone Then Exit Function
Else
If .Range(cell).Borders(xlEdgeTop).LineStyle <> xlLineStyleNone Then Exit Function
End If
If (bottom) Then
If .Range(cell).Borders(xlEdgeBottom).LineStyle = xlLineStyleNone Then Exit Function
Else
If .Range(cell).Borders(xlEdgeBottom).LineStyle <> xlLineStyleNone Then Exit Function
End If
If (right) Then
If .Range(cell).Borders(xlEdgeRight).LineStyle = xlLineStyleNone Then Exit Function
Else
If .Range(cell).Borders(xlEdgeRight).LineStyle <> xlLineStyleNone Then Exit Function
End If
If (left) Then
If .Range(cell).Borders(xlEdgeLeft).LineStyle = xlLineStyleNone Then Exit Function
Else
If .Range(cell).Borders(xlEdgeLeft).LineStyle <> xlLineStyleNone Then Exit Function
End If
End With
checkBorders = True
End Function
以上で、ExcelVBA セル罫線の存在チェック関数を終わります。
コメント