|
一つの条件分岐をするたびに、判定に合わなかったらマクロを中止する、
という書き方にした方が、可読性がよくなります。コードはこんな感じです。
Sub 日程表COPY()
Dim b As String, Snm As String
Dim WS As Worksheet
Dim Cnt As Integer
If MsgBox("新規ヘルパーの登録をしますか?", _
vbYesNo + vbInformation, "ヘルパー新規登録") = vbNo Then Exit Sub
Do
b = InputBox("登録するヘルパーの氏名を入力してください" & _
Chr(13) & "姓と名の間にスペースを入力してください。", _
"ヘルパー登録", "例:あいう えお")
If b = "" Then Exit Sub
Loop While InStr(1, b, Chr(32)) = 0
Snm = Split(b, Chr(32))(0)
For Each WS In Worksheets
If WS.Name Like Snm & "*" Then Cnt = Cnt + 1
Next
If Cnt > 0 Then
Snm = Snm & "(" & Cnt + 1 & ")"
End If
Application.ScreenUpdating = False
Worksheets("日程表 原本") _
.Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Range("F3").Value = b
.Name = "日程表" & Snm
End With
Worksheets("TOP").Activate
Application.ScreenUpdating = True
End Sub
|
|