状況は単純です。 cell に名前を付けA1
てから、 cell から cellにMY_CELL
CUT AND PASTEすると、その名前が失われ、再度名前が付けられます。A2
MY_CELL
MY_CELL
A1
ただし、からコピーして貼り付けるA2
と、これは起こりませんMY_CELL
。
CUT AND PASTEで Excel がセル名をリセットしないようにするにはどうすればよいですか?
ロジックA1
: イベントを使用して Cell への変更をトラップWorksheet_Change
し、名前が失われた場合は名前を再作成します。
コード:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DoesRngNameExists As Boolean
Dim sName As String
On Error GoTo Whoa
Application.EnableEvents = False
'~~> You named range
sName = "MY_CELL"
If Not Intersect(Target, Range("A1")) Is Nothing Then
'~~> Check if the Range exists
On Error Resume Next
DoesRngNameExists = Len(Names(sName).Name) <> 0
On Error GoTo 0
'~~> If not then recreate it
If DoesRngNameExists = False Then _
ThisWorkbook.Names.Add Name:=sName, RefersToR1C1:="=Sheet1!R1C1"
End If
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
注:該当シートのシートコードエリアのコード。以下のスクリーンショットを参照してください。