• ベストアンサー

ExcelのVBでsheet名を一気に変させるのは可能?

極窓等を使用すると拡張子など一気に変換できます。 ↑これと似た操作をExcelのVBを使用し、sheet名を一気に変換することは可能でしょうか? 手作業だとかなりのsheet数があるので時間短縮のため何か良い方法はないかと思いまして。 ※注意点 1.sheet名は規則的かつ配列等に対応できるような名前を使用する。 2.ファイル単位でデータは管理しません。 (1A.xls、2A.xls、3A.xls … 等は禁止) 例>sheet名 1A 2A 3A 4A … → 1B 2B 3B 4B … と一気にsheet名を変更。 とこんな感じにしてみたいのですが、可能でしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

確たる変更ルールが存在しないシート名の命名をした場合(プログラムで組めない場合)、シート名タブの、見た目で左から順々に、A1セルから順に新変更後のシート名を入力しておきます。場合によっては、新ファイル名の入力時に、オートフィルが使えるかもしれません。 Sub test01() Dim sh As Worksheet i = 1 For Each sh In Worksheets sh.Name = Cells(i, "A") i = i + 1 Next End Sub を実行します。 既回答より少し自由度が上がります。

u-mesh12
質問者

お礼

お礼が送れてすみませんm(__)m こんな簡単にできるとは…!? とても参考になりました。 アドバイスありがとうございました。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Excel VBAでコレクションWorksheetsを通じて、Worksheetオブジェクトにアクセスする方法を知っているなら、可能だと思います。こんな感じ: For Each sh In Worksheets sh.Name = rename( sh.Name ) Next rename()は、ユーザ定義関数として適切に定義してください。

u-mesh12
質問者

お礼

Worksheetオブジェクト 色々調べて試してみました。 私には結構使い勝手のあるも言語になりそうです(^_^; アドバイスありがとうございました。

関連するQ&A