Note: The other languages of the website are Google-translated. Back to English
ログイン  \/ 
x
or
x
今すぐ登録  \/ 
x

or

Excelで複数のシートを複数回コピーする方法は?

場合によっては、ブック内の指定されたワークシートのコピーまたは複数のコピーを作成する必要があります。 ExcelでXNUMXつのワークシートまたは複数のワークシートを複数回簡単にコピーするのに役立ついくつかの簡単な方法を次に示します。


[移動]または[コピー]コマンドを使用して、複数のワークシートのXNUMXつのコピーをアクティブなブックまたは別のブックに一度作成します

とともに 移動またはコピー Excelのコマンドを使用すると、ワークシートのXNUMXつのコピー、複数の特定のワークシート、またはすべてのワークシートを、一度にアクティブなブックまたは別のブックに作成できます。

1。 ワークシートをコピーする特定のワークブックで、[シート]タブバーで複数のワークシートを選択します。
ノート: ホールディング CTRL キーを押すと、シートタブバーでXNUMXつずつクリックして、隣接していない複数のシートタブを選択できます。 ホールディング SHIFT キーを押すと、シートタブバーの最初のシートタブと最後のシートタブをクリックして、隣接する複数のシートタブを選択できます。

2。 シートタブバーで選択したシートタブを右クリックし、を選択します 移動またはコピー コンテキストメニューから。 スクリーンショットを参照してください:
ドキュメントコピー複数シート01

3。 の中に 移動またはコピー ダイアログボックスで、次の設定を指定してください。
(1)ワークシートのコピー先のワークブックを指定してください 予約する ドロップダウンリスト。 必要に応じて、アクティブなワークブック、別の開いているワークブック、または新しいワークブックを選択できます。
(2)コピーしたシートの位置を[シート]タブバーで指定します。既存のすべてのシートから選択できます。
(3)チェック コピーを作成する このオプションをチェックしない場合、選択したワークシートは移動先のブックに移動します。
(4)をクリックします OK ボタン。

これで、選択したワークシートを指定したブックにXNUMXつだけコピーします。 これらのワークシートの複数のコピーを作成するには、操作を複数回繰り返すことができます。

アクティブなワークブックに複数のワークシートの複数のコピーを作成するには、数回クリックするだけです

一般に、複数のワークシートをコピーできます。 移動またはコピー Excelの機能。 ただし、この機能は一度にXNUMXつのコピーしか作成できません。 ここでは、Excel用のKutoolsを使用します ワークシートをコピーする ユーティリティを使用すると、数回クリックするだけで、アクティブなワークブックに必要な数のワークシートのコピーを簡単に作成できます。 フル機能の無料トライアル30日!
複数のワークシートを広告コピー01

Kutools for Excel -Excel用の300以上の便利なツールが含まれています。 30日間のフル機能の無料トライアル、クレジットカードは必要ありません! 今すぐ入手

指定したXNUMXつのワークシートの複数のコピーをVBAコードを使用してアクティブなブックに作成します

指定したワークシートのコピーを10個作成する場合は、 移動またはコピー コマンドは時間のかかる方法であり、操作を何度も繰り返す必要があります。 ただし、次のVBAコードを使用すると、ワークシートを一度に10回すばやくコピーできます。

1。 を押し続けます Alt + F11 キー、そしてそれは開きます Microsoft Visual Basic for Applications 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、モジュールウィンドウに次のコードを貼り付けます。

VBA:特定のワークシートの複数のコピーをアクティブなブックに作成します

Sub Copier ()
Dim x As Integer
x = InputBox("Enter number of times to copy Sheet1")
For numtimes = 1 To x
ActiveWorkbook.Sheets("Sheet1").Copy _
After:=ActiveWorkbook.Sheets("Sheet1")
Next
End Sub

ノート:上記のコードで、「Sheet1"コピーするシートの名前。

3。 次に、 F5 コードを実行するためのキーを押すと、必要なシートのコピー数を尋ねるプロンプトボックスが表示されます。

4。 次に、をクリックします OK、指定されたワークシートがアクティブなブックに100回コピーされました。


