• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:いつもありがとうございます。エクセル2003でVBAのマクロを組もうと)

エクセル2003でVBAのマクロを組んで、日付と入金予定日を参照して期限オーバーしている行を収集する方法

このQ&Aのポイント
  • エクセル2003でVBAのマクロを使用して、日付と入金予定日を参照し、期限オーバーしている行を収集する方法について教えてください。
  • Sheet1には売上日、顧客名、商品名、入金予定日のデータがあります。Sheet2のセルD3には現在の日付が表示されています。
  • オートフィルターを使用して、日付が今日の日付と一致する行をフィルタリングする方法をVBAで制御したいと考えています。どのようにすれば良いでしょうか?

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

  • ベストアンサー
noname#192382
noname#192382
回答No.1

セルのD2にシート1のデータ行数を入れておくとすると、次のマクロでご希望の処理が出来そうです。お試しをお願いします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2010/2/22 ユーザー名 : ' ' Dim mydate As Date, mygyoa As Integer, mygyob As Integer, gyosu As Integer mygyob = 4 Sheets("Sheet2").Select mydate = Cells(3, 4) gyosu = Cells(2, 4) mygyob = 5 For mygyoa = 2 To gyosu Sheets("Sheet1").Select If Sheets("sheet1").Cells(mygyoa, 5) < mydate Then 'MsgBox "yes" Range(Cells(mygyoa, 1), Cells(mygyoa, 5)).Select Selection.Copy Sheets("Sheet2").Select Range(Cells(mygyob, 1), Cells(mygyob, 5)).Select ActiveSheet.Paste mygyob = mygyob + 1 Else ' MsgBox "no" End If Next End Sub

daihatu
質問者

補足

早速のご回答、誠にありがとうございます。せっかく記述いただいたコードですが標準モジュールに貼り付けて実行しても、何も起こりませんでした。記述の理解が出来ていないせいもありますが、動作するとどのようになるのでしょうか?質問の内容があいまいで申し訳ありません。今日の日付と比較して経過してたら、その日付だけをリスト表示する。オートフィルターを手動で行えば、オプションで今日の日付を入力して【少ない】を選択して表示させるのような具合です。よろしくお願いします。

関連するQ&A