- ベストアンサー
エクセルでシート名をセルに表示させたい。
エクセルで複数のシートからなるファイルがあり、シート名は「4月」「5月」「6月」・・・となっています。 このシート名をそれぞれのシートの「A1」セルに表示させる方法はありますか?シート名を変更したときに「A1」セルも連動して変わるようにしたいのです。お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
下記の式でも No.1さんと同じ結果になります。 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) なお、上式を入力する前に、当該ブックは名前を付けて保存しておくことが肝要です。
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#3>無理なのかな~残念。 #2さんの回答を実際に試してみましたか?
お礼
出来ました。出来ました。 また、出来なかった理由もわかりました。 ファイルを保存していなかったからでした。 ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17070)
エクセル操作では、実現不可能でしょう。通常のエクセルVBAでもシート名が変更されたというイベントは捉えられないと思うので、近いものとして ThisWorkbookのSheetActivateのイベントを使って Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim Sh1 As Worksheet For Each Sh1 In ActiveWorkbook.Worksheets Sh1.Cells(1, "A") = Sh1.Name Next End Sub を入れておくと、どうでしょう。 即座には反映しないが、クリックして、そのシートをあけると、変更後の名前に変わっています。 もっと良い回答が出れば、良いが・・。 ーーー 追記。 Function sn() sn = ActiveSheet.Name End Function というユーザー関数を作りました。 A1セルに=SN()と入れましたが、変更後再計算させないと変わり ませんでした。
お礼
ありがとうございます。 無理なのかな~残念。
- masa_019
- ベストアンサー率61% (121/197)
こんにちは。 A1に =RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))) でいかがでしょう?
お礼
ありがとうございます。 やってみました。 ん~。 全部同じ表示になってしまいました。 具体的には、最後に修正したシート名が全てのシートのA1に表示されてしまいました。 ん~。
お礼
ありがとうございます。 難しいんですね。ん~