copyメソッドでエラー発生


kak  2007-09-16 00:56:21  No: 99446

copyメソッド実行に
'実行時エラー1004'
Worksheet クラスのCopyメソッドが失敗しました。
といったエラーが発生してしまいます。
原因、解消方法など分からずに困っております。
ソースは以下になりますので、誰か助言をお願い致します。


Sub CreateText()
    
    Call ChooseSheet(Worksheets("database"))
    
    '先頭シートをアクティブ
    ThisWorkbook.Worksheets("execute").Activate
    
End Sub

'##
'## フォーマットの決定
'##
Sub ChooseSheet(currentSheet As Worksheet)

    Dim i As Integer

    Const format As String = "format"
    Const format2 As String = "format2"
    
    i = 1
    
    Do
    
        i = i + 1
        
        Call deleteSheet
        
    Loop Until currentSheet.Cells(i, "C") Like "*"
    
    Do While currentSheet.Cells(i, "C") <> ""
    
    
    
        '活動日により作成フォーマットを分ける
        If currentSheet.Cells(i, "S") = "○" And currentSheet.Cells(i, "T") = "○" Then
        
            Call CreateNewSheet(currentSheet, format2, i)
        
        ElseIf currentSheet.Cells(i, "S") = "○" Then
        
            Call CreateNewSheet(currentSheet, format, i)
        
        ElseIf currentSheet.Cells(i, "T") = "○" Then
        
            Call CreateNewSheet(currentSheet, format, i)
        
        Else
            
            MsgBox "参加者名: " + currentSheet.Cells(i, "C") + " さんの活動日に記載がありません。"
            Exit Do
            
        End If
        
        i = i + 1
    
    Loop

End Sub



'##
'## フォーマットコピー
'##
Sub CreateNewSheet(currentSheet As Worksheet, format As String, i As Integer)

    Dim headerTitle As String
    
    Const day06 As String = "10月6日"
    Const day07 As String = "10月7日"
        
    Worksheets(format).Copy After:=Worksheets(Worksheets.Count)

    ActiveSheet.name = currentSheet.Cells(i, "A")
        
    'チーム設定
    ActiveSheet.Cells(26, "V") = currentSheet.Cells(i, "B")
    
    '活動日設定
    If format = "format" Then
    
        ActiveSheet.Cells(29, "Y") = day06
    
    Else
    
        ActiveSheet.Cells(29, "Y") = day06
        ActiveSheet.Cells(30, "G") = day07
    
    End If
    
    'ヘッダー設定
    headerTitle = currentSheet.Cells(i, "C")
    ActiveSheet.PageSetup.LeftHeader = "&""MS Pゴシック""&10" & headerTitle + "  様"
           
End Sub


'##
'## 重複名シート削除
'##
Sub deleteSheet()

    Dim j As Integer
    Dim str As String
    Dim tempSheet As Worksheet
    
    j = 1
    
    For Each tempSheet In Worksheets
    
        str = j
        
        
    
        If tempSheet.name = str Then
        
            Application.DisplayAlerts = False
            tempSheet.Delete
        
            j = j + 1
        
        End If
    
    Next tempSheet

End Sub


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加