ワークシートを追加して、ワークシートに名前を付ける
 サンプルでは、まず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




戻る


Excel Word Access VBA! モーグ