アクティブシートを新規ブックにコピーするマクロを紹介します。
ソースコードはこちら↓
Sub アクティブシートを新規ブックに出力する() ActiveWindow.SelectedSheets.Copy End Sub
すさまじく短いマクロですね(笑)
このマクロを実行すると、
この「シートを移動またはコピー」
⇒「移動先:新しいブック」
⇒「コピーを作成する」⇒「OK」の手順を実行してくれます。
「データが重いので集計表シートだけ外に出して、
値貼り付けで関数を切って提出」
みたいな作業でよく使いますね。
コードは短いですが手でやろうとしたときの手順が長いので、
結構重宝する汎用マクロです。
このコードをExcel起動時に裏で開かれる「個人用マクロブック」などに搭載し、
クイックアクセスツールバーやショートカットキーへ登録して使ってください。
コードの解説
WorksheetオブジェクトのCopyメソッドは引数「After/Before」を指定しますが、
これを省略すると新規ブックに出力してくれるという便利な仕様があります。
なので、タイトルのコードを実行するのは、
ActiveSheet.Copy
だけで行けてしまうお手軽さですね。
実際は複数のシートをセットでコピーしたいこともあるので、
アクティブシートではなく選択中のすべてのシートを取得する
ActiveWindow.SelectedSheets.Copy
こちらをコードに採用しています。
1枚のシートで実行した場合はActiveSheet.Copyと同じ処理ができますので、
こちらが便利かと思われます。
ご活用ください(´∀`)
おまけ:イミディエイトウィンドウを活用する
今回のコードは完璧に1行のコードなので、
マクロにするのではなく、イミディエイトウィンドウで実行する手もあります。
読み | 単語 |
---|---|
あcc | ActiveWindow.SelectedSheets.Copy |
みたいに変換を辞書登録しておいて、
- Alt + F11 でVBEを開く
- Ctrl+ G でイミディエイトウィンドウに移動
- あcc+Space(変換)+Enter×2
で実行ができますので、
自作マクロをリボンやショトカに設置できない環境ではこちらを使ってください。
辞書登録+イミディエイトウィンドウの技は結構便利ですので、
引き出しの一つとして持っておくと、いつか何かの役に立つかもしれません。
心の片隅にでも置いておいてください。