ExcelでSheetをコピーして新しいSheetとして挿入する。
月に一度など定例で操作しているなど、この操作をいくつも繰り返すならマクロを作ってしまうと時間短縮できます。
Contents
一番右のSheetをコピーしてInputboxでSheet名を指定して一番右にSheetを挿入する方法
「Worksheets.Count」はSheet数を数えるという意味です。
Sheetは一番左を1に次を2と数えます。
一番左のSheetは「Worksheets(1)」で表します。
左から2番めのSheetは「Worksheets(2)」です。
「Worksheets.Count」で数えたSheet数で一番右のSheetを表すことができます。
一番右のSheetをコピーして、一番右にSheetを挿入する。
挿入するSheet名をインプットボックスで入力した文字で指定する。
マクロをVBAで書くのはかんたんです。
[Alt]キーを押しながら[F11]キーを押すとマクロを記述するVBE(Visual Basic Editor)が開きます。
たとえばこちらの記事を参考に読んでいただければと思います。
はじめてのExcel VBA。「マクロの記録」からVBAを読んでみよう。
Option Explicit
Sub onemore_sR()
Worksheets(Worksheets.Count).Copy After:=Worksheets(Worksheets.Count)
Dim sR As String ‘変数「sR」はもちろん別の名前でOKです
sR = InputBox(“Sheet名を入力してください”)
ActiveSheet.Name = sR
End Sub
[Alt]キーを押しながら[F8]キーを押すとマクロ実行画面が現れます。
一番左のSheetをコピーしてInputboxでSheet名を指定して一番右にSheetを挿入する方法
一番左のSheetは「Worksheets(1)」で表すことをみました。
一番右のSheetは「Worksheets(Worksheets.Count)」で表しました。
フォーマット(ひな形)となるSheetが一番左にあり、コピーして一番右にSheetを挿入しSheet名をインプットボックスに入力して指定するには以下のように書けます。
Option Explicit
Sub onemore_sL()
Worksheets(1).Copy After:=Worksheets(Worksheets.Count)
Dim sL As String ‘変数「sL」はもちろん別の名前でOKです
sL = InputBox(“Sheet名を入力してください”)
ActiveSheet.Name = sL
End Sub
マクロ無しでSheetコピーして新しいSheetとして作成するのは意外に手間
Sheetをコピーして場所を指定して挿入してSheet名を変更する。
難しくはありませんが、手間がかかります。操作する手数が多いのです。
コピーしたいSheetを選択する。
右クリックする。
「移動またはコピー(M)」を選択する。
「コピーを作成する(C)」をチェックする。
[OK]を選択する。
コピー(挿入された)Sheet名を選択して右クリックして「名前の変更(R)」(あるいはSheet名をダブルクリック)する。
Sheet名を変更する。
そしてSheetをドラッグして移動する。
けっして難しい操作ではありませんが、繰り返す作業なのであればマクロを作ってしまえばラクですし時間短縮ができます。
【編集後記】
今日の記事で紹介したSheetの使い方は決して合理的なものではありません。わざわざ1つづつSheetを分ける必要も本来ありません。
しかし職場によってはやり方が決まっていて指定された方法に従って作業することもあるでしょう。
そんな場合でも少しでも作業効率を上げて、残業をすることなく帰りたいものです。
本来的な改善ではなくてもマクロ・VBAを役立てることができます。
小倉健二(労働者のための社労士・労働者側の社労士)Office新宿(東京都)
最新記事 by 小倉健二(労働者のための社労士・労働者側の社労士)Office新宿(東京都) (全て見る)
- 【産休・育休】厚生年金・健康保険の保険料免除について知ろう - 2023年3月29日
- 2023年4月1日【出産育児一時金】8万円増額1児50万円支給 - 2023年3月16日
- 【60歳で老齢年金繰上げ受給を検討中】繰上受給したあとで障害年金請求できるか? - 2023年3月14日