プロが教える店舗&オフィスのセキュリティ対策術

Sub シート名()

Set sh1 = ActiveSheet

For Each sh1 In Worksheets
sh1.Name = sh1.Range("B5").Value
Next

End Sub

B5の値をシート名にするマクロを組んだのですが、
3シートある場合、1,2シート目は名前がかわるのですが、
3シート目でアプリケーション・オブジェクトの定義エラーが出ます。
お手数ですが、解決策を教えてください。

A 回答 (3件)

こんにちは



そのシートのB5セルの内容が、以下に該当していたりしませんか?
 ・空欄である
 ・すでに存在するシート名と同じである
 ・シート名に使えない文字(:や¥など)を含んでいる
 ・31文字以上ある
    • good
    • 2

そりゃそうでしょう。


同じシート名にしようとしてるんですから。
エクセルブック内のシート名はユニークが必須ですよ。
    • good
    • 0

おはようございます。



シート1~3のそれぞれのB5のセルに、どの様な文字が入っているのでしょうか?
シート3番目のB5セルを、手作業でシート名に変更できるでしょうか?
できれば、マクロでも可能だと思いますし、不可でしたら、マクロでも
不可になるかと思います。

下記、検索した記事になりますが、
https://excel-ubara.com/excelvba4/EXCEL_VBA_412. …
https://www.limecode.jp/entry/utility/illegalcha …
http://officetanaka.net/excel/vba/tips/tips68.htm
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!