Excel シートの新規挿入とかコピーをたくさん同時に実施する方法 普通の操作とかマクロとか

Excel これができなきゃ給料泥棒

スポンサーリンク

のっけからいきなり萎えるようなことを書くけど、今回紹介するExcel操作テク及び自作マクロは、正直言って使える場面は非常に少ないだろう。

書きたくて色々と温めているExcelネタはあるのだけど、長くて書くのに時間が掛かりそうなものばかりなので、それらを書くまでのつなぎのようなものです(マクロの記事全般が実はそれです)。

それでは今回のネタについて。
Excelを使っていて、1日~31日までのシートなど多数のシートが必要になって、

  • まったく新しく、まっさらのシートを一度に何十枚も挿入したい
  • 「1日」シートを作ったからそれを31枚コピーするというように、シートを一度に何十枚もコピーしたい

といったケースはないだろうか。

まあ無いかもしれないね。私にもそんな機会は多くない。
今回は、そういった沢山のシートを一度に手っ取り早く挿入する方法を、マクロも含めて紹介する。

シートの挿入やコピーの基本操作

まずそもそも、Excelのシートを新規挿入する方法と、アクティブシートをコピーする方法から。

新規シートの挿入

普通にシートを挿入するにはShift+ F11というショートカットキーがあって、これを知らないと給料泥棒だ。
そして今回の題材のひとつ、多数のシートを新規挿入するってやつは、そのShift+ F11を連打するだけでもかなり何とかなる。

次に、Excelのシート見出しの右端に「+」マークのボタンがあって、これを押すことでも新規シートを挿入することができる。

私もこの「+」ボタンでシート挿入をすることが多いけど、多数のシート挿入っていうのはこれでは難しいだろうね。

他にもリボンの「ホーム」タブからやる方法もあるけど、そんなのは知らなくていいから省略。

シートのコピー

次に、既存のシートをコピーした新しいシートを作成する方法。

私が最もよく使うのは、Ctrlキーを押しながらシート見出しを左か右にドラッグするというやり方。
Ctrlキーを押さずにやるのは、シートをコピーするんじゃなくて移動するって操作になる。

他に、多くの人がやるのは、

    シート見出しを右クリック
    →「移動またはコピー」
    →次の画面で「コピーを作成する」にチェックを入れ「OK」

という操作だ。

ただこのやり方は、右クリックメニューを使うので遅く、オススメしない。
別のブックにコピーするときは、私もこのやり方を使うことが多いけどね。

で、このシートのコピーってやつは、沢山の枚数コピーしまくるのは難しい。
そんな操作が必要な機会が多いとも思えないけど。

マクロ

それでは今回の題材
(1)新規シートを多数挿入する
(2)シートのコピーを多数作成する
を実施するマクロのソースコードを下記に示す。

何となく作成してみたら、ソースコードを両者共通に使い回せる部分が多かったので、今回同時に紹介することにしたわけだ。

ソースコードの長さとしては、短いとも言えないが、レベル的にはだいたい初歩レベルだろう。

ただ、途中にあるApplication.InputBox ってやつは、キャンセルボタンを押されたときの処理が難しい。

    If VarType(sheetsNum) = vbBoolean Then Exit Sub

ってやつで、それを処理してるんだけど、細かい解説は省略。

で、このマクロのメインというか実行部分となるのは「insertMultipleSheets」「copyCurrentSheet」という2つのマクロで、これらを個人用マクロブックに組み込むと良い。まあ頻繁に使うと判断したならで良いけど。

個人用マクロブックとかについては、ここを展開。

オリジナルのマクロをリボンに追加する方法はこちら

個人用マクロブックについては、こちらこちらで述べています。

 

動作としては、シートを挿入orコピーしたい枚数を聞くダイアログボックスが出てくるので、そこに枚数を入力すれば良いってだけ。

で、今回紹介するマクロについて私は割りと、重要度が低いって扱いで書いてるけど、特に既存シートをコピーするマクロ「copyCurrentSheet」の方は、使うにせよやたらめったらに多用しない方が良いかと思う。

というのもExcel VBAってやつは、シートのコピーって操作をちょっと苦手にしているのだ。
私も色々なマクロを作成するに当たって、シートをコピーしまくる処理を書くことがあるけど、何十回もコピーしてると結構バグってくれる。

もっとも今回、私がテスト用にOffice365っていうやつの最新型Excelで試した際には、300枚コピーしてみても全然バグらなかった。
最近は改善されているのかも知れないね。

スポンサーリンク