
初心者ですが、誰かが紹介していたので同じように入れてみました。
入力した登録№がそのままシート名になって便利だなと使っていたのですが、
同じ登録№を入力するとシートの名前変更のところでエラーになってしまいます。
同じシート名なら(2)(3)と連番を付加してエラーにならないようにするには
どうすればよいでしょうか?
Private Sub CommandButton1_Click()
Dim Sheet_Name As String
'入力'
Sheet_Name = InputBox("登録№***を5桁で入力して下さい。「登録用シートが作成され
ます。」 ")
'「キャンセルボタン」または「×ボタン」を押した場合'
If Sheet_Name = "" Then
Exit Sub
Else
End If
'シートのコピー'
Worksheets("書式サンプル").Copy Before:=Worksheets("書式サンプル")
'シートの名前変更'
ActiveSheet.Name = Sheet_Name
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは
多分、こんな感じになるのだけれど、
Private Sub CommandButton1_Click()
Dim Sheet_Name As String, chkSH As String
Dim i As Integer
Dim sh As Worksheet
'入力'
chkSH = InputBox("登録№***を5桁で入力して下さい。「登録用シートが作成されます。」 ")
'「キャンセルボタン」または「×ボタン」を押した場合'
If chkSH = "" Then Exit Sub
Sheet_Name = chkSH
CHK:
For Each sh In Worksheets
If sh.Name = Sheet_Name Then
i = i + 1
Sheet_Name = chkSH & "(" & i & ")"
GoTo CHK
End If
Next
'シートのコピー'
Worksheets("書式サンプル").Copy Before:=Worksheets("書式サンプル")
'シートの名前変更'
ActiveSheet.Name = Sheet_Name
End Sub
No.2
- 回答日時:
こんばんは。
少し変わった方法ですが、エラー処理で回避する方法です。
試してないので、エラーになるかも知れませんが、適宜修正して下さい。
最初の方に、下記を記載。
Dim N as Long,Sheet_Name_BackUp as String
On Error GoTo myError
'シートのコピー'
N=1
Sheet_Name_BackUp = Sheet_Name
ActiveSheet.Name = Sheet_Name
On Error Goto 0
Eixt sub
myError:
N=N+1
Sheet_Name = Sheet_Name_BackUp & "(" & N & ")"
Resume
End Sub
エラーが発生すると、myErrorの行へジャンプ
エラー処理をして、Resumeで、エラーの命令に戻る。
少しでも参考になればと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シートを任意の日付で自動で作...
-
日報をエクセルで作成したいの...
-
エクセルで複数設定したハイパーリンク先...
-
別シート参照のセルをシート毎...
-
Excelで金銭出納帳。繰越残高を...
-
EXCELで1ヶ月分の連続した日付...
-
複数シートの色付きセルがある...
-
シートの保護のあとセルの列、...
-
EXCELで同一フォーマットのシー...
-
Excelのシートを、まとめて表示...
-
エクセルでファイルを開いたと...
-
至急お願いします。エクセルシ...
-
エクセルで前のシートを連続参...
-
Accessのスプレッドシートエク...
-
エクセルで複数シートを別のシ...
-
【Excel関数】値が合致するセル...
-
シート1に列挙したNGワードを...
-
VBAでシートコピー後、シート名...
-
複数のシートの同じセルに入力...
-
エクセルで、「1つ前のシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別シート参照のセルをシート毎...
-
エクセルの複数シートの保護を...
-
エクセルで前シートを参照して...
-
前の(左隣の)シートを連続参...
-
エクセルでファイルを開いたと...
-
EXCEL:同じセルへどんどん足し...
-
Excelで金銭出納帳。繰越残高を...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
EXCELで1ヶ月分の連続した日付...
-
エクセル 計算式も入っていない...
-
シートの保護のあとセルの列、...
-
特定のシートの削除を禁止した...
-
Excel、同じフォルダ内のExcel...
-
エクセルVBAでパスの¥マークに...
-
VBAでシートコピー後、シート名...
-
エクセルで複数設定したハイパーリンク先...
-
VBAで条件によりフォントサイズ...
-
excelでシート毎の最終更新日を...
-
シートを任意の日付で自動で作...
おすすめ情報