ナンバーズ3攻略 その1 過去データを取得する

スポンサーリンク
コンピュータ

この記事は、ナンバーズ3を攻略してお小遣いを増やせないか?との想いを元に試行錯誤した内容を記しています。内容にはオカルト、思い込み、希望等、根拠の無い推測も含まれます。信じる信じないは自己責任でお願いします。

ナンバーズ3攻略

過去データの取得

過去データは、宝くじ公式サイトを始め、多数ある予想、攻略サイトで公開されています。今回は、初期データとして、ナンバーズ34にて提供されているデータを使用させて頂きました。

【宝くじ公式サイト】
インターネットや宝くじ売り場で購入できる宝くじの最新情報をご紹介します。【宝くじ公式サイト】では、ジャンボ宝くじ等の普通くじ・スクラッチ・ロト7・ロト6・ミニロト・ナンバーズ4・ナンバーズ3・ビンゴ5といった各宝くじの特徴や、宝くじ公式サイトでのネット購入方法をはじめ、宝くじ売り場情報、宝くじの発売スケジュールなどをご...
ナンバーズ34 ナンバーズ定番サイト

ダウンロードファイル「numbers3.lzh」は、lzh形式にて圧縮されていますので解凍したファイル「numbers3.csv」を使用します。

今後は、エクセルVBAを使って攻略していくので、下記の記事で作成した、マクロ動作可能なフォルダ「d:\vba」内にて進めて行きます。

VBAを始めよう・最初に行う事
今回は、エクセルVBAを始める準備について記事にしています。 この記事の内容は、Office 2010 をベースに書いています。Office 2013、Office 2016、Office 2019 とは一部、見た目や文言が相違する場...

過去データの加工

ダウンロードファイルをそのまま使用しても良いのですが、加工及び情報付加してみました。

元データ

"ナンバーズ34","データダウンロードサービス","http://toe.jp/numbers34/"
"回別","抽選日","当せん番号","ストレート口数","ストレート金額","ボックス口数","ボックス金額","セットストレート口数","セットストレート金額","セットボックス口数","セットボックス金額","ミニ口数","ミニ金額"
"第5163回","2019/04/25(木)","830","130","70,600","602","11,700","299","41,100","1,141","5,800","578","7,000"
"第5162回","04/24(水)","152","63","94,300","614","15,700","139","55,000","1,315","7,800","401","9,400"
"第5161回","04/23(火)","452","75","90,600","570","15,100","156","52,800","1,241","7,500","437","9,000"
"第5160回","04/22(月)","764","82","94,100","686","15,600","161","54,800","1,245","7,800","963","9,400"
  • 回別データの「第」と「回」を取り除き、数値とする
  • 抽選日をyyyy/mm/dd形式に変更する(西暦付加、曜日除去)
  • 「曜日」列の追加
  • ストレート当せん番号の三桁表示(前ゼロ付加)
  • 「ボックス当せん番号(最小値)」列追加
  • 「ミニ当せん番号」列追加
  • 「九星」列追加
  • 「六曜」列追加
  • 「カバラ」列追加

ちょっと盛り込み過ぎた感がありますが、エクセルVBAを使って加工して行きたいと思います。

CSVファイルの取り込み

取り込み方法は色々ありますが、今回は QueryTables を使っています。

Private Const NUMBERS_CSV = "d:\vba\Numbers3.csv"
Dim shtCsv As Worksheet
Dim qtCsv As QueryTable
    Set shtCsv = Worksheets.Add() '新規シート作成
    Set qtCsv = shtCsv.QueryTables.Add(Connection:="TEXT;" & NUMBERS_CSV, Destination:=Range("A1")) 'CSV取り込み
    With qtCsv
        .TextFileCommaDelimiter = True 'カンマ区切り
        .Refresh 'シート上に出力
        .Delete 'オブジェクト削除
    End With

回、抽選日の加工

抽選日と当せん番号の間に3列追加し、加工した回、抽選日、曜日を転記します。(最終的には元データの回、抽選日は削除します。)

With shtCsv
    .Range("C:E").Insert '回、抽選日、曜日
    '回
    .Cells(i, 3) = CInt(Replace(Replace(.Cells(i, 1), "第", ""), "回", ""))
    '抽選日
    If Len(.Cells(i, 2)) > 10 Then
        strYear = Left$(.Cells(i, 2), 4)
        .Cells(i, 4) = CDate(Left$(.Cells(i, 2), 10))
    Else
        .Cells(i, 4) = CDate(strYear & "/" & Left$(.Cells(i, 2), 5))
    End If
    '曜日
    .Cells(i, 5) = WeekdayName(Weekday(.Cells(i, 4)), True)
    i = i + 1
End With

当せん番号の加工

当せん番号の右に2列追加しBOX(最小値)、MINIの当せん番号を転記します。

With shtCsv
    'BOX,MINI
    .Cells(i, 7) = BoxMinimum(.Cells(i, 6))
    .Cells(i, 8) = CInt(Mid$(Format(.Cells(i, 6), "000"), 2, 2))
End With

Private Function BoxMinimum(ByVal intSt As Integer) As Integer
    Dim strSt As String
    Dim intPtn(5) As Integer
    
        'BOX最小値取得
        strSt = Format(intSt, "000")
        intPtn(0) = Mid$(strSt, 1, 1) & Mid$(strSt, 2, 1) & Mid$(strSt, 3, 1)
        intPtn(1) = Mid$(strSt, 1, 1) & Mid$(strSt, 3, 1) & Mid$(strSt, 2, 1)
        intPtn(2) = Mid$(strSt, 2, 1) & Mid$(strSt, 1, 1) & Mid$(strSt, 3, 1)
        intPtn(3) = Mid$(strSt, 2, 1) & Mid$(strSt, 3, 1) & Mid$(strSt, 1, 1)
        intPtn(4) = Mid$(strSt, 3, 1) & Mid$(strSt, 1, 1) & Mid$(strSt, 2, 1)
        intPtn(5) = Mid$(strSt, 3, 1) & Mid$(strSt, 2, 1) & Mid$(strSt, 1, 1)
        BoxMinimum = WorksheetFunction.Min(intPtn(0), intPtn(1), intPtn(2), intPtn(3), intPtn(4), intPtn(5))
End Function

とりあえず、今回はここまでで終わります。次回は九星、六曜、カバラの転記と見た目(書式設定)を行います。

コメント

タイトルとURLをコピーしました