【Excel】シート名を取得する方法(2)|VBAを使用

お久しぶりです。管理人のTomです。約2か月ぶりの更新となります。こんなブログ?でも見に来てくださってる方ありがとうございます。引き続き更新はしていくつもりですので、今後ともよろしくお願いいたします。

今回はExcelのVBAを使ってシート名を取得する方法をご紹介します。VBAがはじめての方でも流れに沿って、作成していただければ簡単にできますので、ぜひご覧ください。

はじめに

以前に、数式バーに関数を入力して、Excelのシート名を取得する方法をご紹介しました。そのときは、CELL関数、LEN関数、FIND関数、RIGHT関数を組み合わせてシート名を取得していました。詳しくは下記をご覧ください。

Excelにおいて、シート名を取得したいときは、どのようにすればいいのでしょうか。 シート名を取得するSHEETNAME()のような関数があればいいかもし...

上記の方法でもシート名は取得できますが、今回は別の方法として、VBAを使ってシート名を取得する方法をご紹介します。

今回は例として、図1のようにブックにある3つのシート(Sheet1、Sheet2、Sheet3)に対して、VBAを使い、B1セルにシート名を入力したいとします。

図1:例

※1つのシートに対してシート名を取得するだけでもいいのですが、それだと「VBAを使わなくてもそのまま入力すればいいのでは。」と思う方もみえると思います。そこで、「たくさんのシートがあっても簡単にシート名が取得できます。」ということを少しでも感じていただくため、今回は3つのシートに対して、それぞれのシート名を取得することにします。これでなんとなくVBAって使い方によっては便利そうだなと思っていただければと思います。

コードの入力

VBAということでコードを入力していきましょう。

Alt + F11を押して、Visual Basic Editerを起動します。

次に、挿入タブ(図2の赤枠)から標準モジュールを選択します。VBAProjectの下に標準モジュールというのが追加され(図2の青枠)、メモ帳のようなエディターが出てきます。(図2の緑枠)

図2:標準モジュールの追加

それでは、コードを入力していきましょう。図2の緑枠の部分に次のように入力してください。

Sub B2セルにシート名を取得()
    For i = 1 To Sheets.Count
        Worksheets(i).Range("B1").Value = Worksheets(i).Name
    Next i
End Sub

入力ができたら保存をします。VBAを使用したときは、マクロ有効ブックという形でファイルを保存します。保存画面のファイルの種類という欄を「Excel マクロ有効ブック(*.xlsm)」として、保存してください。

ここでは、コードの説明は省略しますが(長くなってしまうため)、For文という文章ですべてのシートに対して、シート名を取得するように設定しています。3行目でワークシートの名前をB1セルに入力しています。

作成したマクロを実行する

上記のように入力できたら、作成したコードを実行してみましょう。

実行はとても簡単です。図3の赤枠、再生ボタンみたいなアイコンをクリック、または、「実行タブ」から「Sub/ユーザーフォームの実行」をクリックします。

図3:subの実行

これで、3つのシートすべてに対して、シート名がB1に入力されたはずです。

おわりに

今回は、VBAを使用して、シート名を取得する方法をご紹介しました。一見、すごい面倒なことをしているように感じる方も見えると思います。しかし、すべてのシートに対して、シート名がワンクリックで取得できたようにVBAは使い方次第でとても便利になります。VBAってなんか便利そうだなと少しでも実感していただけたら幸いです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする