生産管理 年間シートを作ってみよう

Step 6 原紙のコピー前に存在をチェックする

既に同名のシートが存在する場合、Copyメソッド実行中にエラーが発生しますので、事前にチェックします。
存在する場合はメッセージを表示し、削除するかどうかを問い合わせます。

メニューに戻る

スポンサーリンク





実行画面

同名のシートが存在する場合、下記のメッセージが表示されます。
既に作成する年月のシートが存在しています。存在するシートを削除し、新規に作成しますか?(削除すると元に戻すことはできません。注意してください。)
確認メッセージ

スポンサーリンク





実行コード

'同名の年月のシートが存在するかチェック
Private Function ExSheetCheck() As Boolean
    Dim i As Integer
    Dim sy As String
    Dim sname As String
    Dim n As Integer
    Dim bflag As Boolean
    Dim nans As Integer
    
    bflag = True
    '作成する年
    sy = Range("C7")
    
    For n = 1 To 12
        sname = sy & "年" & n & "月"
        For i = 1 To Sheets.Count
            '同名のチェック
            If Sheets(i).Name = sname Then
                bflag = False
                Exit For
           End If
        Next
    Next
    
    If bflag = False Then
        nans = MsgBox("既に作成する年月のシートが存在しています。" & vbCrLf & _
            "存在するシートを削除し、新規に作成しますか?" & vbCrLf & vbCrLf & _
            "(削除すると元に戻すことはできません。注意してください。)", vbYesNo, "生産管理")
        If nans = vbNo Then
            ExSheetCheck = False
        End If
    Else
        ExSheetCheck = True
    End If
End Function

Private Sub CommandButton1_Click()
    Dim last As Long
    
    '作成年度の入力チェック
    If Range("C7") = "" Then
        MsgBox "作成年度を入力してください。"
        Range("C7").Activate
        Exit Sub
    End If
    
    '作成年度の入力が正しいかどうかチェック
    If ExDateCheck(Range("C7")) = False Then
        '正しくない場合は抜ける
        Exit Sub
    End If
    
    '機種名の最終行を調べる
    last = Sheets("作成メニュー").Range("C65536").End(xlUp).Row
    '9行目ならば入力されていない
    If last = 9 Then
        MsgBox "機種名を入力してください。"
        Range("C7").Activate
        Exit Sub
    End If
    
    If ExSheetCheck = True Then
        '原紙を1年分コピーする
        ExGensiCopy
    End If
End Sub

スポンサーリンク






メニューに戻る

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


Copyright (c) Excel-Excel ! All rights reserved