![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になります
今同じシート名の存在を確認して、同じ名前のシート名が有る時は削除してから
シートを追加し、名前を変更するステートメントを作成しています
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
VBAに詳しい方教えてください。
Visual Basic(VBA)
-
VBAコードのインデント表示
Visual Basic(VBA)
-
VBA 複数条件の分岐処理の上手な方法
Visual Basic(VBA)
-
-
4
VBAなくなるの?
Visual Basic(VBA)
-
5
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
6
Vba SelStart、SelLen教えてください教えてください
Visual Basic(VBA)
-
7
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
8
VBA指定行削除
Visual Basic(VBA)
-
9
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
10
エクセルVBAコードで教えて下さい!
Visual Basic(VBA)
-
11
Excel 範囲指定スクショについて Excelで範囲指定してスクリーンショットする機能がありますが
Visual Basic(VBA)
-
12
VBAでCOPYを繰り返すと、処理が途中でアイドルする原因はなんでしょうか
Visual Basic(VBA)
-
13
Vba 実数および実数タイプの変数について教えてください
Visual Basic(VBA)
-
14
プログラミング
Visual Basic(VBA)
-
15
【ExcelVBA】インデックスが有効範囲にありません。の理由が分かりません
Visual Basic(VBA)
-
16
VBAを使用した時間管理
Visual Basic(VBA)
-
17
エクセルVBAにて =A1=B1とすれば A1とB1のセル内容が一緒だった場合 TRUE 違っていれ
Visual Basic(VBA)
-
18
エクセルVBAについて
Visual Basic(VBA)
-
19
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
20
VBA一覧取得 再投稿
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
改行のないテキストを指定バイ...
-
COBOL・全角判定
-
全角数字を半角数字にする方法
-
IEからEdgeへの移行に伴うIMEの...
-
char型全角数字から、int型半角...
-
ダブルコーテーションの置換
-
perl 初めてのプログラムにエラ...
-
全角/半角キーをSendkeys関数で...
-
VBA Shift-JISをJISに変換する...
-
word差し込み印刷 半角カタカ...
-
全角英数字を半角英数字に変換...
-
全角英数字の必要性が理解できない
-
POM
-
コンボボックスに貼り付け文字...
-
Visual Studioで ユニコード "...
-
VB.net、テキストボックス入力...
-
右クリックで、gooleサーチを使...
-
いまスマホからカードの申込み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
F9キーについて。
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
全角英数字の必要性が理解できない
-
VB.net、テキストボックス入力...
-
エクセルにMicrosoft Barcode C...
-
word差し込み印刷 半角カタカ...
-
COBOL・全角判定
-
VBで、String型のデータが、...
-
char型全角数字から、int型半角...
-
ダブルコーテーションの置換
-
.NET3.5におけるキーボードの「...
-
封筒の宛先で縦書きの書き方
-
エクセルでの”々”の扱い
-
COBOLでの全角文字の判定をした...
-
プログラミングでは、半角括弧...
-
全角入力
-
[VBScript]バイト長の判定
おすすめ情報