過去に「Excel シート名」記事などで、「CELL」関数を使ってシート名を任意のセルに表示する方法をご紹介しました。
ならば、その逆はどうでしょう?
つまり、シート内のあるセルを参照してそのテキストをシート名に反映させるにはどうしたらよいでしょうか。

基本的に、関数でシート名を変更することはできません。

でも、マクロ(VBA)を使うとできるそうです。
ネット検索すると、Worksheet.Name プロパティに任意のテキストを代入することでシート名を変更できるとのことです。

適用しようとする Excelブックを開きます。
一例として B1セルに「葛飾ストア」と入力しました。
このセルに入力されたテキストをシート名として表示しようとしています。

マクロ(VBA)を編集しますので、[開発]タブを表示しておきます。
[開発]タブを表示する方法は「Excel VBAコードを書く最初の一歩」記事でご紹介していますのでご参照ください。

そして、[Alt]+[F11]キーを押して VBA (VBE)を起動します。
[挿入]-[標準モジュール]をクリックし、現れた画面に以下のコードを入力します:

Sub シート名を設定()
  ActiveSheet.Name = ActiveSheet.Range("B1")
End Sub

マクロ名「シート名を設定」は他と重複しない限り英文字でも日本語文字でも構いません。

[開発]-[マクロ]を開き、「シート名を設定」を選択し「実行」します。(下図)

 

あるいは、BVE画面で [F5]キーを押して、同様に「シート名を設定」を選択し「実行」しても構いません。

すると、シート名が「葛飾ストア」に変わりました。(下図)

 

このマクロを含めて保存するなら、このブックを「マクロ有効ブック(*.xlsm)」として保存します。

なお、シート名には使えない文字があります:
  ' * / : ? [ \ ] ’ ' * / : ? [ \ ] ¥
これらの文字を含んでいるとエラーとなります。
ご注意ください。

ところで、上記の例では B1セルという特定のセルを参照しましたが、下記のように書き換えると、アクティブセルのテキストをシート名として表示できます:

Sub シート名を設定()
  ActiveSheet.Name = ActiveCell.Value
End Sub

そして、B3セルに「=TEXT(TODAY(),"yyyy-m-d")」と入力し、改めて B3セルを選択して [開発]-[マクロ]で「シート名を設定」を選択し「実行」します。(下図)

 

単に「=TODAY()」とすると、その表示テキスト「2023/9/15」に「/」を含んでおりエラーとなります。
それを回避するため「-」に置き換えています。