• ベストアンサー

ワークシート名を変更するマクロ?

エクセル2000です。 1つのブックに約30枚のワークシートがあります。 そのうちの約20枚のシート名に「ドイツ」という文字が含まれています。このドイツという文字列を全て「独語」に置き換えたいのですが、 Sub test() For Each WS In ThisWorkbook.Worksheets On Error Resume Next WS.Name.Replace what:="ドイツ", replacement:="独語" Next End Sub ではダメでした。どう記述すればいいのでしょうか?

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

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

>Replace$の$はどういう意味なのでしょうか?ご教示いただけると幸いです。 Replace と Replace$は基本的に同じですが、 引数と返値のデータ型が異なります。 Replaceは、引数と返値はvariant型で、 Replace$は、引数と返値はstring型です。 string型で処理するので、Replace$の方が実行速度が速いですが、nullの処理ができません。 Replace(null) の返値はnull Replace$(null) とすると、エラーになります。 今回の場合は、ワークシート名に対して実行するので、nullが引数になることはありません。

AQUALINE
質問者

お礼

Guten Abend. そして、Vielen Dank! 何度もありがとうございました。 Auf Wiedersehen.

その他の回答 (1)

回答No.1

Guten Tag. 次の記述でどうでしょうか? Sub test() For Each WS In ThisWorkbook.Worksheets On Error Resume Next WS.Name = Replace$(WS.Name, "ドイツ", "独語") Next End Sub

AQUALINE
質問者

お礼

ありがとうございました。 完璧です。 Replace$の$はどういう意味なのでしょうか?ご教示いただけると幸いです。

関連するQ&A