アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで競馬予想ソフトを作成中ですが、VBA初心者で勉強中につき
誰か教えてください。
*CSVから読み込んだデータを日付順に並べ替えるマクロ*
【例】《表》
馬番 馬名 開催日 ・・・
 1  愛  2005/12/1  ・・・ 
 1  愛  2006/1/27  ・・・
 1  愛  2006/2/25  ・・・
 1  愛  2006/3/29  ・・・
 1  愛  2006/4/22  ・・・
 1  愛  2006/4/29  ・・・
 2  色  2006/4/13  ・・・  
 3  牛  2006/4/13  ・・・
     ・
     ・
     ・
という表から別のワークシートに古い順から5つ分を抽出したいのです
『データが5つ以上ある場合もあれば、4つ以下の場合もあります。』最高18頭分ですがレースによって出走頭数も違うのでどういうふうに
マクロを組めばよいですか?
教えてください。
『この質問は競馬の知識がなくてもかまいません。』  

A 回答 (2件)

すみません。

No.1間違ってましたorz
Sub sample2()
  Dim sh As Worksheet
  Set sh = ActiveSheet
  sh.AutoFilterMode = False
  With sh.Range("a1").CurrentRegion
    .Sort Key1:=Range("A2"), Order1:=xlAscending _
      , Key2:=Range("C2"), Order2:=xlAscending _
      , Header:=xlYes, OrderCustom:=1, Orientation:=xlTopToBottom
    sh.Range("iv2:iv" & .Rows.Count).Formula = "=IF(A1=A2,IV1+1,1)" '■
    sh.Columns("IV").AutoFilter Field:=1, Criteria1:="<6" '■
    .Copy
  End With
  Sheets.Add
  ActiveSheet.Paste
  Application.CutCopyMode = False
  sh.Columns("IV").Delete
  Set sh = Nothing
End Sub
    • good
    • 0
この回答へのお礼

返事が遅くなりスミマセン。
この方法も参考にさせていただきます。
今、違う方法で作っている最中なので、
行き詰った時再度別の質問をすると思いますので
そのときはよろしくお願いします。

お礼日時:2006/05/10 01:40

こんにちは。


『馬番ごと』に開催日が古い順に最大5データを抽出。でいいのですか?
~~~~~~~~~~~~~~
A1セルからデータが途切れなくある状態で、IV列を作業用として使い、
新規シートを追加して抽出コピーします。
関数とオートフィルターを使います。
[マクロの記録]をしてみて、比べてみると良いかもしれません^ ^

Sub sample()
  Dim sh As Worksheet
  Set sh = ActiveSheet
  sh.AutoFilterMode = False
  With sh.Range("a1").CurrentRegion
    .Sort Key1:=Range("A2"), Order1:=xlAscending _
      , Key2:=Range("C2"), Order2:=xlAscending _
      , Header:=xlYes, OrderCustom:=1, Orientation:=xlTopToBottom
    sh.Range("iv2:iv" & .Rows.Count).Formula = "=IF(A1<>A2,1,IF(IV1=5,0,IV1+1))"
    sh.Columns("IV").AutoFilter Field:=1, Criteria1:="<>0"
    .Copy
  End With
  Sheets.Add
  ActiveSheet.Paste
  Application.CutCopyMode = False
  sh.Columns("IV").Delete
  Set sh = Nothing
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!