Menuへ
TOTO解析ソフトを作ってみよう

Step 5 ホーム勝ち数のカウントを追加


前回引き分け数をカウントしましたが、そのコードにホームでの勝ち数をカウントするよう追加します。
方法は引き分けと同様で、結果が1かどうか判定するだけです。





シート画面
ファイル名の右横のセルの引き分け回数の右横に「ホーム勝ち」を追加し回数を表示しています。
前回E2から結果を記入していましたが、今回K2に移動させました。
又、I3に全試合数を記入するようにしました。
ホーム勝ち合計、1回のホーム勝ち回数、発生率(%)、上位1位のホーム勝ち回数(MAX1)、上位2位のホーム勝ち回数(MAX2)を表示しています。
468試合中、約20%が引き分け、約45%がホーム勝ちになっています。
又、36回中5試合ホーム勝ちが10回、36回中6試合ホーム勝ち6回あったのが分かります。
ドロー、ホーム、アウェイ

シートコード
下記のコードに変更してください。

Private Sub ExGetMax(lcol As Long, lres() As Long)
    Dim lmax1 As Long
    Dim lmax2 As Long
    Dim lm As Long
    Dim i As Long
    Dim ln(13) As Long
    
    ln(0) = lres(0)
    lm = lres(0)
    For i = 1 To 13
        ln(i) = lres(i)
        If lres(i) > lm Then
            lm = lres(i)
            lmax1 = i
        End If
    Next
    
    ln(lmax1) = 0
    lm = ln(0)
    For i = 1 To 13
        If ln(i) > lm Then
            lm = ln(i)
            lmax2 = i
        End If
    Next
    
    Cells(6, lcol) = lmax1
    Cells(7, lcol) = lres(lmax1) & "回"
    Cells(8, lcol) = lmax2
    Cells(9, lcol) = lres(lmax2) & "回"
    
End Sub


Private Sub ExGetTotoData(sdir As String, lcount As Long)
    Dim i As Integer
    Dim sfina As String
    Dim tExcel As Object
    Dim tObj As Object
    Dim ltotaldraw As Long
    Dim ltotalhome As Long
    Dim lresdraw(13) As Long
    Dim lreshome(13) As Long
    Dim ldraw As Long
    Dim lhome As Long
    
    ltotaldraw = 0
    ltotalhome = 0
    For i = 0 To 13
        lresdraw(i) = 0
        lreshome(i) = 0
    Next
    
    If Right(sdir, 1) <> "\" Then sdir = sdir & "\"
    Set tExcel = CreateObject("Excel.Application")
    tExcel.Visible = True
    For i = 1 To lcount
        sfina = Cells(10 + i - 1, 2)
        
        Set tObj = tExcel.Application.Workbooks.Open(Filename:=sdir & sfina)
        
        Call ExCountDraw(tObj, ldraw, lhome)
        Cells(10 + i - 1, 3) = ldraw
        Cells(10 + i - 1, 4) = lhome
        ltotaldraw = ltotaldraw + ldraw
        ltotalhome = ltotalhome + lhome
        lresdraw(ldraw) = lresdraw(ldraw) + 1
        lreshome(lhome) = lreshome(lhome) + 1
        
        '保存せずに閉じる
        tObj.Close SaveChanges:=False
        Set tObj = Nothing
    Next
    tExcel.Visible = False
    Set tExcel = Nothing
    
    Range("I3") = lcount * 13
    
    Range("K3") = ltotaldraw
    Range("K4") = Format(ltotaldraw / lcount, "0.0")
    Range("K5") = Format((ltotaldraw / (lcount * 13)) * 100, "0.0")
    
    Range("L3") = ltotalhome
    Range("L4") = Format(ltotalhome / lcount, "0.0")
    Range("L5") = Format((ltotalhome / (lcount * 13)) * 100, "0.0")
    
    ExGetMax 11, lresdraw
    ExGetMax 12, lreshome
End Sub



Topへ

このサイトの内容を利用して発生した、いかなる問題にも一切の責任は負いませんのでご了承下さい。
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します。

Copyright (c) 2006-2007 Excel-Excel ! All rights reserved.