
いつもお世話になります
今同じシート名の存在を確認して、同じ名前のシート名が有る時は削除してから
シートを追加し、名前を変更するステートメントを作成しています
File2="WC(品)"
For Each ws In Worksheets
If ws.Name = FILE2 Then
Application.DisplayAlerts = False
Worksheets(ws.Name).Delete
Application.DisplayAlerts = True
Exit For
End If
Next ws
Worksheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = FILE2
既存のシートには前回作った"WC(品)"が有ったのですが
シートの有無チェックには掛からずに下記のエラーが発生しました
エラー:"この名前は既に使用されています。別の名前を入力してください"
エラーが出たときはちょっとびっくりしました。
今はStrConvを使ってエラーを回避させていますがちょっと気に掛かるので教えてください
ActiveSheet.Nameは全角と半角の区別は出来ないのでしょうか?
以上、よろしくお願い申しあげます
No.2ベストアンサー
- 回答日時:
こんにちは
>ActiveSheet.Nameは全角と半角の区別は出来ないのでしょうか?
.Nameの結果は文字列ですので、文字列比較で大文字小文字を混同することはありません。
区別できているからこそ、ご提示のチェックルーチンでは別物と見做されていることになります。
一方で、マクロは「手操作の自動化」のようなものですから、手操作でテストしてみればわかります。
例えば、「WC(品)」というシートがある状態で、
・"WC(品)"というシートを別に作成しようとすると、ご質問のエラーが出ます
(名前を逆にしても、当然ですが同様です)
・Worksheets("WC(品)").Activate を実行してみると、「インデックスが~」のエラーとなり、認識されません。
このことから、シート作成時のチェックでは「全角半角を同一視」しているけれどシートの指定時などでは「全角半角は区別される」という仕様になっているらしいことがわかります。
M$お得意の勝手な仕様ですが、そうなってしまっているので、文句を言っても仕方のないところですね。
No.3
- 回答日時:
vba中のチェックでは区別します。
シート名を付けるActiveSheet.Name = FILE2が区別していません。
手でシート名を変える操作をして見れば解ります。
半角、全角を区別していません。
これはvbaのスペックでは無くて、エクセルのスペックです。
ご回答の送信、ありがとうございます
そうなんですね、Excelのスペックなんですね
分りました、諦めます
これからもよろいたしますいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです 1 2024/02/19 21:37
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです 3 2024/02/05 22:10
- Visual Basic(VBA) VBAで特定のシート以外のシート名を変更したい 2 2024/02/14 13:00
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) Excel VBA 文字列のセルを反映させたいです 2 2024/02/24 00:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
VisualStudioでタブやスペース...
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
全角カタカナを半角カタカナに...
-
コンボボックスに貼り付け文字...
-
英大文字、小文字の変換について
-
英数字のみ全角から半角に変換
-
VBAの文字列の中に”(全角のダブ...
-
Accessでのグループ化で全角・...
-
[VBScript]バイト長の判定
-
全角英数字の必要性が理解できない
-
Visual Studioで ユニコード "...
-
エクセルの検索が正しくできな...
-
アクセスで文字列中の空白を削...
-
全角ひらがな、漢字をマッチさ...
-
char型全角数字から、int型半角...
-
キー入力
-
VBで、String型のデータが、...
-
正規表現の全角、半角、大文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
全角英数字の必要性が理解できない
-
word差し込み印刷 半角カタカ...
-
エクセルの検索が正しくできな...
-
メモ帳の段落の揃え方
-
エクセルにMicrosoft Barcode C...
-
COBOL・全角判定
-
エクセルでの”々”の扱い
-
プログラミングでは、半角括弧...
-
char型全角数字から、int型半角...
-
VB.net、テキストボックス入力...
-
全角/半角キーをSendkeys関数で...
-
明細書の英数字の全角・半角に...
-
ダブルコーテーションの置換
-
いまスマホからカードの申込み...
-
[Excel VBA] ODBCによる外部デ...
-
VBで、String型のデータが、...
おすすめ情報