
セルアドレスを使用してセル定義名を返す数式が必要です。
=INDIRECT(ADDRESS(ROW(),COLUMN(),1,,"SHEET 001"))
ADDRESS(ROW(),COLUMN()
現在のセル定義名
、つまり「sales」を参照するためにこれが必要です。$A$1
答え1
簡単な回避策を思いつきましたが、確かに少し制限がありました。
- シートの空き領域に、定義されたすべての名前のリストを貼り付けます。
- 次の数式は、探している完全修飾セル アドレスに似た文字列を作成し、リスト内で一致させて、隣接する列からセル名を返します =INDEX(NameList,MATCH("='"&SUBSTITUTE(CELL("filename"),"fully_qualified_filename","")&"'!"&CELL("address"),NameReferences,0))
これは明らかに単一のセルを指す名前に限定されていますが、セル範囲の検索に拡張することもできます。
データを表示するセルの名前がデータ フィールドの名前なので、どこに置いても参照は常に正しいので、私の場合はうまくいきます。
プロジェクトの作業中に、頻繁に実行されるマクロに、名前リストを更新して最新の状態に保つステートメントを含めました。
答え2
このコードを書いたのは私の功績ではありませんが、まさに必要な機能を果たします。数年前に同じ機能が必要になり、サイバースペースのどこかでこのコードを見つけました。おそらく少し変更したのでしょうが、どちらにしても覚えていません。私にとってはうまく機能しました。
それはこのように動作します:
- 以下のコードを、Excel マクロ対応ブック (*.xlsm) の VBA モジュールに貼り付けます。
- 次に、Excel ワークシートのセルに「=CellName(F19)」のようなものを入力すると、「rngSomeNamedCell」のようなものが返されます。
コードは次のとおりです:
Public Function CellName(cel As Range) As Variant
Dim nm As Name
For Each nm In Names
If nm.RefersTo = "=" & cel.Parent.Name & "!" & cel.Address Then
CellName = nm.Name
Exit Function
End If
Next
CellName = CVErr(xlErrNA)
End Function
答え3
これを実行する組み込みの Excel 関数はないと思います。ユーザー定義関数を使用してセル名を返すことができます。
以下の 2 つの関数はセルの名前を返します。1 つはセル参照を受け取り、もう 1 つは行と列を受け取ります。どちらも現在はローカル シートでのみ動作するように設定されていますが、必要に応じてワークシート名を受け取るオプションの変数を追加できます。
最初の関数は次のように呼び出されます=cell_name()
ゴードン
Function cell_name() As String
dim rng as Range
On Error Resume Next
set rng = activeCell
If Len(rng.Name.Name) < 0 Then
cell_name = "No named Range"
Exit Function
End If
cell_name = rng.Name.Name
if instr("cell_name","!")>0 then
cell_name = Right(cell_name, Len(cell_name) - InStr(cell_name, "!"))
end if
End Function
2番目の関数は指定された行と列のセル名を返します
Function cell_name2(r As Long, c As Long) As String
Dim rng As Range
Set rng = Cells(r, c)
On Error Resume Next
If Len(rng.Name.Name) < 0 Then
cell_name = "No named Range"
Exit Function
End If
cell_name2 = rng.Name.Name
End Function
最初の関数をアクティブセルで動作するように編集しました。