プロが教えるわが家の防犯対策術!

Excelのユーザー定義関数で、自分自身が書き込まれているセルのアドレスって取得出来るのでしょうか?
例えば、
Function test(MyString As String) As String
test = "入力された文字は、「" & MyString & "」です"
End Function
とユーザー定義関数を作り
A1のセルに =test("てすと") と書くと
入力された文字は、「てすと」ですと出てきます。
そこで、ユーザー定義関数のなかで、ユーザー定義関数を呼び出した式が入力されている(上記の例ですと、「A1」)アドレスを取得する方法ってありますか?
どなたか、詳しい方いらっしゃいましたら教えてください。

A 回答 (4件)

そのユーザー定義関数が入力されているセルを…



●ThisCellプロパティで取得する

Function test()
 MyString = Application.ThisCell.Address(False, False, xlA1)
 test = "入力されているセルは、" & MyString & "です"
End Function

●Callerプロパティで取得する

Function test2()
 MyString = Application.Caller.Address(False, False, xlA1)
 test2 = "入力されているセルは、" & MyString & "です"
End Function

ご参考まで。
    • good
    • 2

こんな関数どういう使い道に使うのですか。

回答者を煩わし質問する以上説明が必要と思うが。
エクセル関数で=CELL("address")というのもあるが、これなど質問と関係ある(使えない)かな。
    • good
    • 0

セルにセル位置を表示したいだけなのでしょうか?


それでしたらユーザ定義関数よりもセル式の方が良いと思いますが?

="入力されたセルは、「R"& ROW() &"C" & COLUMN() &"」です"
    • good
    • 0

R1C1形式 でもいいですか?



Function test(MyString As String) As String
Dim nRow, nCol As Integer
nRow = Application.ActiveCell.Row
nCol = Application.ActiveCell.Column
test = "入力されたセルは、「R" & nRow & "C" & nCol & "」です"
End Function

この回答への補足

早速の回答有り難うございます
試してみたのですが、確かに数式をセルに入れて、Enterキーを押すとセルのアドレスが表示されますが、式をコピーすると上手く機能しません。あと、再計算ボタンを押してみたのですが、やはり、セルがアクティブになっていないので、上手く機能しません。
何か?上手い方法ってありますか?

補足日時:2008/09/12 16:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!