タイトルのテキスト
タイトルのテキスト
タイトルのテキスト
タイトルのテキスト

シートの名前の一覧作成と一括で変更をマクロを徹底解説【For文を使ったループ処理:取得】

VBA

t f B! P L
タイトル画像

この記事では、エクセルでワークシートの名前の一覧を作成し、またワークシートからシート名を読み込むマクロについて紹介していきます。

エクセルのシート名の編集、結構めんどくさいです。

シートが少なかったらいいんですが、会社で共有で使っているエクセルファイルなどはみんなが、結構好き勝手にワークシートを増やしていく傾向にあるので最終的にはごみ屋敷です。

そんな、めんどくさいシート名の編集作業を少しでも楽にすべく、会社ではマクロを組んでつかっています。

今回はそのVBAのコードを紹介します。

コピペすればすぐに使えるようにしているので、コピペして使ってみてください。

下記がワークシートの名前の一覧を作るコードとなります。 

①ワークシートの名前の一覧を作るコード

Sub シートの名前を抽出()

Worksheets(1).Select

For i = 1 To Worksheets.Count

nam = Worksheets(i).Name

Cells(i, 1).Value = nam

Next

End Sub 

 

使い方とコードの中身の解説(一覧作成)

①コードのコピペ

下記のVBAのコードを「個人用マクロブック」か「作業中のブック」の標準モジュールに入力します。

「個人用マクロブック」でも、「作業中のブック」どちらに書き込んでもらってもOKでが、「作業中のブック」に保存する場合には、拡張子を「.xlsm」に変更しないと保存ができませんので、ご注意ください。

 

②マクロの実行

「実行」の「ユーザーフォームの実行」から実行してみましょう。


③結果の出力

一番左端にあるワークシートのセルA1から順に現在のブックにあるワークシートの名前の一覧が作成されました。

 

コードの解説(一覧作成)

VBAのコードを作成していきます。

 Sub シートの名前を抽出()

①マクロの名前です。

 Worksheets(1).Select

②一番左端にあるワークシートを選択しています。

 For i = 1 To Worksheets.Count

③ワークシートカウント関数でワークシートの数を数えて、

 それを変数iに代入しています。

 Forステートメントでワークシートの数だけ繰り返します。

 nam = Worksheets(i).Name

④ワークシートの名前を順番に取り出し、変数「nam」に格納しています。

 Cells(i, 1).Value = nam

⑤Cellオブジェクトのi行、1列目に順番にワークシートの名前を書きだします。

 Next

⑥forステートメントの最後にnextを付け、繰り返しの終わりを明記します。

 End Sub

⑦VBAコードの終わりです。

  

②ワークシートの一覧から各シートに名前を読み込むコード

上記の記事ではワークシートの名前を読み込んで、一番左端のワークシートに「シート名の一覧」を作成するマクロを解説しました。

以下ではその一覧を編集して、その結果をワークシートに読み込ませるマクロについて解説していきます。

下記がそのマクロのコードです。

 Sub シートの名前を読み込み()

 Worksheets(1).Select

 For i = 1 To Worksheets.Count

 Worksheets(i).Name = Cells(i, 1).Value

 Next

 End Sub  

使い方とコードの中身の解説(読み込み)

①一覧の編集

 上記に生地で作成したワークシートの一覧の一部を編集し、「商品A」「商品B」としました。

 ②コードのコピペ

下記のVBAのコードを標準モジュールに入力します。

「個人用マクロブック」でも、「作業中のBOOK」の「標準モジュール」のどちらに書き込んでもらってもOKですが、「作業中のブック」に保存したい場合は、拡張子を「.xlsm」形式にして保存しなおさないといけないので注意してください。

③コードの実行 

「実行」の「ユーザーフォームの実行」から実行してみましょう。


 ④結果の出力

先ほど編集した部分がシート名に読み込まれ、シート名が「商品A」「商品B」に変更されました。

 

コードの解説(読み込み)

 VBAのコードの解説をしていきます。

解説

 

Sub シートの名前を読み込み()

①マクロの名前です。

Worksheets(1).Select

②一番左端のワークシートを選択しています。

For i = 1 To Worksheets.Count

③ワークシートカウント関数を使って、シートの数をカウントして、

 ワークシートの数だけ繰り返しています。

Worksheets(i).Name = Cells(i, 1).Value

④一覧の上から順番にワークシートの名前に置き換えていっています。

 Next

Forステートメントの最後です。

 End Sub

VBAのコードの終わりです。

/fieldset>

 

以上となります。

 

おわりに

今回のマクロはワークシートの一覧を作るマクロと

一覧からワークシートの名前に読み込ませるマクロの紹介でした。

使用するときは、一番左に空白のワークシートを準備して使用してください。

 

ワークシートの名前の変更などのめんどくさい作業はVBAで自動化させましょう。 

 

koneka1208

koneka1208

自己紹介

自分の写真
エクセル好きの窓際会社員です。 エクセルの操作法や日々の会社で得た知見などを発信していきます。 よろしくお願いします。

ブログ アーカイブ

連絡フォーム

名前

メール *

メッセージ *

QooQ