Excel VBAでシートをコピーし名前をつける方法:CopyとName使用

シートをコピーし名前をつけるには、Copy後Nameを実行します。




Homeに戻る > Excel シートのTipsへ

Excelシートをコピーするには、Copyメソッドを使います。

引数に、Before で指定するとシートの前にコピーしたシートを挿入できます。

After で指定するとシートの後にコピーしたシートを挿入できます。

どちらも指定しないと、新規ブックのシートにコピーできます。

名前は、全シートを調べコピーした名前と同じならば、Nameプロパティで変更しています。

関連するTipsの「ブック・シート・セルの名前 - 初心者向けexcelの使い方」も参照してください。


Excel VBAでシートをコピーし名前をつけるVBA

Excelシートコード

実行順の説明

  1. Copy AfterでSheet2をSheet3の後ろに3枚コピーします。
  2. シート枚数分、Forでループします。
  3. 既存の「Sheet2」でコピーすると、「Sheet2(2)」の名前になるので、ファイル名が6文字より長くシート名の先頭から6文字が「Sheet2」かどうか調べます。
  4. その場合、Nameで名前を「シート1から3」に変更します。
コマンドボタンクリックイベント
Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim n As Integer
    
    'Sheet2をSheet3の後ろに追加
    For i = 1 To 3
        Worksheets("Sheet2").Copy After:=Worksheets("Sheet3")
    Next
    
    '追加し名前をつける
    n = 0
    For i = 1 To Sheets.Count
        If Len(Sheets(i).Name) > 6 And Left(Sheets(i).Name, 6) = "Sheet2" Then
            n = n + 1
            Sheets(i).Name = "シート" & n
        End If
    Next
End Sub


Excel実行前

現在のシートは「Sheet1~3」の3枚です。

実行前

Excel実行結果

「シート1~3」の3枚が追加できました。

シートが追加されシート名が付けられている

Homeに戻る > Excel シートのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved