値は保持して書式だけクリア
'==============================
' 書式:値は保持して書式だけクリア
'==============================
Public Sub ClearFormatsKeepValues()
Dim rng As Range
If Not TryGetRangeSelection(rng) Then Exit Sub
If rng.Worksheet.ProtectContents Then
MsgBox "このシートは保護されています。書式を変更できません。", vbExclamation
Exit Sub
End If
On Error GoTo EH
rng.ClearFormats
Exit Sub
EH:
MsgBox "書式リセットでエラー:" & Err.Description & "(" & Err.Number & ")", vbCritical
End Sub
'==============================
' 内部ヘルパー
'==============================
Private Function TryGetRangeSelection(ByRef rngOut As Range) As Boolean
On Error GoTo EH
Dim rng As Range
Set rng = Nothing
On Error Resume Next
Set rng = ActiveWindow.RangeSelection
On Error GoTo EH
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", vbExclamation
TryGetRangeSelection = False
Else
Set rngOut = rng
TryGetRangeSelection = True
End If
Exit Function
EH:
MsgBox "選択範囲の取得でエラー:" & Err.Description & "(" & Err.Number & ")", vbCritical
TryGetRangeSelection = False
End Function
罫線のみ全クリア
'==============================
' 罫線のみ全クリア(背景やフォントは保持)
'==============================
Public Sub ClearBordersOnly()
Dim rng As Range
If Not TryGetRangeSelection(rng) Then Exit Sub
If rng.Worksheet.ProtectContents Then
MsgBox "このシートは保護されています。罫線を変更できません。", vbExclamation
Exit Sub
End If
On Error GoTo EH
Dim b As XlBordersIndex
For b = xlDiagonalDown To xlInsideHorizontal
rng.Borders(b).LineStyle = xlNone
Next b
Exit Sub
EH:
MsgBox "罫線クリアでエラー:" & Err.Description & "(" & Err.Number & ")", vbCritical
End Sub
'==============================
' 内部ヘルパー
'==============================
Private Function TryGetRangeSelection(ByRef rngOut As Range) As Boolean
On Error GoTo EH
Dim rng As Range
Set rng = Nothing
On Error Resume Next
Set rng = ActiveWindow.RangeSelection
On Error GoTo EH
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", vbExclamation
TryGetRangeSelection = False
Else
Set rngOut = rng
TryGetRangeSelection = True
End If
Exit Function
EH:
MsgBox "選択範囲の取得でエラー:" & Err.Description & "(" & Err.Number & ")", vbCritical
TryGetRangeSelection = False
End Function
コメント