[[20260225133823]] 『セル内の文字をシート名にしたい』(なはなは) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『セル内の文字をシート名にしたい』(なはなは)

はじめまして
シート名をセル内にする関数がありますが逆にセル内の文字をシート名に反映させる方法はありませんか?
ネットで調べたら出来そうだったのですが条件も違うしエラーになって初心者の私には何がどう違うのかわからなかったのでこちらにたどり着きました。

シートは全部で10シートあり、そのうち2〜7シート目のセルを書き換えたらそれをシート名に変えたいんです。
書き換えるセルはO列4行目固定です。

ネットにあった命令文は以下の通りですが2行目でエラーになって止まります。

    Dim Ws As Worksheets

    For Each Ws In Worksheets
     Ws.Active
     Activsheet.Name = ActiveCell
   Next Ws

   Worksheets(1).Active

繰り返しではなくともO4に入力されたら即時シート名が変わるでもいいです。
教えていただけると助かります。
よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


すみません
命令文を間違えてました。
実際には
    Dim Ws As Worksheets

    For Each Ws In Worksheets
     Ws.Activate
     Activsheet.Name = ActiveCell
   Next Ws

   Worksheets(1).Activate
とありました。
どちらにしても2行目でエラーになります。(型が一致しない)
(なはなは) 2026/02/25(水) 13:52:01

 >    Dim Ws As Worksheets
       Dim Ws As Worksheet    '←最後の「s」を取る

   他にもミスがありますが、誤記だと思うのでスルー。

(半平太) 2026/02/25(水) 14:27:25


 >繰り返しではなくともO4に入力されたら即時シート名が変わるでもいいです。

 ThisWorkbookに

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Index < 2 Or Sh.Index > 7 Then Exit Sub
    If Target.Address = "$O$4" Then
        Sh.Name = Target.Text
    End If
 End Sub
 ではどうだろうか?

 なお、エラー処理は含めていない(シート名に使えない文字を入力、他のシートと同じ名前など)
(ねむねむ) 2026/02/25(水) 14:41:05

ねむねむさん

ThisWorkbook!!
ありがとうございます。
なりました。
びっくりしました。
ちゃんと指定以外のシートは反映しないんだと感動してます。
内容が半分もわからないので紐解いて勉強したいと思います。
助かりました。感激です。

半平太さんも間違いのヒントをありがとうございました。

(なはなは) 2026/02/25(水) 14:54:11


 なはなはさんの回答に補足で

 「シート名に使えない文字」はそのまま検索すればすぐ出てきます。
 それらの文字を置換する関数もネットに転がっています

 Function シート名禁則文字を削除(ByVal 元テキスト As String) As String
     Dim Arr禁則文字リスト
     Arr禁則文字リスト = Split("',’,?V,*,:,?,\,¥,*,/,:,?,[,[,],],\,/,<,>", ",")
     Dim 禁則文字
     For Each 禁則文字 In Arr禁則文字リスト
         元テキスト = Replace(元テキスト, 禁則文字, "")
     Next
     シート名禁則文字を削除 = 元テキスト
 End Function

 上記関数を標準モジュールに記載した上で

 >Sh.Name = Target.Text
 なはなはさんの回答のこの部分を

 Sh.Name = シート名禁則文字を削除(Target.Text)

 このように変更すれば可能です。

 参考サイト: https://www.limecode.jp/entry/utility/illegalcharacters-in-worksheetname
 ※実行確認はしていませんが、どのようなコードでも基本的な考え方は殆ど同じです

(Asa) 2026/02/27(金) 20:32:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.