• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでの各シートのデータの一斉削除)

エクセルでの各シートのデータの一斉削除

このQ&Aのポイント
  • エクセル2002で作成している、家計簿をrenewしたいと思い、各シートに入っているデータが一斉に消去されない問題について
  • 1月から12月まで作成した各シートには収入と支出のデータがあり、最後のシートで各シートの項目ごとの月ごとで年合計をしています
  • 1-12月までのシートを選択し、「編集」→「ジャンプ」→「セル選択」→「定数」→「数値」にチェックを入れ、OK後「delete」を選択しても、一部のシートの数字が消去されず、他のシートの数値も消去されない問題が発生しています。正しいやり方を教えてください

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

  • ベストアンサー
  • avanzato
  • ベストアンサー率54% (52/95)
回答No.9

#2です。 こちらこそ何度もすみません。 実行エラー1004の原因ですが、コードを実行しシートを順に選択して行き「ジャンプ」→「Delete」を行うのですが「ジャンプ」を行う時点で既にそのシートに定数の数字が存在しない場合ジャンプを実行することが出来なかったというエラーが発生します。 私の予測範囲外でした。^^; VBAの一部修正です↓ Sub Sample() On Error Resume Next '←追加 Dim W As Worksheet でお願いします。 今回追加した行の意味は「エラーが発生しても処理を続行する」という命令です。 単純なプログラムなのでこれで問題ないと思われます。 別途質問を頂きました「プロジェクト」画面についてですがメニュー「表示」の中にある「プロジェクトエクスプローラ」というものが表示されているか否かの違いだけで問題はありません。 尚、質問者の補足欄の添付は無かったような気がします。 まだ2回しか質問をしたことが無くそのあたりは分かりかねます。^^;

tozaki
質問者

お礼

avanzato様 見事に消えました!! ありがとうございました。大変お時間を使っていただき、avanzato様のご親切、本当に心からお礼申し上げます。 いろいろ、教えていただき、又、私にとって新しい世界を見せていただきましたので、これからVBAを勉強したいと思っております。まず、手始めに、avanzato様が作っていただいたこのプログラムを、ご紹介いただいたサイトと本を参考にして自分で作ることからスタートしたいと思います。 尚、これはご返事いただかなくて結構なのですが、10月のシートの数字だけ残り、狐に包まれた気持ちです。 最後になりましたが、重ねて、厚くお礼申し上げますとともに、avanzato様の益々のご活躍をお祈り申し上げます。ありがとうございました。

その他の回答 (8)

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.8

#2です。 すみません。 オプションの関係で「Option Explicit」は出る出ないがありデフォルトでは出ないようになっていました。 >出てきた画面のメニュー「挿入」→「標準モジュール」を選択してください。 >「Option Explicit」と書かれたモノが表示されます。 >Option Explicitの下の行に↓↓↓↓をコピー&ペーストしてください。 の部分の訂正です。 出てきた画面のメニュー「挿入」→「標準モジュール」を選択してください。 「(General)」と表示されているところのやや下でカーソルが点滅しています。 カーソルが点滅している行に↓↓↓↓をコピー&ペーストしてください。

tozaki
質問者

補足

avanzato様。おはようございます。何度も申し訳ありません。 「alt」→「F8」→「実行」まで作業しましたところ、「実行時エラー’1004’ 該当するセルが見つかりません」というエラーメッセージが出てしまいました。「年合計」のシート名が間違っているかなと思い、確認しましたが、「年合計」で間違いありません。他は月名です。 私のvisual basicの画面は、avanzato様のご解答に添付されておりました画面の、左部分「プトジェクト」欄の「VBA Project(book1)]」のところはなく、いきなり、(general)です(画面のコピーはwordにとったのですが、この補足の画面にも「画像」添付欄が無く、その画像をここに貼り付けることができませんでした。画像の画像はどうやって貼り付けるのですか?)。

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.7

