• ベストアンサー

エクセルでシートを消すマクロ

エクセルでシートを消去するマクロが作りたいです。 マクロの記録で作ったものを走らせた場合、「後戻りできません」のダイアログが表示されて動作がそこでストップしてしまいます。 ファイルを閉じるときにある SaveChanges:=False のような文を付け足したいのですが、どう書けばよろしいのでしょう。 すみませんが、どなたかご教授お願い致します。 m(_ _)m

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

Sub test_SheetDelete()  Application.DisplayAlerts = False  'これをつけます  On Error Resume Next '最後のシートを消そうとするとエラーになるのでつける  ActiveSheet.Delete  Application.DisplayAlerts = True  '念のために戻します End Sub ThisWorkbook.Close SaveChanges:=True '要保存のダイアログが出ません。Falseなら、ダイアログが出てきます。ただし、デフォルトは False です。 しかし、この場合は、Application.Quit(Excelの終了)は、使えません。 Close メソッドではなく、Save メソッドを使ってから、Application.Quit になります。 例: Sub test_Appquit()  If ThisWorkbook.Saved = False Then    ThisWorkbook.Save  End If  Application.Quit End Sub

noname#202422
質問者

お礼

今回は手動で行いました。 次回の課題としておきます。 素早いご指導ありがとうございました。 次は自動でファイルを開いて処理して保存して閉じる なんてのもできたらなぁと思います。

noname#202422
質問者

補足

大変重いデータをマクロで処理しファイル名をつけて保存しています。 この際マクロを引き継がないように空ブック(空シート)を作っておき、そこにそれぞれシート移動(コピーだと重すぎるので)、最後に空シートを削除して保存しようとしています。 この際 Application.DisplayAlerts = False Sheets("空").select ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True とするとダイアログは出なくなりました。 しかし、その後のファイル名を「空.xls」から 「指定したファイル名.xls」にするところが 「空.xls」で上書きされてしまいます。 これはどうしたものなんでしょうか... ちなみにファイル名をつける文は以前教えて頂いた、 Dim Fname As Variant Windows("空.xls").Activate Sheets("データ.xls").Select Fname = Range("a1").Text SendKeys "%FA" & Fname & "{enter}" としています。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • surounin
  • ベストアンサー率28% (30/106)
回答No.1

消去・・・・削除と考えてお答えします。 動きをみせなくする Application.Screenupdating=false アラートを殺す(確認メッセージが出ない) Application.DisplayAlerts = False Sheets("******").Select シート削除 ActiveWindow.SelectedSheets.Delete 「シートクリアの場合は Cells.Select Selection.ClearContents」 アラートを戻す(確認メッセージが出る) Application.DisplayAlerts = True 動きを復活 Application.Screenupdating=True でどうでしょ^^;

noname#202422
質問者

お礼

今回は手動で行いました。 次回の課題としておきます。 素早いご指導ありがとうございました。

noname#202422
質問者

補足

