【エクセルVBA】指定した名前の新シートを大量一括作成する方法!

f:id:yshgs_elec:20201117222851j:plain

「データの仕分けのために新しいシートをたくさん作りたい。」

「ひとつひとつ手作業でやるのは面倒だ。」

 

この記事では、こんな悩みを一瞬で解決します。

 

この記事で紹介する内容をマスターしておけば、データ集計などをする際に非常に役に立つと思います。

初心者向けに画像多めで解説していきますので、ぜひ最後までご覧ください。

 

それではさっそくやっていきます!

スポンサーリンク

はじめに

まずはじめに、この記事を読むことで、どんなことができるようになるのかをイメージ共有しておきましょう。

 

この記事では以下の画像のようにA列に記載された名前のシートを大量作成するマクロをご紹介していきます。

セルに記載された名前のシートを一括作成するという作業イメージ図

あなたのやりたいことと一致していれば、ぜひ続きをご覧ください。

 

それでは実際の処理手順の説明に移っていきます。

 

スポンサーリンク

事前準備:セルに新シート名を記述

まずは以下の画像を参考に新しいシートの名前をA2セル以降に記入するようにします。

 

基本的に同じ名前のものや間に空欄を入れなければ何個でも対応できます。

新規作成するシートの名前を記述している作業風景

また、今回紹介するVBAコードでは、この作業をするシート名はbaseという名前でないと処理できないようになっています。

 

必要に応じて、VBAコードを書き換えてください。

 

スポンサーリンク

シート作成VBAコードの記述

エクセルシートを作成できた人は、次のVBAをコードを記述していきましょう。

※VBAの使い方がわからない、というかたは以下の記事を参考にVBAが使える状態にしておきましょう。

エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説

 

◆大量のシートを一括作成するVBAコード

Sub make_new_sheet()
    Sheets("base").Activate
    '変数の型を宣言
    Dim i As Integer
    Dim new_sheet_name As String
    'シート作成開始
    Do Until Cells(2 + i, 1) = ""
        new_sheet_name = Cells(2 + i, 1)
        Sheets.Add
        Sheets(1).Name = new_sheet_name
        Sheets(new_sheet_name).Move After:=Worksheets(Worksheets.Count)
        i = i + 1
        Sheets("base").Activate
    Loop
End Sub
スポンサーリンク

マクロの実行

VBAコードが記述できたら、最後は実際に処理を実行してみましょう!

 

以下のようなbaseというシートしかない状態から、先ほど作成したVBAコードを実行します。

マクロ実行前のエクセルシートの状態

 

すると以下のようにA列に記載された名前のシートが大量作成されました。

マクロ実行後のエクセルシートの状態

※もちろんこれらの新しく作成されたシートはすべて空欄になっています。

 

スポンサーリンク

VBAコードの要点解説

最後に、VBAについて勉強したい、という人向けに、今回作成したVBAコードの要点を解説しておきます。

 

◆要点①

Sheets.Add

⇒新しいシートを作成することができます。

このときシート名はランダムにSheet*という名前が与えられています。

また、このコードを実行した際、処理を実行したシートの一つ左に新しいシートが作成されるようになっています。

 

◆要点②

Sheets(1).Name=***

⇒先頭(前から1番目)のシートの名前を変更することが出来ます。

例えば、ここをSheet(5).Nameにすると前から5番目のシート名を変更することができます。

 

◆要点③

Sheets(シート名).Move After:=Worksheets(Worksheets.Count)

⇒指定した名前のシートを一番最後のシートに移動させることが出来ます。

今回はこのスキルをと要点①②のスキルをうまく使って、各シートを作成しています。

 

これらの要点さえ抑えておけば、あとは変数宣言をしたり繰り返し処理を実施しているだけです。

 

ここまでが、VBAコードの要点説明でした。

スポンサーリンク

おわりに

というわけで今回は、指定した名前の新しいシートを、大量に一括作成する方法についてご紹介してきました。

 

冒頭にも説明したように、データ整理なんかをやるときには結構便利なので、ぜひこのページをブックマークしておきましょう!

 

このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■業務の生産性を上げたい。

■早く帰って子供と遊びたい。

こんな人はぜひ他の記事も読んでみてください。

 

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

この記事が役に立ったという方はぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

コメント

タイトルとURLをコピーしました