Kutools for Excelを使用して、複数のワークシートの複数のコピーをアクティブなブックに作成します

Excelで複数のワークシートのコピーを作成するのは簡単ですが、現在のブックで複数のワークシートの複数のコピーを作成する場合は、 移動またはコピー コマンド項目を何度も繰り返します。 ワンクリックで物事を成し遂げたいですか? とともに ワークシートをコピーする サードパーティのアドインのユーティリティ Kutools for Excel、Excelでワンクリックで複数のワークシートの複数のコピーを作成することができます。

Kutools for Excel -Excel用の300以上の便利なツールが含まれています。 30日間のフル機能の無料トライアル、クレジットカードは必要ありません! 今すぐ入手

1に設定します。 OK をクリックします。 Kutools Plus > ワークシートをコピーする。 スクリーンショットを参照してください:

ノート:クリック Kutools Plus > ワークシート > ワークシートをコピーする この機能も利用できます。

2。 で設定を適用します 複数のワークシートをコピーする ダイアログボックス:
(1)コピー元のワークシートにチェックを入れます 選択したワークシートをコピーします の項目を検索します。
(2)指定 部数.
(3)コピーされたシートの位置を決定します。たとえば、すべてのワークシートの前または後、現在のワークシートの前または後などです。
(4)をクリックします Ok ボタン。

3。 チェックしたワークシートが必要に応じて複数回コピーされたことを通知するプロンプトボックスが表示されます。をクリックしてください。 OK ボタンを押して終了します。 スクリーンショットを参照してください:

この 複数のワークシートをコピーする の特徴 Kutools for Excel 数回クリックするだけで、アクティブなワークブックに指定された複数のワークシートの複数のコピーが作成されます。 無料トライアルを!


複数のワークブックから新しいワークシートに複数のワークシートのコピーをXNUMXつ作成します

Kutools for Excelがインストールされている場合は、それを適用することもできます ワークシートを組み合わせる Excelで数回クリックするだけで、複数の閉じたブックから複数のワークシートのXNUMXつのコピーを新しいブックに作成する機能。

Kutools for Excel -Excel用の300以上の便利なツールが含まれています。 30日間のフル機能の無料トライアル、クレジットカードは必要ありません! 今すぐ入手

1に設定します。 OK をクリックします。 Kutools Plus > 組み合わせる ワークシートの結合機能をアクティブにします。

2。 ワークシートの結合–ステップ1/3ウィザードで、 ワークブックの複数のワークシートをXNUMXつのワークシートに結合します オプションをクリックし、 ボタン。 スクリーンショットを参照してください:

3。 ワークシートの結合–ステップ2/3ウィザードで、次のスクリーンショットのように実行してください。
(1)をクリック 追加 > フィレット or フォルダ ワークシートを追加するには、ワークシートのコピー元を作成します。
で(2) ワークブックリスト セクションで、ワークシートをコピーするワークブックを確認します。
で(3) ワークシートリスト セクションで、コピーするワークシートを確認します。
(4)上記を繰り返す (2) (3) コピーする他のワークブックからワークシートを選択します。
(5)をクリックします ボタン。