#2です。 VBAを利用する方法及び説明です。 まず、キーボードの「ALT」を押しながら「F11」を押してください。 すると、「Microsoft Visual Basic ~」と言う画面が出てくるかと思います。 出てきた画面のメニュー「挿入」→「標準モジュール」を選択してください。 「Option Explicit」と書かれたモノが表示されます。 Option Explicitの下の行に↓↓↓↓をコピー&ペーストしてください。 Sub Sample() Dim W As Worksheet For Each W In Worksheets If W.Name <> "年合計" Then Sheets(W.Name).Select Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents End If Next W MsgBox ("完了") End Sub ↑↑↑↑↑↑(この矢印の上の行までです。) ペーストが完了したら、「Microsoft Visual Basic ~」という画面は「×」を押して閉じてください。 この時点で当初のエクセルの画面に戻ります。 次にキーボード「ALT」を押しながら「F8」を押します。 タイトルバーに「マクロ」と書かれた画面が表示されマクロ名の欄が「Sample」となっているかと思います。 この状態で「実行」を押してください。 上記VBAコードが実行され完了すると「完了」と表示が出ます。 以上で年合計以外のシートの数字の入力のみが消えています。 処理の流れですが自動操作でブック内のシート名を読み上げていきます。 シート名が「年合計」以外のシートであれば質問者様が当初やられていた >「編集」→「ジャンプ」→「セル選択」→「定数」→「数値」にチェックを入れ、OK後「delete を処理します。 全てのシート名が読み終わったら「完了」と表示する。 といった概略になります。 使って見ると「便利」と思われるかと思います。 これを機にVBAを勉強して見るのも良いのではないかと思います。 余計なお世話かと思いますがVBAの入門サイトを載せて置きます。 http://excelvba.pc-users.net/ 追伸 通常、手動による間違った変更を行ったときは「編集」→「元に戻す」で元に戻ることが出来ますがVBAを使用した変更はこの方法で元に戻ることが出来ません。 それだけは注意をしてください。

tozaki
質問者

お礼

この質問のため、avanzato様には、貴重な時間を割いていただきましたこと、大変申し訳なく思っております。また、そのご好意、心からお礼申し上げます。 ご指示通り、「標準モジュール」出しましたが、最初、「option explicit」画面でなく、他の画面が出、もう一度やり直しましたら、今度は「general」という画面になり、「option plicit」という画面が出てきません。 私の質問の中に「excel2002」と記載してしまいましたが、再度、確認したところ「excel2000」でした。この影響でしょうか? http://excelvba.pc-users.net/を開き、通読いたしました。内容については、残念ながら、今の時点では理解できませんでしたが、こういう世界があるのかと感じさせていただきました。有意義なサイトのご紹介ありがとうございました。本も購入し、勉強したいと思っております。

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.6

#2です。 やはりVBAを利用した方法が確実かと思います。 13枚のシートのシート名を返信願います。 返信を頂き次第VBAの利用方法を説明します。

tozaki
質問者

補足

