• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:分割払いの管理表)

分割払いの管理表から次月の振替対象者を抽出する方法はありますか?

このQ&Aのポイント
  • 自動口座振替契約者の内、次月の振替対象者を抽出したいです。
  • 現在は手動で探せるが、契約者増加時に限界が来そうなため、帳票からの抽出方法を知りたいです。
  • 帳票(1)(2)を利用することで、A2に「2020/3/31」と入力すると該当するデータが表示されるようにしたいです。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

振替日はH列から始まるということでよければ 以下と思います。 Option Explicit Sub sample()  Dim RowCnt As Long  Dim ColCnt As Long  Dim PutCnt As Long  Dim GetWsh As Worksheet  Dim PutWsh As Worksheet  Dim DatCol As Long  With ThisWorkbook   Set GetWsh = .Sheets("Sheet1")   Set PutWsh = .Sheets("Sheet2")  End With    RowCnt = 2  PutCnt = 4    PutWsh.Rows("5:999").Delete  '出力行範囲削除    Do   If GetWsh.Cells(RowCnt, 1).Value = "" Then Exit Do   ColCnt = 8 '振替日が埋まる最初の列番号   Do    If GetWsh.Cells(RowCnt, ColCnt).Value = "" Then Exit Do    If GetWsh.Cells(RowCnt, ColCnt).Value >= _       PutWsh.Cells(2, 1).Value Then     PutCnt = PutCnt + 1     PutWsh.Cells(PutCnt, 1).Value = _      GetWsh.Cells(RowCnt, 1).Value     For DatCol = 2 To 6      PutWsh.Cells(PutCnt, DatCol).Value = _       GetWsh.Cells(RowCnt, DatCol + 1).Value     Next DatCol     Exit Do    End If    ColCnt = ColCnt + 2   Loop   RowCnt = RowCnt + 1  Loop End Sub

kametaro58
質問者

お礼

本当にありがとうございます! ただいま出先の為、実際に利用させていただくのは明日となりますが、お礼だけでも先にと投稿させていただきました。 貴重なお時間を使ってご回答・ご教示いただき、心から感謝申し上げます。

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

・振替日が指定日以降か?をチェックする ・振替日は、E列から右方向、1列おきに、左詰め という条件、かつ、VBAでよければ 以下のコードでいかがでしょうか。 Sub sample()  Dim RowCnt As Long  Dim ColCnt As Long  Dim PutCnt As Long  Dim GetWsh As Worksheet  Dim PutWsh As Worksheet    With ThisWorkbook   Set GetWsh = .Sheets("Sheet1")   Set PutWsh = .Sheets("Sheet2")  End With    RowCnt = 2  ColCnt = 5  PutCnt = 4    PutWsh.Rows("5:999").Delete  '出力行範囲削除    Do   If GetWsh.Cells(RowCnt, 1).Value = "" Then Exit Do   ColCnt = 5   Do    If GetWsh.Cells(RowCnt, ColCnt).Value = "" Then Exit Do    If GetWsh.Cells(RowCnt, ColCnt).Value >= _       PutWsh.Cells(2, 1).Value Then     PutCnt = PutCnt + 1     PutWsh.Cells(PutCnt, 1).Value = _      GetWsh.Cells(RowCnt, 1).Value     PutWsh.Cells(PutCnt, 2).Value = _      GetWsh.Cells(RowCnt, 3).Value     PutWsh.Cells(PutCnt, 3).Value = _      GetWsh.Cells(RowCnt, 4).Value     Exit Do    End If    ColCnt = ColCnt + 2   Loop   RowCnt = RowCnt + 1  Loop End Sub

kametaro58
質問者

補足

HohoPapa様 本当にありがとうございます。感謝以外の言葉が見つかりません…。 もしお許しいただけるようであれば、今一度お力をお借りすることはできませんでしょうか。 Sheet1のC列「番号」の部分なのですが、現在「銀行名」「支店名」「種目」「口座番号」を合わせたものを記入しています。Sheet1のC列(名前)とD列(口座)の間に、3列足して、それぞれを単独で入力した場合も、Sheet2に同じように抽出することは可能でしょうか。 Sheet1 A B C D E F G 1 契番 契約日 名前 銀行名 支店名 種目 番号 2 11111 2020/1/1 〇   □   △   ●  ■ Sheet2 1 振替予定日 2 (日付入力) 3 4 契約番号  名前 銀行名 支店名 種目 番号 5 11111    〇  □   △   ●  ■ 最初のご回答をいただいただけでも満足しなければならないのは十二分に承知しております。ただ、もし可能ならばと欲がでてしまいました。 本当に申し訳ありません。 今ひとたびのご教示の程、よろしくお願い申し上げます。

関連するQ&A