• ベストアンサー

Excel2007 ワークシート削除

Excel2007 ワークシート削除 ワークシートの削除を次の構文で実行すると次の確認メッセージがでる。 ⇒「選択したシートに…。データを完全に削除するには、[削除]をクリックして下さい。」 この確認メッセージを省略して、勿論:[削除]をクリックしたことにして 次のロジックに自動的に進める方法が有れば教えて下さい。 ---------------------------- Sub Macro1() Sheets("Sheet3").Delete : : End Sub ---------------------------- 以上

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

シートを削除する http://officetanaka.net/excel/vba/sheet/sheet04.htm こちらが参考になるのでは?

goo793ww
質問者

お礼

n-junさん、早々の回答どうも有り難うございました。 ご紹介いただいたサイトから次の事例を試行させていただきました…Good 早速実践運用させていただきます。 ▼次のコードは確認メッセージを出さないでアクティブシートを削除します。 ---------------------------- Sub Sample04_2() Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub ---------------------------- 以上

関連するQ&A

  • Excel ワークシート削除 確認メッセージが出ないのです

    Excel2003、WindowsXPです。 少し前からワークシートを削除する際に出る確認のメッセージが出なくなりました。 メッセージが出るように元に戻したいのですが、どうすればよいでしょうか? よろしくお願いします。

  • VBAでワークシートを変数にするとき

    たとえばSheet1とSheet2を一度に選択する場合、 Sub Macro6() Sheets(Array("Sheet1", "Sheet2")).Select End Sub と書くと思います。 ワークシートを変数で書く場合は Sub test() Dim ws1 As Worksheet, ws2 As Worksheet Sheets(Array(ws1.Name, ws2.Name)).Select End Sub と、いちいち名前で指定しなければならないのでしょうか? それとももっと別の書き方があるのでしょうか?

  • ワークシートの削除

    For SheetSakujo = 3 To SheetCount - 1 Worksheets(SheetSakujo).Select If ActiveSheet.Name <> "★" Then If Range("A2") = "" Then ActiveWindow.SelectedSheets.Delete End If ElseIf ActiveSheet.Name = "★" Then Exit For End If Next VBAでワークシートの削除を行っています。 A2が空白のシートを消そうと思って上記のようなコードをくみましたが、 削除されるとシートが減ってしまうため、次のシートも空白だった場合、消されないで飛ばされてしまいます。 3枚目のシート:空白 4枚目のシート:空白 5枚目のシート:空白     ↓ sheetsakujoが「3」なので3枚目は削除される。 次の4枚目のシートが3枚目が削除されたため、「3番目のシート」になるため、次に削除されるのは5枚目のシート。 この場合、どのようにしたらいいのでしょうか?

  • シートにデータがなければ削除するVBA

    こんばんは、VBAについて質問させてください(^O^) あるブックに32個のシートが入っています。 32個のシートのうち、セルA2にデータの入っているシートとそうでない シートがあります。(毎回変動します。) これを踏まえて、セルA2にデータが入っていればそのまま、 入っていなければそのシートを削除。 という作業をVBAでやろうと思って以下の通りVBAを記述したのですが、 シートが削除されるとシートの数が変わってしまうので、これではだめだと 思ったのですが、どのように記述すればいいのか分かりません(T_T) どなたかご教授いただけないでしょうか、よろしくお願いいたします。 Sub Macro1() Application.DisplayAlerts = False Dim i As Integer For i = 1 To 32 Sheets(i).Select If Range("A2").Value = "" Then Sheets(i).Delete End If Next i End Sub

  • エクセルのマクロでのシートの削除について

    エクセルのマクロについて エクセル97でファイルを閉じる前にシートを一つ削除するマクロを流そうとしているのですが、 マクロが流れるとシートを削除するかどうかの確認のダイアログが表示されてしまいます。 この確認のメッセージなしでマクロでシートを削除することは出来ないのでしょうか? ----------------- 実際のプログラム ------------------ Sheets(シート名).Select ActiveWindow.SelectedSheets.Delete わかる方がおられましたら宜しくお願い致します。

  • wordでexcelワークシートを編集できない

    word2010でexcelワークシートを挿入し、word97~2000形式で保存しました。 そのファイルを、別PC(word2000)で開いて、ワークシートを編集しようとすると、「作成元アプリケーション、作成元ファイル、またはアイテムが見つかりません。アプリケーションが正しくセットアップされているか、削除、移動、名前の変更が行われていないかどうかを確認してください。」とのメッセージが表示され、編集できません。 また別PC(word2010)では問題なく、編集出来ます。 ご教示願います。 宜しくお願いします。

  • Excel2002のVBAでワークシートの挿入で疑問

    VBAの勉強をし始めたばかりものものです。 ワークシートの数が10枚になるまでワークシートの挿入を繰り返すように、以下のVBAを作成しました。 Sub wsins() Dim i As Integer For i = Worksheets.Count To 10 Step 1 Sheets.Add Next End Sub しかし、上記の方法だと、ワークシートが11枚になってしまいます。 もちろん10のところを9にすることによって、ワークシートがトータルで10枚にはなるのですが、理由がわかりません。 勉強したばかりで、思い違いをしているのかと思いますが、教えていただけないでしょうか?よろしくお願いいたします。

  • Excel VBAでのシートの削除について

    Excel VBAで、シート上に配置されたボタンをクリックすることで、メッセージを出さずにそのシートの削除をしたいと思っています。 サンプルとして、シート上(例えばSheet1)にボタンを1個配置し、 ------------------------------------------------------- Private Sub CommandButton1_Click() Application.DisplayAlerts = False Delete Application.DisplayAlerts = True End Sub ------------------------------------------------------- のようにすると、オートメーションエラーが起きます。 そこで、 Application.DisplayAlerts = True をコメントアウトしてやれば実行はできるのですが、その後別のシートで処理を行う場合には、再度メッセージを表示してほしいと思っています。 ためしに、Sheet1削除後にアクティブになるSheet2に次のようなコードを記述しました。Sheet1同様、シート上にボタンを1個配置しています。 ------------------------------------------------------- Private Sub CommandButton1_Click() MsgBox Application.DisplayAlerts End Sub Private Sub Worksheet_Activate() MsgBox "次に出るメッセージはアクティブ直後のDisplayAlerts設定。" MsgBox Application.DisplayAlerts Application.DisplayAlerts = True MsgBox "次に出るメッセージは変更後のDisplayAlerts設定。" MsgBox Application.DisplayAlerts End Sub ------------------------------------------------------- こうすれば、Sheet1削除後、アクティブになった直後はDisplayAlertsがFalse。その後設定変更してTrueになるかとおもったのですが、結果はFalseでした。しかしその後、ボタンをクリックするとTrueが返ってきました。 いろいろ調べましたが、なぜこのような結果になるのかわかりません。よろしくお願いいたします。

  • ワークシートをコピーしたい

    下記載のサンプルマクロは「ワークシートをコピーして、追加したワークブックにコピペする」マクロなんですが、これを「ワークシートをコピーして、追加したワークシートにコピペする」にできないでしょうか? 出来るのであれば、値と書式の他に関数もそのまま貼り付けたいので御教授お願いします。 ただマクロは削除してマクロ抜きのコピペが理想です。 宜しくお願い致します。 Sub サンプル() Dim sc As Integer sc = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー Workbooks.Add 'ブック追加 Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け Sheets("Sheet1").Name = "コピー" Application.CutCopyMode = False Application.SheetsInNewWorkbook = sc ActiveWorkbook.Close ThisWorkbook.Activate End Sub

  • Access VBAからExcelシートの削除

    お世話になります。 Access VBA から指定したExcelシートの削除を行うプログラムを下記の通りに記載しています。 Set oApp = CreateObject("Excel.Application") oApp.Workbooks.Open FileName:="エクセル.xls" oApp.DisplayAlerts = False oApp.Sheets("シート名1").Delete oApp.DisplayAlerts = True この場合において、"シート名1"が存在していれば問題なく処理されますが、 このシートが存在していなければエラーが起きます。 指定したExcelブックにこのシートが存在するかどうかのチェックを事前に行い、 存在する場合のみ削除処理を行うにはどうすればよいでしょうか? よろしくお願いします。 環境は、Access2007です。

専門家に質問してみよう