前提・実現したいこと
非表示にしたシートを削除したいです。
今現在、マクロでプロシージャを何個か作って
Callステートメント2つ作成し、
以下のように処理1と処理2の各ボタンを作成して2回実行しようとしています。
Sub 処理1() Call test1 Call test2 Call test3 ・ ・ ・ End Sub Sub 処理2() Call macro1 Call macro2() Call macro3() ・ ・ ・ End Sub
そこで、処理1でシートを非表示にするというプロシージャを作成しています。
以下になります。
Sub test1() 'Sheet1を非表示にする Sheets("Sheet1").Visible = False End Sub
次に、処理2に非表示シート(Sheet1)を含め何枚かのシートを削除する という処理をいれています。
以下では対象シート以外を削除する というコードにしています。
'指定したシート以外のシートを削除する(削除しないシートは複数) Sub test2() Dim ws As Worksheet 'シート削除の確認ポップアップを非表示 Application.DisplayAlerts = False For Each ws In ActiveWorkbook.Worksheets Select Case ws.Name '非表示シート「対象シート」は何もしない Case "対象シート" 'それ以外は削除する Case Else ws.Delete End Select Next ws Application.DisplayAlerts = True End Su
↑でエラーがでてしまったため、このコードの前に非表示シート(Sheet1)を再表示すればいいのではないかと考え再表示ステートメントを作成しました。
以下になります。
Sub macro1() '非表示シートSheet1を再表示する Sheets("Sheet1").Visible = True End Sub
ここまで頑張ってみたのですが、エラーになってしまいます。
処理1,処理2とCallステートメントが分かれているためエラーがでるのでしょうか。
発生している問題・エラーメッセージ
インデックスが有効範囲にありません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/07 07:43
2021/10/07 07:45
2021/10/07 07:47
2021/10/07 07:49
2021/10/07 07:50
2021/10/07 07:51
2021/10/07 08:01 編集
2021/10/07 07:55
2021/10/07 08:03
2021/10/07 08:08
2021/10/07 12:44