• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:行をクリアした後、下の行がクリア行を埋めるには)

行をクリアした後、下の行がクリア行を埋めるには

このQ&Aのポイント
  • シート名wsFormと言う入力フォームで入力した値を保存するマクロボタンを押すと、シート名wsDataと言うシートの先頭行を抜かした2行目(A列からF列まで)から順番に3行目、4行目と順に保存されるようにしています。
  • 誤って保存した場合、wsDataを開いている状態で下記マクロを実行すると、選択行がクリアされます。その後で、空白行の下にあるデータの入った行をすべて1行上にあげて空白行をうめるマクロはどうすれば可能でしょうか。
  • wsDataは1年毎にデータの入った行全体をクリアして使う予定です。1年間でデータが入る行数は1000行程度ですが、念のため2000行として数字の入る各列の先頭行には、例として=Subtotal(109,B2:B2000)が入っています。よろしくお願いいたします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>例として=Subtotal(109,B2:B2000)が入っています。 数式を入れ直してやれば Sub 行クリア()   Dim rc As Integer   rc = MsgBox("【重要】選択行データを本当に削除しますか?", vbYesNo + vbQuestion, "選択行削除")   If rc = vbYes Then     MsgBox "削除を実行します。"     ActiveSheet.Unprotect     ActiveCell.EntireRow.Delete Shift:=xlUp     Range("A1:F1").Formula = "=SUBTOTAL(109,A2:A2000)"     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _     , AllowFiltering:=True   Else     MsgBox "処理は中断されました"   End If End Sub

shibushijuko
質問者

お礼

ご回答いただき、ありがとうございます。 教えていただいた内容で思っていた通りの処理が完全にできました。 subtotalは削除するとその分、範囲が減るのですが、それを元に戻すマクロを加えればいいわけですね。 勉強になりました。ありがとうございます。m(_ _)m

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

