「データの仕分けのために新しいシートをたくさん作りたい。」
「ひとつひとつ手作業でやるのは面倒だ。」
この記事では、こんな悩みを一瞬で解決します。
この記事で紹介する内容をマスターしておけば、データ集計などをする際に非常に役に立つと思います。
初心者向けに画像多めで解説していきますので、ぜひ最後までご覧ください。
それではさっそくやっていきます!
はじめに
まずはじめに、この記事を読むことで、どんなことができるようになるのかをイメージ共有しておきましょう。
この記事では以下の画像のように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を使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。
私にわかる範囲であればご協力いたしますので。(もちろん無料です。)
最後に・・・
この記事が役に立ったという方はぜひ応援よろしくお願いします。
↓ 応援ボタン
Twitterもやっていますので、興味があれば覗いてみてください。
それではまた!!
コメント