[[20221128103944]] 『シートの削除』(白音) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートの削除』(白音)

シート(SheetMain)にボタン(btnStart)を配置し、
サブルーチンを呼び出しています。

Private Sub btnStart_Click()

    ModuleMain.データ取得
End Sub

サブルーチンは以下のようなマクロを作っています。
ステップ実行していくと

worksheets(1).Delete の行を実行した後処理が終了します。
エラーは発生しません。
何が間違っているのですか?

Sub データ取得()

	:
	:

    While i <= Worksheets.Count
        If Worksheets(i) Is SheetMain Then
            i = i + 1
        ElseIf Worksheets(i) Is SheetSub Then
            i = i + 1
        Else
            Worksheets(i).Delete
        End If
    Wend

	:
	:

End Sub

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 エラーは発生していないのですね?

 SheetMain、SheetSub が何なのか示されてませんが、
 これでエラーがでないということは、シートのオブジェクト名でしょうか?

 SheetMain、SheetSubがシートのオブジェクトだとすると
 オブジェクト名がSheetMain、SheetSub以外のシートを全部削除するコードになっていますが、
 >worksheets(1).Delete の行を実行した後処理が終了します。
 終了したとき、他のシートは削除されていますか?

 もし、ちゃんと削除されているなら、こういうことではないかと思います。

 VBA ステップインモードF8を押すと一気に実行される
https://answers.microsoft.com/ja-jp/msoffice/forum/all/vba/bb285825-0094-4921-8fcd-cb4f5aa80b91

 確認してみてください。
(´・ω・`) 2022/11/28(月) 11:00:35

 SheetMain、SheetSubはシート型の変数でもOKでしたね
(´・ω・`) 2022/11/28(月) 11:30:19

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.