• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:抜き出しマクロについて)

抜き出しマクロについて

このQ&Aのポイント
  • 抜き出しマクロについての質問です。10行ごとにデータを抜き出すプログラムに加えて、前回の結果より10増減があった時や20結果の増減があった時にもデータを抜き出す方法を教えてください。
  • 抜き出しマクロについての質問です。10行ごとにデータを抜き出すプログラムに加えて、前回の結果より10増減があった時や20結果の増減があった時にもデータを抜き出す方法をご教授ください。
  • 抜き出しマクロについての質問です。10行ごとにデータを抜き出すプログラムに追加して、前回の結果より10増減があった場合や20結果の増減があった場合にもデータを抜き出す方法を教えてください。

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

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

Sub 抽出() Dim i As Long Dim j As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Dim Lastline As Long Dim SelFlg As Boolean         '抽出データかどうかの Set ws1 = Worksheets("OriginDT") '元データ Set ws2 = Worksheets("SelectDT") '抽出データ Lastline = ws1.Cells(Rows.Count, 1).End(xlUp).Row '最終行番号を取得 ws2.Cells(1, 1) = ws1.Cells(1, 1)    '見出し部分のコピー ws2.Cells(1, 2) = ws1.Cells(1, 2) j = 1 For i = 2 To Lastline   SelFlg = False   '10で割ったあまりが1(つまり10行おき)または最初のデータのとき   If i Mod 10 = 1  or i=2 Then '       SelFlg = True   '抽出対象にする   End If   '2行目以降で一つ上の行との差が10以上のとき   If i > 3 And Abs(Cells(i, 1) -Cells(i - 1)) >=10 Then       SelFlg = True   '抽出対象にする   End If   If SelFlg = True Then  '抽出対象だったらコピー       j = j + 1       ws2.Cells(j, 1) = ws1.Cells(i, 1)       ws2.Cells(j, 2) = ws1.Cells(i, 2)   End If Next End Sub 条件が増えたらif文を追加すればいい。(orになります。)