指定したシートがあるか確認してからそのシートを削除する
VBAでシートを指定して削除しようとしたときに
そのシートがなかったら
このようなエラーになります。
このようなエラーを発生させないために
まず、指定したシートが存在するか確認してから
そのシートを削除するプロシージャを作ってみます。
指定したシートが存在するか確認する方法は
アクティブなワークブックのすべてのシートの名前と
指定したシートの名前が一致するかをIf文で調べます。
もし指定したシートが存在したら
そのシートを削除してSheetDelプロシージャ(下にある)を終了します。
すべてのシートを調べても
指定したシートがなかった場合、
「シート"指定したシートの名前"はありません。」
とメッセージを表示します。
macro100313aは、コードの中で使うシートを挿入します。
macro100313bの中で、SheetDelプロシージャを使っています。
Sub macro100313b() SheetDel ("macro100313a") Sub macro100313a() Sheets.Add.Name = "macro100313a" Sub SheetDel(shname As String) |
指定したシートがなかった場合のダイアログです。
「For Each sh In Worksheets」の部分は、
Worksheets プロパティに入っている
すべてのワークシートを表す Sheets コレクションの中から
一つずつ変数shに入れています。
ワークブックの中のあるシートを返す変数shを使って、
ワークブックの中のあるシートの名前をsh.nameで取得してます。
| 固定リンク
この記事へのコメントは終了しました。

コメント