F053 セルの位置を調べる関数

2019-06-02
EXCEL自作関数

 数式があるセルのアドレスを形式を変えて表示する関数です。数式のあるセルの詳細なアドレスを知りたい場合、ブックの名前やシートの名前、セル位置などを別々に調べる必要がありますが、この関数を使うことで一度に知ることができます。
 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

ここで紹介したコード使用による損害に対しては一切責任は負えません。