[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA シート重複』(さんきち)
いつもお世話になっております。「手回し」と言うシートのコピーを行い、シート名をHTDとしたい時に、すでに「手回し(2)」のシートが存在したときに、Errorでメッセージを出して、シート自体を削除させていましたが、4〜6回程度使用した時点で、ありもしない「HTDシートがある」メッセージが出て、VBAが止まってしまうようになってしまいましたがなぜでしょうか?・・・・最初は、うまく動作していたのですが、突然出るようになってしまったのです。なにか、おかしな事をやっているのでしょうか?
エクセル2000/Win2000のIE5.5の環境です。
If Sheets("工具管理表").Cells(3, 9) > 0 Then ''''''手回し
Sheets("手回し").Activate Sheets("手回し").Copy Before:=Sheets(1) On Error GoTo REE3 ''''ダブリシート名エラーループ Sheets("手回し 2)").Name = "HTD"
その後の処理・・・・抜粋
REE3:
Application.DisplayAlerts = False ''''''エラーメッセージ非表示 MsgBox "Hシートがすでにある。処理中止" Sheets("手回し (2)").Delete Application.DisplayAlerts = True Exit Sub どなたか、よきアドバイスをお願いします。
シートの存在を調べてあったら削除したらどうですか? v(=∩_∩=)v (SoulMan) Sub てすと() Dim Wsh As Worksheet Dim MyFlag As Boolean Const MyName = "HTD" MyFlag = False For Each Wsh In Worksheets If Wsh.Name = "HTD" Then MyFlag = True: Exit For End If Next If MyFlag = True Then With Application .DisplayAlerts = False Worksheets(MyName).Delete .DisplayAlerts = True End With Else With Worksheets .Add After:=Worksheets(.Count) ActiveSheet.Name = MyName End With End If End Sub
Sub てすと()
Dim Wsh As Worksheet
Dim MyFlag As Boolean '''''Boolean→使ったことがありません勉強します。
Const MyName = "HTD" ''''' ユーザー定義定数でHTDのシート名を定義している?
MyFlag = False ''''''??????
For Each Wsh In Worksheets ''''''シート名を検索し If Wsh.Name = "HTD" Then '''''''HTDがあった場合、Next以降に MyFlag = True: Exit For ''''''HTDが無かった場合は、次のシートへ検索
End If Next If MyFlag = True Then MsgBox "HTDはあります。" ''''''If Wsh.Name = "HTD" Then 有る場合 Else MsgBox "HTDはありません。" ''''''無い場合 End If
End Sub
MsgBoxを出さないで処理するには。
MsgBox "HTDはあります。" のところに不要SheetをDeleteして
MsgBox "HTDはありません。" のところに、通常の処理を、入れればいいのでしょうか?
解釈はこんな感じで、大体あってますでしょうか?
おはようございます。 >非常に高いレベル 高くないっす( ̄□ ̄;)!! >解釈はこんな感じで、大体あってますでしょうか? うぅ〜〜〜ん。。どうだろう??? わからないところがあったらね。そこを選択してF1を押すの。 そうするとエクセル君が色々と教えてくれるわ。 でも、時々間違ってるそうだけど、、(^^;) なんか今回のコードは、この手のコードの定番というかぁ、、、 おきまりの文句ばっかりね。。 さんきちさんが、これからいくつもコードを書いていくとしたら、きっと何度となく使う 構文ばっかりじゃないでしょうか??多分??? というわけで、私の下手な説明をつけようとしましたが、、 エクセル君に聞いてちょ。みたいな感じで、お願いします。 ではでは、、 あっ!上のコードをちょっと直しておきました。 v(=∩_∩=)v (SoulMan)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.