プロが教えるわが家の防犯対策術!

シート名が
1."記録 "だった場合には、"記録"に修正する。
2."記録"だった場合には何もしない。
というマクロを作ったのですが、シート名が"記録"だった場合に、「インデックスが有効範囲にありません」というエラーが発生してストップしてしまいます。
どこに原因があるのでしょうか?

-----------構文----------------
On Error GoTo Kiroku_Error

Sheets("記録 ").Select ←インデックスが有効範囲にありません
GoTo Kiroku_noError

Kiroku_Error:
GoTo nextstep

Kiroku_noError:
Sheets("記録 ").Select
Sheets("記録 ").Name = "記録"

nextstep:

質問者からの補足コメント

  • 記録の後ろにある、半角スペースを取りたいということです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/06/09 11:03

A 回答 (3件)

以下のようにしてください。


”記録"と"記録 "の2つのシートが同時に存在しないという前提です。

Dim ws As Worksheet
On Error GoTo ERROR99
Set ws = Worksheets("記録 ")
ws.Name = "記録"
ERROR99:
    • good
    • 0

こんにちは



指示されている側(=エクセル)の身になって考えてみればわかるのでは?

>Sheets("記録 ").Select ←インデックスが有効範囲にありません
[エクセル] 「記録」シートを表示って言われても、そんなシートないんだよなぁ・・
   「エラーの場合は」ってあるから、そっちをやればいいのかな?

>Sheets("記録 ").Select
[エクセル] だからぁ、「記録」シートなんてないんだってばぁ!

>Sheets("記録 ").Name = "記録"
[エクセル] 無い袖は振れん。 ┐(´д`)┌
    • good
    • 0

>1."記録 "だった場合には、"記録"に修正する。


>2."記録"だった場合には何もしない。
条件一緒?
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング