仕様
選択状態のセルを対象とし、セルの値を当該セルのブックレベルの名前とする。
セルに値が入っていなければスキップ。
セルに入っている値がすでにセルの名前として使用されている場合もスキップ。
設定が完了したセルは値を削除。
セル上でExcel数式を使ってバリエーションを作ったり、オートフィルで連続データを作ったりしたセルに対して使うと少しだけ幸せになれる。
※使い捨て用に書いたのでbookの固定とか細かい処理はしていない
Module1
Sub setName()
Dim rng As Range
Set rng = Selection
Debug.Print rng.Count
Dim r As Range
For Each r In rng
If r.Value <> "" Then
If Not isExistingName(r.Value) Then
r.name = r.Value
r.Value = ""
End If
End If
Next
End Sub
Function isExistingName(name As String) As Boolean
On Error GoTo Err
Range(name).Select
isExistingName = True
Exit Function
Err:
isExistingName = False
End Function
大量にセルの名前を付けなければならないが名前ボックスはチマチマしていてセル上で指定したくなったので作った。