早速のお返事ありがとうございました。 No2の方の補足のとおりの段階です。 もう一歩なんですが、あれをいじるとこれがおかしくなるの繰り返しですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロ 教えてください

    エクセルの自動記録でマクロを取り組み始めたばかりの初心者です。 本部から毎月送られてくるエクセルファイルにこちらで別のワークブックに記録したマクロを使って加工しようとしていますが方法がわかりません。 他の人がこのファイルを間単に加工出来るようマクロを使って (マクロのコードの書き換え等の作業をしないで)行えるようにしようとしています。 ※送られれくるエクセルファイルは月毎にファイル名が違います(シート名は変わりません)。 下記は自動記録の内容ですがこれを適用させる方法であります。 宜しくお願いいたします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/8 ユーザー名 : ******* ' ' ActiveWindow.TabRatio = 0.819 Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet1").Activate With ActiveWindow .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With Sheets(Array("Sheet6", "Sheet7", "Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.Zoom = 120 End Sub

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

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

  • EXCEL マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか?

    EXCEL マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか? EXCEL2007を使っています。 マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか? シート1 1 3 2 というデータを「マクロの記録」で昇順に並べ替えるマクロを作成します。 シート2 3 5 4 というデータに適用したいのですが、マクロを実行するとシート1のデータが 並べ替えられてしまいます。 マクロを読むと「シート1」という記述があるのでシート1にしか適用できないようです。 マクロの記録だけで別のシートにも適用できるマクロを作成できないでしょうか? (ただの並べ替えだけだったらマクロを作成する必要はないのですが、実際にはもっと複雑な 動作をさせたいのです)

  • excel、マクロについて教えてください。

    excel、マクロについて教えてください。 excelのマクロでシートを追加してシート名を変更し棚卸しに変更する内容を記録したのですが、 excelをずっと使用していてシートを追加していくとsheet1、sheet2と語尾の数字が増えていってしまい、マクロが正常に動作しません。 excelのシートを追加した際に必ずsheet1で追加する方法、若しくはマクロを記録した時はsheet1の名前を変更だったがsheet2でもsheet3でも動作するようなコードは存在しますか? 最近マクロをやり始めた初心者なので、質問が下手かもしれませんがどなたかお分かりになりましたら 教えていただけませんか?よろしくお願いします。

  • Excel「新しいマクロの記録」

    Excelにて、「ツール」→「マクロ」→「新しいマクロの記録」を実行すると「マクロの記録」ダイアログが表示され、ここで「OK」をクリックすると、マクロの記録状態に入ります。以前はこのときに「停止、絶対指定,相対指定」を設定する小さなダイアログが表示されていたのですが、なぜか急に出なくなってしまいました。このダイアログを出す設定方法を教えてください。よろしくお願いします。

  • Excelのマクロについて

    Excelにてマクロを記録作成しましたところ、ファイルをいったん閉じて、再び開いたりしたところ、マクロが有効になりませんでした。 というのも、セキュリティのためデジタル署名??そういったダイアログが表示され、私のPCのセキュリティを見てみると「高」に設定されており、これを「中」に変えて作成してみると、使えるようになります。 Excelはさっぱりなものでして、どう説明していいかわかりませんが、マクロで言うデジタル署名っていったい何なのでしょうか? 要点は、Excelのマクロのセキュリティを「高」に設定したままで、自分が作ったマクロを使えるようにするにはどのようにしたらいいのかが知りたいです。 ご回答の程、よろしくお願いします。

  • エクセルの図形について

    エクセルのシート上に円を描画してあります。この円を一旦消去した後にエクセルを終了させます。次にそのエクセルのファイルを開いた時に、先ほど消去した円と同一のものをシートの同じ位置に表示させたいのですが。どのような方法を用いればいいでしょうか? マクロの記録開始 → 円を描画 → マクロの記録終了 でマクロに登録すれば可能だと思いますが、既に円が描画されている状態でどうすればいいかが知りたいのですが。

  • Excelのマクロについて

    Excelのマクロについて excel2003で,マクロの自動記録を勉強中です。 [ツール]-[マクロ]-[新しいマクロの記録]でマクロ名を入力し,(マクロの保存先を「作業中のブック」として,)[OK]をクリックすると マクロの記録が始まります。 マクロの記録終了後, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が表示されます。 この場合は実行も正常にできます。 しかし, ブックを一旦保存した後,開いて,マクロを実行しようと, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が(マクロ名単独ではなく)ブック名とともに表示されます。 実行するとエラーになります。 何が悪いのか分かりません。なにか基本的なミスがあるのかも知れないと考えました。 原因(ミス)に心当たりのあるかた,是非教えてください。

  • マクロの削除について

    エクセルで、「新しいマクロの記録」で作業を行った後に マクロを削除したのに、そのファイルを開くときに、 「開こうとしたファイルにはマクロが設定されています」というダイアログボックスが表示されます。 これを表示させない方法はありますか? 教えて下さい。

  • ブックの保護(シート構成) でシートのコピー

    エクセルで外部データを参照させるために, 別のブックを開きシートをコピーし元のブックに貼り付け別のブックは閉じるというマクロを作成しました。 Workbooks.Open Filename:=a Sheets("データ").Select Sheets("データ").Copy After:=Workbooks("ファイル.xls").Sheets("メニュー") Workbooks(a).Close SaveChanges:=False a(変数)というファイルを開く シートのデータを選択 データをコピーし ファイル.xls のメニューシートの後に貼り付け a(変数)のエクセルファイルを保存せずに閉じる 動作としては正常に動きました。 しかし、この ファイル.xls には ID とパスワードで管理しています。 その管理したシートがあるんですが、それを表示させないために シートを非表示→ブックの保護→シート構成 を行いました。 マクロを動かすと、シート構成をしているので Sheets("データ").Copy After:=Workbooks("ファイル.xls").Sheets("メニュー")  が動かないことに気が付きました。 何かいい方法があればご教授お願いします。

専門家に質問してみよう