何度もありがとうございます。 シート数は13枚。1-12枚のシート名はそれぞれ「1月」「2月」---「12月」で、13枚目は年合計。 各シート(各月)の列は1日から31日、そして合計。 各行は項目(例えば食費(主食費、外食費)、雑費(雑貨、郵便費etc)、そしてその小計や合計が入っています。 年合計には、列に各月の合計(例えばD列に1月の各月の行毎、E列に2月の項目ごとの月合計)がリンクされ、最後に合計が入っており、1月からの項目ごとの合計がされるようにしております。 お手数おかけいたしますが、何分ともVBAを勉強したことがないので、よろしくお願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答No1です。 同じ作業グループになっていることを確認するには、Shiftを押しながらシート名を選択すればそれらのシートはより白くなっています。また、そのシート名を右クリックすれば「作業グループ解除」の文字が見られます。これはそのシートが作業グループに入っていることを意味しています。また、画面最上段のタイトルバーにはカッコつきで作業グループの文字が見られる事でしょう。 そのように選ばれたシートが作業グループに入っていることを確認したうえで、お示しのような削除の操作をすればよいでしょう。

tozaki
質問者

お礼

おはようございます。朝からご返事ありがとうございます。 「作業グループ」確認しました。最上段にも「作業グループ」の文字ありますし、右クリックで「作業グループ解除」がありましたので、作業グループに入っています。 その上で、私の質問に記載の操作を再度いたしましたが、すべてのシートの数値のみ削除ができませんでした。 お気づきの点あれば、よろしくお願いいたします。

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.4

おはようございます。 #2です。 補足の回答ですが、打ち込む数字はD8からAH90で各シートのフォーマットが同じと言うことですので1月~12月までのシートをシフトを押しながら選択し、D8からAH90を選択しDeleteをすれば選択されているシートのD8からAH90の入力内容が消されます。

tozaki
質問者

お礼

おはようございます。朝からご返事ありがとうございます。 D8からAH90を選択し、そのままDeleteすると、1月から12月の各シートに入っている、項目ごとの小計などの計算式も消去されてしまい、私としては、計算式を残し、単なる数字だけを消去したいのですが。 1-12月のシートには、結構、計算式が複雑に多く入っています。 よろしくお願いいたします。

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.3

#2です。 すみません。 VBAのサンプルでテスト用に使用したコードが一部残ったままでした。 Sub Sample()   Dim W As Worksheet   For Each W In Worksheets     Sheets(W.Name).Select     Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents   Next W End Sub

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.2

こんにちは。 ジャンプを使用した方法ですと、複数のシートを選択している中のアクティブになっている箇所が選択されます。 例えばシート1~シート3まで選択しシート1がアクティブのとき、ジャンプでA8が選択されDeleteをするとシート1~シート3のA8がDeleteされます。 質問にあります1~12月のシート書式(表の行・項目数)が同じならばジャンプではなく手動で消したい範囲を選択しDeleteをすると一括で消えます。 VBAを使用する場合は下記コードを使用してください。 Sub Sample()   Dim W As Worksheet, I As Integer   For Each W In Worksheets     I = I + 1     Sheets(W.Name).Select     Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents   Next W End Sub このコードを実行すると「全て」のシートの定数数字が削除されます。 消したくないシートがあれば除外するコードを追加する必要があります。

tozaki
質問者

補足

ご丁寧にありがとうございます。 VBAは使っておりません。というより、残念ながら、VBAは名前だけ知っているだけで、やり方も表示の仕方も知りません。 打ち込む数字はD8からAH90のセルで、その数字を消したいと思っています。1-12月までと年合計までですので、合わせて1ブックの中で13枚のシートです。そして、1シートの中に縦横に項目ごとに小計やら中計やら合計が入っています。その計算式は消したくないのです。数字だけ消したいわけです。 シート書式はすべて表、項目一緒になっております。そこで、ご回答にあった「手動で消したい範囲を選択」というのは、ジャンプを使わず、1-12までのシートを選択し、計算式の入っているセルだけを選択し、deleteで消すと言うことでしょうか? 稚拙な知識しかなく、折角の丁寧なVBAの方法を使う術を理解できず申し訳ありません。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

それぞれのシートが同じ作業グループになっていることを確認されているのでしょうか?

tozaki
質問者

補足

早々のお問い合わせありがとうございます。 「同じ作業グループ」というのは、一つのブックにあるという意味でしょうか?  1-12月までと年合計までですので、合わせて1ブックの中で13枚のシートにしております。 打ち込む数字はD8からAH90のセルで、その数字を消したいと思っています。そして、1シートの中に縦横に項目ごとに小計やら中計やら合計が入っています。その計算式は消したくないのです。数字だけ消したいわけです。 シート書式はすべて表、項目一緒になっております。 よろしくお願いいたします。

関連するQ&A