4。 ワークシートの結合–ステップ3/3ウィザードで、必要に応じてコピー設定を構成し、[ 終了 ボタン。

5。 新しいダイアログで、新しいワークブックを保存する宛先フォルダを指定し、で新しいワークブックに名前を付けてください。 ファイル名 ボックスをクリックし、 セットで€6 ボタン。 スクリーンショットを参照してください:

これで、別のXNUMXつのダイアログボックスが表示され、新しいワークブックを開いて組み合わせシナリオを保存するように求められます。必要に応じてボタンをクリックしてください。 これまでのところ、一度に複数のワークブックから指定されたすべてのワークシートをコピーしています。

これに 組み合わせる(ワークシート) ユーティリティを使用すると、次のリストに示すように、ワークシートとワークブックを簡単にコピーして組み合わせることができます。 無料トライアルを!
(1)複数のワークシート/ワークブックの範囲をXNUMXつのワークシートにすばやく結合します。
(2)ワークブック全体で同じ名前のすべてのワークシートをすばやくマージ/結合してXNUMXつのワークシートにします。
(3)ワークシートまたはワークブックをXNUMXつのワークブックにすばやくマージ/結合します。
(4)複数のワークシートのデータをXNUMXつのワークシートにすばやく要約/計算します。


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300以上の強力な機能。 Office / Excel2007-2019および365をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 全機能30日間の無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性が50%向上し、毎日何百ものマウスクリックが減ります。
officetab下部
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Tyler Dempsey · 3 years ago
    I am new to this I am just trying to make copies of the same sheet this is the code I am using.

    Sub Copier()
    Dim s As String
    Dim numtimes As Integer
    Dim numCopies As Integer
    numCopies = InputBox("How many copies do you need?")
    s = InputBox("Enter the name of the Worksheet you want to copy")
    For numtimes = 1 To numCopies
    ActiveWorkbook.Sheets(s).Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
    Next
    End Sub

    when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.
    • To post as a guest, your comment is unpublished.
      Jorge · 1 years ago
      Working Code

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub

      copy the entire line from ActiveWorkbook.Sheets...... that was the problem, and some spaces

      Have a great day
    • To post as a guest, your comment is unpublished.
      Schuyler · 3 years ago
      [quote name="Tyler Dempsey"]I am new to this I am just trying to make copies of the same sheet this is the code I am using.

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
      Next
      End Sub

      when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.[/quote]


      Here is the exact code you want to use:


      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub
      • To post as a guest, your comment is unpublished.
        Belva · 2 months ago
        Thank you, the last one saved my life :)
    • To post as a guest, your comment is unpublished.
      Schuyler · 3 years ago
      [quote name="Tyler Dempsey"]I am new to this I am just trying to make copies of the same sheet this is the code I am using.

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
      Next
      End Sub

      when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.[/quote]


      Double check your code and make sure you don't have a space at ActiveWorkbook. Sheets(s).Copy _ or at Sheets(Worksheets.Cou nt)
  • To post as a guest, your comment is unpublished.
    Simon · 4 years ago
    Fantastic VBA code - really helped
  • To post as a guest, your comment is unpublished.
    Barry · 4 years ago
    When I first tried it, I got the error message because I didn't change the name Sheet1. After I realized what caused the error, I researched a little further, as I did not want to be manually entering the sheet name into the macro. And when I need this feature, it is almost always for the current sheet.

    I added the line a = activesheet.name
    And revised the line after:=activeworkbook.sheets("sheet1") to activeworkbook.sheets(a).copy _

    That worked very well, but I did notice the numbering was reversed ... that didn't bother me as I was going to manually rename the new sheets anyway.

    When I saw Schuyler's post, I further revised the line activeworkbook.sheets(a).copy _ to after:=activeworkbook.sheets(worksheets.count)

    I am now satisfied with the result. My finished macro:

    Sub copies()
    Dim x As Integer
    x = InputBox("Enter number of times to copy Sheet1")
    For numtimes = 1 To x
    ActiveWorkbook.Sheets("Sheet1").Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Count)
    Next
    End Sub

    ---
    All the best, Barry
    • To post as a guest, your comment is unpublished.
      MJ · 2 years ago
      i got syntax error on "After:=ActiveWorkbook.Sheets(Worksheets.Count)


      but i dunno whats wrong... Can u help me please?
    • To post as a guest, your comment is unpublished.
      Kate · 3 years ago
      Thank you so much Barry. Your finished macro is the only thing that worked for me.
  • To post as a guest, your comment is unpublished.
    stalag 17 · 4 years ago
    where i will insert this above code in vba should i create common button then inside ?? regards.
    • To post as a guest, your comment is unpublished.
      Adi · 3 years ago
      Follow the below steps:
      1. Copy the above code
      2. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
      2. Click Insert > Module, and paste the following code in the Module Window.
      4.Then press F5 key to run the code
      5.A prompt box appears to ask you the number of sheet copies you want.
  • To post as a guest, your comment is unpublished.
    Susan · 5 years ago
    I get an error that 'numtimes' is not defined...?
  • To post as a guest, your comment is unpublished.
    Debbi · 5 years ago
    I got the same error as Theou and no one seems to have addressed it. My tabs are already named PO 51, PO 52, etc. and I replaced Sheet1 with PO 51 to copy that and got the subscript error out of range (9)

    I followed Schuyler's code to get the right order, but I still get the error and it's always due to these two lines:

    ActiveWorkbook.Sheets(s).Copy _
    Before:=ActiveWorkbook.Sheets(Worksheets.Count)
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      [quote name="Debbi"]I got the same error as Theou and no one seems to have addressed it. My tabs are already named PO 51, PO 52, etc. and I replaced Sheet1 with PO 51 to copy that and got the subscript error out of range (9)

      I followed Schuyler's code to get the right order, but I still get the error and it's always due to these two lines:

      ActiveWorkbook.Sheets(s).Copy _
      Before:=ActiveWorkbook.Sheets(Worksheets.Count)[/quote]

      Can you include your complete code to make it easier to debug? A "subscript error out of range" usually means that the code references something that doesn't exist. I find this in my own code when I've got a typo or something of that nature.
  • To post as a guest, your comment is unpublished.
    Roy · 5 years ago
    how to copy with same column widths
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      Same column widths as the original Worksheet or do you want all of the column widths to be the same?
  • To post as a guest, your comment is unpublished.
    sadaqat · 5 years ago
    yes it works thanks I have successfully make multiple copies of a single worksheet in same workbook by using vba code thnx a lot.
  • To post as a guest, your comment is unpublished.
    Gopal Krishan · 5 years ago
    Search for word "After" and change it to "Before". This will create copies in right order "Before" Sheet1. The only thing to rememeber is that numbering will always start from (2) as the original sheet will always be counted as 1st copy. Also you can replace "Sheet1" with name of the tab you are trying to copy.
  • To post as a guest, your comment is unpublished.
    juan · 6 years ago
    [quote name="MichaelTadashi"]Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?[/quote]

    Anyone was able to answer this question? I need to create 72 copies, but it would be needed to have them in order (1 throught 72, intead of 72 through 1)

    Thanks!
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      [quote name="juan"][quote name="MichaelTadashi"]Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?[/quote]

      Anyone was able to answer this question? I need to create 72 copies, but it would be needed to have them in order (1 throught 72, intead of 72 through 1)

      Thanks![/quote]

      If you want the sheet copies to be in sequential order instead of backwards, change the following line...

      [i]After:=ActiveWorkbook.Sheets[/i][u]("Sheet1")[/u]

      to this...

      [i]After:=ActiveWorkbook.Sheets[/i][u](Worksheets.Count)[/u]

      My completed code looked like the following which uses 2 InputBox prompts to allow for a dynamic copy count and worksheet name..


      [i]Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub[/i]
      • To post as a guest, your comment is unpublished.
        Karsten · 4 years ago
        How do i get the coppies continuous numbered. If the sheet i want to copy is named I002, and i want the next to be named I003,I004,I005 an so on.
  • To post as a guest, your comment is unpublished.
    Lim · 6 years ago
    Wow, thanks for the VBA code. It really helps a lot!
  • To post as a guest, your comment is unpublished.
    Dee · 6 years ago
    thanks, the vba code was huge
  • To post as a guest, your comment is unpublished.
    Theou Aegis · 6 years ago
    I tried the VBA code and got subscript out of range error (9). I replaced the sheet name with anything I could think of that was in the workbook already. Any idea what I did wrong?

    Also, is there a way to make it name each sheet incrementally? This would tie in with Michael's question, I'm sure. I'm guessing the answer to his question would be you'd need to set the After target to "sheet"+x somehow and that in turn would apply to my question if there was a way to specify what to name the new sheet. I could always just change my boss' "master" to "Aug 0" or whatever month it is, but it'd be easier for her to understand if the script did the naming automatically.
  • To post as a guest, your comment is unpublished.
    MichaelTadashi · 7 years ago
    Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?