関連するQ&A

  • リストボックスから複数行を選択し、その複数のデータをセルに入力したい

    Excel2003でマクロをつくっています。シートのB列を右クリックすると、リストボックスが表示され 任意1行を選択するとシートのB列、C列、D列のセルにデーターが入力されます。 Private Sub ListBox2_Click() With ListBox2 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ’シートが保護されていたら保護を解除 If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If ActiveCell.Value = ListBox2.List(ListBox2.ListIndex, 0) ActiveCell.Offset(0, 1).Value = ListBox2.List(ListBox2.ListIndex, 1) ActiveCell.Offset(0, 2).Value = ListBox2.List(ListBox2.ListIndex, 2) ActiveSheet.Protect End If End With Unload UserForm3 End Sub このリストボックスから複数の行を選択し、シートのB列、C列、D列のセルにデーターを入力したいのですが、Multiselectプロパティを変更しても、一行のみしか入力できません。 上のコードをどうかえたらよろしいでしょうか。

  • 削除して空白になった行を下から詰めたい

    A行には項目の名前があり、A列には番号が上から1,2,3・・と振られています。 そして、B2からR999までにはそれぞれデータが入っています。 このとき、任意のR列のセルを選択したまま、マクロを実行すれば、 任意の行のB列からR行が削除されて、下から上に詰めるように(空白にならないように) するマクロを作りたいです。(A行に割り振っている番号を消してしまうと 連番が崩れるので、B列からR列までを詰めていくような感じです) 例: 今、R11のセルを選択しています。希望のマクロを実行すると、C11~R11が削除されて    C12以降のデータが丁度上に移行するような感じです。 どのようなコードを作れば良いのか、お力をかしていただければ幸いです(/_;)

  • エクセル コピー先に残った関数のある行クリア

    エクセルのコピー元シート:100行10列 コピー先シート:ペーストする先 セル10 関数5 N行(例えば150行) コピーした後にデータが張り付いていない行に関数だけ残る(50行) この不要な行の関数を毎回手でクリアしています。 マクロで関数を消すにはどうすればよろしいかご教示願いたく、 よろしくお願いいたします。

  • マクロで表を削除したいのですが

    マクロについては知識が乏しく、いつも新しいマクロの記録を行なってから編集する方法で行なっている程度です。 今回、データの数(行数が)が一定でないものの内容をタイトル以外をクリアしたいと思っています。列はA~Jまであるのですが、下記のようなマクロでは何故かA列とB列のデータしかクリアできません。 J列までクリアできる方法を教えて下さい。 ちなみに表の下に文言が入るため、例えばA3:J65536までを範囲指定し削除するというマクロの記録はできません。 つたない説明ですみませんがよろしくお願いいたします。 ActiveSheet.Unprotect Range("A3").CurrentRegion.Select Selection.Delete Shift:=xlUp ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingRows:=True, AllowInsertingColumns:=True, _ AllowInsertingRows:=True, AllowSorting:=True

  • 行削除のマクロ

    B列~F列にデータが入っていてB列の最終行の下セルを選択しクリップボードのデータを貼り付けた後、貼り付けたデータの最初の3行を削除するマクロを作っています。 Sub Macro1() ''Worksheets("Sheet1").Activate ' addrw = Range("b65536").End(xlUp).Offset(1).Row Cells(addrw, 2).PasteSpecial end sub これでB列の最終行の下にデータを貼り付けることまで出来たのですが貼り付けた最初の3行の削除の仕方がわかりません。 いい方法があれば教えていただけないでしょうか。  例えばB列の10行目まで既に入力されていた場合、11行目からクリップボードのデータを貼り付け(ここまでは上のプログラムで出来ました。)、11行目から13行目を削除したいのですがどうしたらいいでしょうか?

  • エクセルマクロでピボットと集計

    エクセルのマクロを使ってピボットと集計を行いたいのですが、データは毎日更新するため行は変わります。 1.ピポットの範囲で一番下の行にデータの合計行が残ってしまうため、その行を削除したい。(=左端から右下を選択したい 余分な集計の行はG列で最終データはH列です)  2.ピボットで作成したものを普通のワークシートに全部値貼り付けした後、集計を行いたい。  A B C D E F G H (列はHまでで常に固定) G列に数値、H列に日付 ピボットの範囲と集計の範囲が都度変わっています。 自動で作成したものを手直ししたいのですが途中箇所のマクロを抜粋しました。 マクロは初心者です。 説明不足もあるかもしれませんがどうぞ宜しくお願いいたします。  ピボットの範囲選択のあたり・・・ ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R1236C8").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) 集計のあたり・・? Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(5, 6, 7, 8, _ 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 _ , 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, _ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88), Replace:= _ True, PageBreaks:=False, SummaryBelowData:=True Range("B6").Select Selection.AutoFilter Field:=2, Criteria1:="=*集計*", Operator:=xlAnd Rows("6:900").Select With Selection.Interior .ColorIndex = 34 .Pattern = xlSolid

  • セルの書式をクリアしたくない

    お世話になっております。 よろしくお願い致します。 次のようなマクロであるエリアを削除しています。 wrkShtW.Range(Range(N_TagDisp).Row & ":" & Range(N_TagDisp).Row).Clear ボタンを押すと、上記のマクロを実行し、そのエリアに新しいデータが書き込まれます。 ここで、このClearを実行している理由はは、前回は10行目までデータが書かれたが、今回は3行目までしか書かれなかっという時のために、データがFullに入ってくるだろうエリアをクリアしてから、データの書き込みをしています。 今、一番左の列には日付が入ってくるので、実際のデータは 「2015/11/6」 なのですが 「11/6」 のように表示するように形式を設定しています。 しかし、上記マクロを実行するとデータは削除してくれますが、日付の書式も一緒に削除されてしまいます。 データ以外は削除したくない。しかし、書式は残したい。(名前も踏襲したい。) このような時には、何を使用すればよいのでしょうか? アドバイスをよろしくお願い致します。

  • エクセルのシートを同時に行削除、行挿入させて自動連動させたい

    エクセルで、横(列)256列以上のデータを入力したいため、シートを分けざるをえません。その場合、次のようなことがしたいとき、どのようにすればよろしいでしょうか?(やりたいことの結論下記(3)になります。) エクセルのシートが2つ以上あるとします。 (1)「sheet1」には、基本データ(名簿録のようなもの・氏名ふりがなアイウエオ順配列) (2)ふたつめ以降のシートには、毎月変更するデータを入力し、「sheet1」の名簿の個々のIDに対応したそれぞれ同じ行番号に入力することになります。 (3)「sheet1」で行削除(名簿対象者解約)や行挿入(新規契約者)を任意の場所で行いたい。それに連動して、2つ目以降のシートでも同じ列で行削除・行挿入を自動でしたい。 ★この簡易システムを作成するのはマクロ初心者の私であり、日々の入力作業するのはエクセルそのものが初心者である他者となります。 ★行挿入、行削除のときだけシートの同時選択を手作業でしてもらうことは想定していません。そのあたりをも含めた自動化の智恵がでてこないのです。 以上、よろしくお願いします。

  • エクセル 行の200~ をクリアにしたい

    Win8のエクセル2013を使っています。 A列をリンク貼り付けしたら、データがかなり重くなってしまったので、数値の入っていない「行200~最後まで」を数字や値をクリアにしたいのですが、行をドラッグしながら一番下まで持っていくのは、とても時間がかかります。 何か一発で「行200~」をクリアにする方法はないでしょうか? 詳しい方いらっしゃいましたら、教えて下さい。 よろしくお願い足します。

  • 重複する不要な行を消し、必要行のみを残したい

    下表のエクセルがあります。果物の種類はたくさん、4月から3月までの表で、みかんの2行目は1行目に5月のデータが追加されたものです。2行目があれば1行目はいらないので2行目だけを残し、1行目は非表示にして別シートに移したいのですが、うまい関数やマクロを教えてください。 A列  B列   C列  D列 果物   4月    5月   計 みかん   2         2 みかん   2     5   7 りんご   3        3 りんご   3     7   10 これを別シートに移す(不要行を削除して) 果物  4月  5月  計 みかん 2   5   7 りんご 3   7   10

専門家に質問してみよう