dポイントプレゼントキャンペーン実施中!

エクセルのVBAで、セルに「=SheetName」と書き込めば、その関数を書き込んだセルが属するシート名をセルに代入さるようなユーザー定義関数を作りたいと考えています。
で、標準モジュールに
Public Function SheetName(test)
SheetName = ?????
End Function
と、書き込んでふと止まりました。
ユーザー定義関数を書き込んだシートの名前ってどうやって取得すればいいのでしょうか?VBでいうSenderみたいなのってあるんでしょうか?
どなたか?詳しい方教えて頂けないでしょうか?
宜しくお願いいたします。

A 回答 (12件中11~12件)

Function SheetName() As String


Application.Volatile
SheetName = Application.Caller.Parent.Name
End Function

で、セルに「=SheetName」と書き込めば、その関数を書き込んだセルが属するシート名を表示します。

なお、ワークシート関数では、↓です。

=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)

参考URL:http://www2.odn.ne.jp/excel/waza/sheet.html#SEC5
    • good
    • 0

Public Function SheetName() As String


SheetName = ActiveSheet.Name
End Function

でセルに
=SheetName()
と入れればシート名は取得できます。
    • good
    • 0

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