重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBA初心者です。
例えば、開いているブックの中に「Sheet4」が存在するかどうかを調べ、無い場合にだけ「Sheet4」を挿入するには、どのように記述すればよいのでしょうか?
よろしくお願いします。

A 回答 (2件)

こんにちは。



だいたい、こんなに感じでよいと思います。

Sub TestSample()
Dim sh As Worksheet
With ActiveWorkbook
Const ShName As String = "Sheet4"
For Each sh In .Sheets
 If sh.Name = ShName Then MsgBox "既に" & ShName & "はあります。": Exit Sub
Next sh
 .Worksheets.Add After:=.Sheets(.Sheets.Count)
 ActiveSheet.Name = ShName
End With
End Sub

ただ、簡単な方法は、エラー・トラップを使ってもよいと思います。

>シートの追加方法ですが、「Meキーワードの使用方法が不正です。」
Me は、曖昧です。なるべく明示的に使ったほうがよいです。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
For Each・・・In・・・
Next・・・
と言う記述方法があるのですね。勉強になりました。
なんとか、目的のものが作れそうです。感謝です。

お礼日時:2005/10/18 16:39

そうねぇ。



For i = 1 to WorkSheets.Count step1
if WorkSheets(i).Name = "Sheet4" then
Msgbox "Found"
end if
next

とか

msgbox WorkSheets("Sheet4").Name
で、エラーが発生すれば無い、普通に素通りすればある、

とか、そのへんで存在チェックはできそうやね。あと、シートを追加して、名前をSheet4にするのは

Set s = Me.Worksheets.Add
s.Name = "Sheet4"

という方法はどうだろう。
    • good
    • 0
この回答へのお礼

素早いお返事ありがとうございます。
検索は1番目の方法で上手くいきました!(感謝)
シートの追加方法ですが、「Meキーワードの使用方法が不正です。」と表示されます。(すみません。よく分かりません。)

お礼日時:2005/10/18 15:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!