ワークシート名の参照(Microsoft Excel)
Jonは、ワークシートに= ROW()または= COLUMN()と同等の関数があるかどうか疑問に思います。彼は(たとえば)ワークブックの4番目のシートを参照する必要がありますが、ワークシートの名前がわかりません。
何をする必要があるかに応じて、この問題に取り組む方法はいくつかあります。すでに保存されているワークシートを使用している場合は、次の式でSheet4のワークシート名を取得できます。
=MID(CELL("filename",Sheet4!A1),FIND("]",CELL( "filename",Sheet4!A1))+1,LEN(CELL("filename", Sheet4!A1)))
この式にはいくつかの仮定があることに注意してください。
まず(そして最も重要なことですが)、ワークシートの初期名を知っていることを前提としています。この場合、初期名はSheet4です。数式が配置されると、ワークシート名へのその後の変更は自動的に数式に反映されます。 2番目の前提は、作業中のブックが保存されていることです。そうでない場合は、ブックが保存されて再計算されるまで、数式はエラーを返します。
別のアプローチは、ユーザー定義関数を使用することです。 VBAのオブジェクトモデルでは、ブック内のすべてのワークシートがSheetsコレクションに含まれています。これらは、順番にインデックスが付けられます。したがって、インデックス値を関数に渡して、コレクションのインデックス番号でワークシートの名前を取得できます。
Function TabName(snum As Long) As String If snum > 0 And snum <= Sheets.Count Then TabName = Sheets(snum).Name End If End Function
たとえば、コレクションの4番目のワークシートの名前を知りたい場合は、ワークシートで次を使用できます。
=TabName(4)
保存されていないブックでも、この機能は問題なく機能します。また、ワークシートの名前が変更されたり移動されたりした場合でも、適切なワークシート名が返されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(7607)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link:/ excelribbon-Referencing_a_Worksheet_Name [ワークシート名の参照]
。