• ベストアンサー

エクセルでシート名をセルに表示させたい。

エクセルで複数のシートからなるファイルがあり、シート名は「4月」「5月」「6月」・・・となっています。 このシート名をそれぞれのシートの「A1」セルに表示させる方法はありますか?シート名を変更したときに「A1」セルも連動して変わるようにしたいのです。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.2

下記の式でも No.1さんと同じ結果になります。 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) なお、上式を入力する前に、当該ブックは名前を付けて保存しておくことが肝要です。

papaiyaiya
質問者

お礼

ありがとうございます。 難しいんですね。ん~

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#3>無理なのかな~残念。 #2さんの回答を実際に試してみましたか?

papaiyaiya
質問者

お礼

出来ました。出来ました。 また、出来なかった理由もわかりました。 ファイルを保存していなかったからでした。 ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

エクセル操作では、実現不可能でしょう。通常のエクセル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()と入れましたが、変更後再計算させないと変わり ませんでした。

papaiyaiya
質問者

お礼

ありがとうございます。 無理なのかな~残念。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 A1に =RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))) でいかがでしょう?

papaiyaiya
質問者

お礼

ありがとうございます。 やってみました。 ん~。 全部同じ表示になってしまいました。 具体的には、最後に修正したシート名が全てのシートのA1に表示されてしまいました。 ん~。

関連するQ&A