📊 Excel VBA Top100
📋

CopySheet

シート管理

シートを複製する

🎬 デモGIF準備中

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行するとコピー元のシート名と新しいシート名を入力するダイアログが表示される

💻 VBAコード

' CopySheet
' -----------------
' Macro Name: CopySheet
' Description: シートを複製する
' Parameters: なし
' Returns: なし
' Usage: 実行するとコピー元のシート名と新しいシート名を入力するダイアログが表示される
' -----------------

Sub CopySheet()
    Dim sourceWs As Worksheet
    Dim newWs As Worksheet
    Dim sourceName As String
    Dim newName As String
    Dim i As Long

    On Error GoTo ErrorHandler

    sourceName = InputBox("コピーするシート名を入力:", "シートコピー", ActiveSheet.Name)

    If sourceName = "" Then
        Exit Sub
    End If

    On Error Resume Next
    Set sourceWs = Worksheets(sourceName)
    On Error GoTo ErrorHandler

    If sourceWs Is Nothing Then
        MsgBox "「" & sourceName & "」は存在しません。", vbExclamation
        Exit Sub
    End If

    newName = InputBox("新しいシート名を入力:", "シートコピー", sourceName & "_Copy")

    If newName = "" Then
        Exit Sub
    End If

    For i = 1 To Worksheets.Count
        If Worksheets(i).Name = newName Then
            MsgBox "「" & newName & "」は既に存在します。", vbExclamation
            Exit Sub
        End If
    Next i

    Set newWs = sourceWs.Copy(After:=sourceWs)
    newWs.Name = newName

    MsgBox "「" & sourceName & "」を「" & newName & "」としてコピーしました。", vbInformation
    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub