数式があるセルのアドレスを形式を変えて表示する関数です。数式のあるセルの詳細なアドレスを知りたい場合、ブックの名前やシートの名前、セル位置などを別々に調べる必要がありますが、この関数を使うことで一度に知ることができます。
VBAでセルの位置を指定する場合等にも便利です。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「 CellAddress 」が使用できます。
使い方は
ワークシート上で = CellAddress (選択範囲,参照形式,相対参照か絶対参照,シート名) の関数として使用することで、セルのアドレスを様々な表示形式で表示します。
【例】
数式があるセルのアドレスを形式を変えて表示する関数
CellAddress (選択範囲,参照形式,相対参照か絶対参照,シート名)
F=参照形式 0;R1C1形式,1;A1形式
A=相対参照か絶対参照か 0;相対参照,1;絶対参照
S=シート名の表示 0;表示なし,1;シート名表示,2;ブック名シート名表示
CellAddress() ⇒ $B$4
CellAddress(0,1,0) ⇒ R4C2
CellAddress(1,1,1) ⇒ ‘Sheet1‘!$B$5
CellAddress(1,1,2) ⇒ ‘[Book1.xlsm]Sheet1’!$B$6
Function CellAddress(Optional F As Long = 1, _
Optional A As Long = 1, Optional S As Long = 0)
’ 数式があるセルのアドレスを形式を変えて表示する関数
’ CellAddress (選択範囲,参照形式,相対参照か絶対参照,シート名)
’ F=参照形式 0;R1C1形式,1;A1形式
’ A=相対参照か絶対参照か 0;相対参照,1;絶対参照
’ S=シート名の表示 0;表示なし,1;シート名表示,2;ブック名シート名表示
Dim AD As String
Dim R2 As String
On Error GoTo EXITFUN
R2 = ActiveCell.Address(ReferenceStyle:=F, RowAbsolute:=A, _
ColumnAbsolute:=A, External:=0)
AD = ActiveCell.Address(External:=1)
If S = 0 Then
CellAddress = R2
ElseIf S = 1 Then
CellAddress = “‘” & Mid(AD, InStr(AD, “]”) + 1, InStr(AD, “!”)- _
(InStr(AD, “]”) + 1)- 1) & “‘!” & R2
ElseIf S = 2 Then
CellAddress = ActiveCell.Address(ReferenceStyle:=F, RowAbsolute:=A, _
ColumnAbsolute:=A, External:=1)
End If
EXITFUN:
End Function
ここで紹介したコード使用による損害に対しては一切責任は負えません。