即効テクニック |
サンプルでは、まずInputBoxでシート名を入力します。 シート名は数字のみに限定しています。 既に同じシート名が使われていないか確認し、使われていたら再度入力、使われていなかったらシートを一番後ろに追加して名前を付けます。
Sub Sample() Dim myWS As Object Dim InputName As String Dim i As Integer InputData: 'InputName = Application.InputBox(Prompt:="シート名を入力してください", Title:="新規") '<何も入力せずOKの場合、処理を終わりにします。> If InputName = "" Then Exit Sub '<キャンセルの場合、処理を終わりにします。> If InputName = "False" Then Exit Sub '<数字以外の入力があった場合、再入力します。> If Not IsNumeric(InputName) Then MsgBox("入力できるのは数字だけです") GoTo InputData End If '<全角が混じっている場合に半角へ変換します。> InputName = StrConv(InputName,vbNarrow) '<同じワークシート名がないか確認します。> For Each myWS In Sheets If myWS.Name = InputName Then MsgBox "この名前は既に使われています。再入力してください。" GoTo InputData End If Next '<新しいワークシートを一番後ろに作成します。> Worksheets.Add after:=Worksheets(Worksheets.Count) '<追加されたワークシートに入力された名前を付けます。> ActiveSheet.Name = InputName End Sub