ここでは、無料版と製品版との相違点、および、製品版(KyoteiWinnerプロフェッショナル版)の機能である「関数入力」について説明します。
| 項目 |
無料版 |
製品版 |
| 予想会員用機能
| ○ |
○ |
| 買い目入力
| ○ |
○ |
| スキップ条件入力
| ○ |
○ |
| 買い目条件入力
| ○ |
○ |
| 資金配分入力
| ○ |
○ |
| 追い上げ表の使用
| ○ |
○ |
| オッズ補正機能
| ○ |
○ |
| メール機能
| ○ |
○ |
| 停止条件 |
○ |
○ |
| 競艇オフィシャルWebサイト自動入金 |
○ |
○ |
| 自動投票 |
○ |
○ |
| テストモード |
○ |
○ |
| ログ自動送信 |
○ |
○ |
| 的中情報表示 |
○ |
○ |
| 関数入力 |
× |
● |
無料版と製品版の相違点は、「関数入力」機能のみです。
無料版の機能では、ご自分の思ったとおりのことができないという場合に、「関数入力」機能を使用してプログラム化して実現します。
関数入力機能は、一言で言えば「したいことができます」。
実現したい機能を「1つの関数(*23)」で記述します。この関数機能は、VB.NET(Visual Basic .NET:ビジュアルベーシックドットネット)のプログラミングによって実現します。プログラム知識を必要としますので、関数入力機能をご使用の前に、基本的な文法等を学習することをお奨めいたします。
 |
関数入力は、ご自分で実現したい機能をVB.NETのプログラミングで行います |
(*23)「関数」とは、機能をひとまとまりにしたプログラムです。たとえば、「尼崎の全Rで単勝1番人気を200円で購入する」という機能があると、この機能が1つの関数です。
関数入力機能で使用できる「システム変数」を説明します。
これらのシステム変数を用いてプログラミングすることになります。システム変数には、「開催情報」「選択開催場」「選択レース」「買い目リスト」「成績リスト」の5つがあります。
| 書式 |
返却値
の型 |
| 開催情報. |
開催場 |
(競艇場). |
レース |
(レース番号). |
単勝
複勝
二連単
二連複
三連単
三連複
拡連複 |
買い目
人気 |
(買い目).
(人気). |
オッズ
最低オッズ
最高オッズ
人気
買い目 |
Double
Double
Double
Integer
String |
| 結果. |
単勝.
複勝.
二連単.
二連複.
三連単.
三連複.
拡連複. |
買い目
配当 |
String
Integer |
| レース名 |
String |
| 開催場名 |
String |
(*)黒字は定型書式(決まった書式)、青字は可変書式(自由に指定できる書式)です。点線は複数の指定で1つの意味を成す書式です。以後のシステム変数の表でも、同様です。
開催されている競艇場のオッズ・人気・買い目・配当情報を取得できます。このシステム変数を使用する場合には、関数入力設定画面の「オッズ情報取得範囲」で指定されている競艇場は「全競艇場」が前提とされます。もし、個別の競艇場を指定している場合には、「(競艇場).」には、その指定した競艇場を設定しなければなりません。
表の1段は、現在または将来のレースに対するオッズ・人気・買い目情報を取得します。表の2段は、過去のレースに対する結果の買い目・配当情報を取得します。表の3段は、指定したレース番号に対するレース名(レース番号そのもの)を取得します。表の4段は、開催されている開催場名(競艇場)を取得します。
可変書式である青字の競艇場、レース番号、買い目または人気は文字列で指定します。たとえば、次のような書式があります。
開催情報.開催場("尼崎").レース("5").三連単買い目("1-2-3").オッズ
とすると、本日開催している「尼崎」競艇場の「5」Rの3連単買い目「1-2-3」のオッズを、このシステム変数を含む関数が実行された時点で取得します。取得された値(返却値)は、倍精度型(Double)の小数点を含んだ数値となります。
開催情報、(競艇場)、(レース番号)、(買い目)または(人気)、結果、結果の勝ち式の後には、必ずピリオド「.」を付けてください。このピリオドで、1つの意味を成します。また、文字列を直接指定する場合には、上記の例のように「””」で囲みます。ご自分で変数を用意(宣言)する場合には、その変数名を指定します。通常は、例のような直接指定をするケースはあまりなく、変数を指定してループ処理と絡めてプログラミングします。
「最低オッズ」と「最高オッズ」は、勝ち式が「拡連複」のみ有効です。他の勝ち式の場合は、「オッズ」と同じ値が「最低オッズ」と「最高オッズ」に設定されます。
他の例としては、
@開催情報.開催場("住之江").レース("1").拡連複買い目("1-3").最低オッズ
A開催情報.開催場("住之江").レース("1").拡連複買い目("1-3").最高オッズ
B開催情報.開催場("住之江").レース("1").三連単買い目("1-6-3").人気
C開催情報.開催場("住之江").レース("1").単勝人気("1").買い目
D開催情報.開催場("住之江").レース("1").結果.三連単.買い目
E開催情報.開催場("住之江").レース("1").結果.単勝.配当
F開催情報.開催場("住之江").レース("1").レース名
G開催情報.開催場("住之江").開催場名
の指定ができます。意味は、次のとおりです。ただし、前段部分の「本日開催の住之江競艇場の1Rの」は同じですので@〜Fは省略します。末尾のかっこは取得後の返却値の型です。
@拡連複買い目「1-3」の最低オッズを取得します(Double)
A拡連複買い目「1-3」の最高オッズを取得します(Double)
B3連単買い目「1-6-3」の人気を取得します(String)
C単勝人気が「1」番の買い目を取得します(String)
D的中結果のうち3連単の買い目を取得します(String)
E的中結果のうち単勝の配当額を取得します(Integer)
Fレース名を取得します(String):「”1”」が返却されます
G住之江競艇場の開催場名を取得します(String):「”住之江”」が返却されます
【参考】
| |
KyoteiWinnerで買い目、スキップ、資金配分等で勝ち式を指定する場合には、「3連単」等、算用数字を使用していますが、関数入力機能では、漢数字を使用します(三連単等)。これは、VB.NETの仕様上の制限があるためです。 |
 |
システム変数「開催情報」は、本日開催している競艇場のオッズ・人気・買い目・配当情報を取得します |
 |
システム変数は、ピリオドで書式をつないで1つの意味を成します |
 |
文字列は、直接指定(「””」で囲む)と変数指定(変数宣言)があります |
 |
「最低オッズ」と「最高オッズ」は、勝ち式が「拡連複」のみ有効です |
| 書式 |
返却値の型 |
| 選択開催場. |
レース |
(レース番号). |
単勝
複勝
二連単
二連複
三連単
三連複
拡連複 |
買い目
人気 |
(買い目).
(人気). |
オッズ
最低オッズ
最高オッズ
人気
買い目 |
Double
Double
Double
Integer
String |
| 結果. |
単勝.
複勝.
二連単.
二連複.
三連単.
三連複.
拡連複. |
買い目
配当 |
String
Integer |
| レース名 |
String |
| 開催場名 |
String |
関数入力設定画面の「オッズ情報取得範囲」で指定されている競艇場のオッズ・人気・買い目・配当情報を取得できます。また、「オッズ情報取得範囲」で指定した開催場名も取得できます。ただし、「オッズ情報取得範囲」で「全競艇場」が指定されている場合は、機能しません(オッズ・人気・買い目・配当情報を取得できません)。
表の1段は、現在または将来のレースに対するオッズ・人気・買い目情報を取得します。表の2段は、過去のレースに対する結果の買い目・配当情報を取得します。表の3段は、指定したレース番号に対するレース名(レース番号そのもの)を取得します。表の4段は、「オッズ情報取得範囲」で指定されている開催場名(競艇場)を取得します。
可変書式である青字のレース番号、買い目または人気は文字列で指定します。たとえば、次のような書式があります。
選択開催場.レース("5").三連単買い目("1-6-3").人気
とすると、「オッズ情報取得範囲」で指定されている競艇場の「5」Rの3連単買い目「1-6-3」の人気を、このシステム変数を含む関数が実行された時点で取得します。取得された値(返却値)は、文字列型(String)の文字列となります。
選択開催場、(レース番号)、(買い目)または(人気)、結果、結果の勝ち式の後には、必ずピリオド「.」を付けてください。
他の例としては、
@選択開催場.レース("1").三連単買い目("1-2-3").オッズ
A選択開催場.レース("1").拡連複買い目("1-3").最低オッズ
B選択開催場.レース("1").拡連複買い目("1-3").最高オッズ
C選択開催場.レース("1").単勝人気("1").買い目
D選択開催場.レース("1").結果.三連単.買い目
E選択開催場.レース("1").結果.単勝.配当
F選択開催場.レース("1").レース名
G選択開催場.開催場名
の指定ができます。意味は、次のとおりです。ただし、前段部分の「「オッズ情報取得範囲」で指定されている競艇場の1Rの」は同じですので@〜Fは省略します。末尾のかっこは取得後の返却値の型です。
@3連単買い目「1-2-3」のオッズを取得します(Double)
A拡連複買い目「1-3」の最低オッズを取得します(Double)
B拡連複買い目「1-3」の最高オッズを取得します(Double)
C単勝人気が「1」番の買い目を取得します(String)
D的中結果のうち3連単の買い目を取得します(String)
E的中結果のうち単勝の配当額を取得します(Integer)
Fレース名を取得します(String):「”1”」が返却されます
G「オッズ情報取得範囲」で指定されている競艇場名(開催場名)を取得します
(String)
 |
システム変数「選択開催場」は、関数入力設定画面の「オッズ情報取得範囲」で指定されている競艇場のオッズ・人気・買い目・配当情報を取得します |
 |
「オッズ情報取得範囲」で指定されている競艇場名も取得できます |
 |
「オッズ情報取得範囲」で「全競艇場」が指定されている場合は、機能しません(オッズ・人気・買い目・配当情報を取得できません) |
| 書式 |
返却値の型 |
| 選択レース. |
単勝
複勝
二連単
二連複
三連単
三連複
拡連複 |
買い目
人気 |
(買い目).
(人気). |
オッズ
最低オッズ
最高オッズ
人気
買い目 |
Double
Double
Double
Integer
String |
| 結果. |
単勝.
複勝.
二連単.
二連複.
三連単.
三連複.
拡連複. |
買い目
配当 |
String
Integer |
| レース名 |
String |
関数入力設定画面の「オッズ情報取得範囲」で指定されているレース番号のオッズ・人気・買い目・配当情報を取得できます。また、「オッズ情報取得範囲」で指定したレース名も取得できます。ただし、「オッズ情報取得範囲」で「全競艇場」が指定されている場合、または、「全R」が指定されている場合は機能しません(オッズ・人気・買い目・配当情報を取得できません)。
表の1段は、現在または将来のレースに対するオッズ・人気・買い目情報を取得します。表の2段は、過去のレースに対する結果の買い目・配当情報を取得します。表の3段は、「オッズ情報取得範囲」で指定されているレース名(レース番号そのもの)を取得します。
可変書式である青字の買い目または人気は文字列で指定します。たとえば、次のような書式があります。
選択レース.三連単買い目("1-6-3").人気
とすると、「オッズ情報取得範囲」で指定されている競艇場、レース番号の3連単買い目「1-6-3」の人気を、このシステム変数を含む関数が実行された時点で取得します。取得された値(返却値)は、文字列型(String)の文字列となります。
選択レース、(買い目)または(人気)、結果、結果の勝ち式の後には、必ずピリオド「.」を付けてください。
他の例としては、
@選択レース.三連単買い目("1-2-3").オッズ
A選択レース.拡連複買い目("1-3").最低オッズ
B選択レース.拡連複買い目("1-3").最高オッズ
C選択レース.単勝人気("1").買い目
D選択レース.結果.三連単.買い目
E選択レース.結果.単勝.配当
F選択レース.レース名
の指定ができます。意味は、次のとおりです。ただし、前段部分の「「オッズ情報取得範囲」で指定されている競艇場とレース番号の」は同じですので省略します。末尾のかっこは取得後の返却値の型です。
@3連単買い目「1-2-3」のオッズを取得します(Double)
A拡連複買い目「1-3」の最低オッズを取得します(Double)
B拡連複買い目「1-3」の最高オッズを取得します(Double)
C単勝人気が「1」番の買い目を取得します(String)
D的中結果のうち3連単の買い目を取得します(String)
E的中結果のうち単勝の配当額を取得します(Integer)
Fレース名を取得します(String)
 |
システム変数「選択レース」は、関数入力設定画面の「オッズ情報取得範囲」で指定されている競艇場とレース番号のオッズ・人気・買い目・配当情報を取得します |
 |
「オッズ情報取得範囲」で指定されているレース名も取得できます |
 |
「オッズ情報取得範囲」で「全競艇場」または「全R」が指定されている場合は、機能しません(オッズ・人気・買い目・配当情報を取得できません) |
| 書式 |
返却値の型 |
| 買い目リスト. |
データ |
(リストインデックス). |
グループ
開催場
レース
勝式
買い目
金額
利益金額
削除
スキップ |
String
String
String
String
String
String
String
−
− |
| データ数 |
Integer |
追加
(グループ番号,開催場,レース,
勝式,買い目,金額,ID) |
− |
(*)「返却値の型」が「−」で表示されている書式は、情報取得ではなく、メソッド(動作)です。
買い目リストボックスの買い目データの情報を取得または買い目を追加・削除・スキップできます。ただし、各リストの「状態」が「予約」以外が表示されているリストの情報取得は、機能しません(すべての情報を取得できません)。
表の1段は、買い目リストボックスの買い目リストの情報取得、買い目の削除・スキップします。表の2段は、買い目リストボックス内にある買い目リストのデータ件数を取得します。表の3段は、指定した内容で買い目リストボックスに買い目を追加します。
可変書式である青字のリストインデックスは整数、追加メソッドの引数は文字列で指定します。たとえば、次のような書式があります。
買い目リスト.データ(0).開催場
とすると、買い目リストボックスのリストインデックスが「0」(最初の買い目データ)の開催場(競艇場)を、このシステム変数を含む関数が実行された時点で取得します。取得された値(返却値)は、文字列型(String)の文字列となります。
買い目リスト、(リストインデックス)の後には、必ずピリオド「.」を付けてください。
「(リストインデックス)」は、買い目リストボックスの表示上の順番ではなく、次の順番でソートされた順番によって決定されたインデックスです。インデックスは、「0」から始まり、「データ件数−1」までです。なお、買い目リストボックスの各列(「ID」列等)をクリックして昇順または降順に表示上、リストの順番を変更しても、この「(リストインデックス)」は変更されません。
@グループ番号(昇順)
A投票日(昇順)
B実行時間(昇順)
C種別(昇順)
DID(昇順)
「データ(リストインデックス).金額」の「金額」は、文字列で取得されます。よって、この値を計算する場合には、型変換が必要となりますので、注意が必要です。また、買い目を追い上げ表によって追加している場合には、この「金額」は常に「”0”」となります。
「追加(グループ番号,開催場,レース,勝式,買い目,金額,ID)」の「金額」は、次の形式で指定します。
●固定金額 金額のみで指定(例:100)
●利益金額 金額の前に「利益」を付けて指定(例:利益1500)
●追い上げ表 追い上げ表のファイル名を指定(例:オッズ40倍@AB)
「追加(グループ番号,開催場,レース,勝式,買い目,金額,ID)」の「ID」は、省略可能です。省略すると、任意のIDが割り振られます。もし、指定する場合には、既存のIDと重複しないように指定してください。
他の例としては、
@買い目リスト.データ(0).グループ
A買い目リスト.データ(0).レース
B買い目リスト.データ(0).勝式
C買い目リスト.データ(0).買い目
D買い目リスト.データ(0).金額
E買い目リスト.データ(0).利益金額
F買い目リスト.データ(0).削除
G買い目リスト.データ(0).スキップ
H買い目リスト.データ数
I買い目リスト.追加("13","尼崎","8","三連単","1-2-4","500",”3”)
J買い目リスト.追加("13","尼崎","8","三連単","1-2-4","利益1500",””)
の指定ができます。意味は、次のとおりです。ただし、前段部分の「買い目リストボックスの最初の買い目データの」は同じですので@〜Gは省略します。末尾のかっこは取得後の返却値の型です(「−」は返却値がありません)。
@グループ番号を取得します(String)
Aレース番号を取得します(String)
B勝ち式を取得します(String)
C買い目を取得します(String)
D金額を取得します(String):追い上げ表が指定されている場合は「”0”」です
E利益金額を取得します(String)
Fデータを削除します(−)
Gデータをスキップします(−)
H買い目リストボックスにある買い目データの「状態」が「予約」のデータの総件
数を取得します(Integer)
I尼崎の8Rの3連単「1-2-4」を固定金額500円でグループ番号「13」、ID「3」と
指定して買い目を追加します(−)
J尼崎の8Rの3連単「1-2-4」を利益金額1500円でグループ番号「13」、ID指定
なしで買い目を追加します(−)
【参考】
| |
このシステム変数を利用する場合は、通常、「データ数」で総件数を取得し、その値を用いてループ処理します。IDを取得することはできないため、処理したいデータをいったん配列に格納する場合があります。そのときには、その配列内のデータに対して実現したい機能をプログラミングした結果を反映するために、再度データをアクセスする必要があります。その際に、最も効率的に処理するには、配列に「リストインデックス」を格納することをお奨めします。 |
 |
システム変数「買い目リスト」は、買い目リストボックスの各リストの情報を取得します |
 |
買い目リストデータで追い上げ表を使用しているリストの「金額」は常に「”0”」です |
 |
買い目リストの「状態」が「予約」以外の情報取得は、機能しません(すべての情報を取得できません) |
 |
「(リストインデックス)」は、買い目リストボックスの表示順ではありません |
 |
追加メソッドの「金額」は、固定金額・利益金額・追い上げ表指定で、指定方法が異なります |
 |
追加メソッドの「ID」は、省略可能です。省略した場合は任意のIDが割り振られます。 |
| 書式 |
返却値の型 |
| 成績リスト. |
データ |
(リストインデックス). |
グループ
開催場
レース
勝式
買い目
金額
配当
状態 |
String
String
String
String
String
String
String
String |
| データ数 |
Integer |
成績リストの買い目結果データの情報を取得できます。ただし、成績リスト([情報]メニューから[成績]をクリックする、または、メイン画面右側の[成績]タブをクリックします)にデータがない場合は、機能しません。
表の1段は、成績リストの買い目結果リストのすべての情報を取得します。表の2段は、成績リスト内にある買い目結果リストのデータ件数を取得します。
可変書式である青字のリストインデックスは整数で指定します。たとえば、次のような書式があります。
成績リスト.データ(0)..開催場
とすると、成績リストのリストインデックスが「0」(最初の成績データ)の開催場(競艇場)を、このシステム変数を含む関数が実行された時点で取得します。取得された値(返却値)は、文字列型(String)の文字列となります。
成績リスト、(リストインデックス)の後には、必ずピリオド「.」を付けてください。
「(リストインデックス)」は、成績リストの表示上の順番ではなく、成績リストにリストされた順番のインデックスです。インデックスは、「0」から始まり、「データ件数−1」までです。なお、成績リストの各列(「買目」列等)をクリックして昇順または降順に表示上、リストの順番を変更しても、この「(リストインデックス)」は変更されません。
「データ(リストインデックス).金額」の「金額」は、文字列で取得されます。よって、この値を計算する場合には、型変換が必要となりますので、注意が必要です。
他の例としては、
@成績リスト.データ(0).グループ
A成績リスト.データ(0).レース
B成績リスト.データ(0).勝式
C成績リスト.データ(0).買い目
D成績リスト.データ(0).金額
E成績リスト.データ(0).配当
F成績リスト.データ(0).状態
G成績リスト.データ数
の指定ができます。意味は、次のとおりです。ただし、前段部分の「成績リストの最初の買い目結果データの」は同じですので@〜Fは省略します。末尾のかっこは取得後の返却値の型です。
@グループ番号を取得します(String)
Aレース番号を取得します(String)
B勝ち式を取得します(String)
C買い目を取得します(String)
D金額を取得します(String)
E配当額を取得します(String)
F状態(「投票済」や「的中」等)を取得します(String)
G成績リストにある買い目結果データの総件数を取得します(Integer)
【参考】
| |
このシステム変数を利用する場合は、通常、「データ数」で総件数を取得し、その値を用いてループ処理します。処理したいデータをいったん配列に格納する場合があります。そのときには、その配列内のデータに対して実現したい機能をプログラミングした結果を反映するために、再度データをアクセスする必要があります。その際に、最も効率的に処理するには、配列に「リストインデックス」を格納することをお奨めします。 |
 |
システム変数「成績リスト」は、成績リストの各リストの情報を取得します |
 |
成績リストにデータがない場合は、機能しません |
 |
「(リストインデックス)」は、成績リストの表示順ではありません |
関数入力機能でプログラミングする際に必要な、関数と変数の宣言を説明します。
基本的な作成方法は、
●関数宣言
●変数宣言
●処理記述
の順番となります。
関数の宣言は、次の書式です。
Public Sub 関数名()
End Sub
「関数名」は、任意の名称を付けることができますが、わかりやすいように、機能を日本語化した名称にすることをお奨めします。たとえば、万舟券が的中した後は買い目をスキップする関数であれば「万舟券的中後スキップ」などです。
変数宣言や処理記述は、「Public Sub 関数名()」と「End Sub」の間に記述します。
【参考】
| |
VB.NETに関する、文法、制約、制限等の詳細は、ここでは説明いたしませんので、書籍や他の関連Webサイトをご参照ください。 |
 |
関数名は、一目でわかるような名称にしましょう! |
変数の宣言は、次の書式です。
Dim 変数名 As 型
「変数名」も関数名同様、わかりやすい名称にすることをお奨めします。たとえば、買い目リストの総数であれば「買い目総数」などです。
ただし、ループカウンタなどは、一般的なプログラミング手法に則って、半角英字1文字の「i」や「j」等をご使用ください。
「型」には、一般的に使用する次のようなものがあります。
| 型 |
意味 |
| Integer |
整数 |
| Double |
小数点を含む数値 |
| String |
文字列 |
| Boolean |
論理値 |
他にも使用できる「型」があります。実現させたい機能を関数で記述する際に、上記以外の型をご使用になりたい場合は、書籍等を参考にしてご使用ください。
 |
変数名は、機能を表す場合はわかりやすい名称で、ループカウンタや作業用の場合は半角英数字で記述しましょう! |
処理の記述は、実現したい機能によって、さまざまです。
次のような、要素(文法)がありますので、プログラム要件によって使い分けます。
●演算子 +、−、*、/、=、>=、<> など
●比較文 If文、Select文 など
●ループ文 Do文、For文 など
●分岐 Exit文、Next など
●配列 Dim 買い目(10) As String など
●構造体 Type
●組み込み関数 型変換、文字列操作、ファイル操作、時間 など
●注釈(コメント) 「'」
 |
プログラム要件によって、文法を使い分けます |
KyoteiWinnerメイン画面の[関数入力]タブをクリックすると、関数入力の設定画面が表示されます。
ここからは、個別の設定項目について説明します。

関数を実行する日付が表示されます。指定することはできません。
※前日設定の場合は、前日の21時に日付が切り替わります。たとえば、12月22日の21時以降に買い目を追加して、関数を設定する場合は、この「実行日」は「12月23日」になっています。
関数が追加されると、買い目リストボックスの左から4番目の「投票日」に表示されます。
 |
実行日は指定できません。前日設定する場合は、21時以降に設定します。 |

関数を実行する時間です。任意の時間に指定することができますが、午前10時10分以降に設定してください。
※午前10時10分以前に設定しますと、午前10時10分に実行されます。
スピンボタン(▲と▼)をクリックすると、時間や分を進めたり、遅らせたりできます。単にスピンボタンをクリックすると「時間」が変化しますので、分を変更する場合は、「分」をマウスでクリックした後にスピンボタンをクリックしてください。
また、直接変更することもできます。直接変更する場合は、時間であれば時間部分に、分であれば分部分にマウスでクリックして直接入力します。
「現在時刻に設定」ボタンをクリックすると、現在の時刻が設定されます。
「実行時間」は、関数を設定し買い目リストボックスに追加された後は変更できませんので、最初にどの時間で実行させるか、十分考慮して設定する必要があります。
関数が追加されると、買い目リストボックスの左から5番目の「実行時間」に表示されます。
 |
実行時間は買い目リストボックスに追加された後は変更できません |
 |
実行時間は午前10時10分以降を設定してください |

関数内でオッズを参照するために、オッズを取得する範囲を指定します。
| @競艇場の指定 |
※ |
すべての競艇場を示す「全競艇場」と、現在開催している競艇場から選択します。
現在開催している競艇場(点灯している競艇場)は自動的にリストされています |
| Aレースの指定 |
|
すべてのレースを示す「全」と、1〜12から選択します。 |
ここで取得されないオッズは、関数内で参照できません。たとえば、「尼崎」競艇場の「全」Rと指定して、関数内で「住之江」のオッズは参照(取得)できません。
「全競艇場」「全」Rと指定すると、現在開催している競艇場の全レースのオッズを取得するため、処理時間がかかります。よって、関数内でオッズを参照している競艇場を指定することをお奨めします。
 |
関数内でオッズを取得する場合には、その対象の競艇場を指定します |

実行する関数を指定したり、関数を編集したり、サンプルファイルを表示したりします。
| @関数の指定 |
※ |
実行したい関数をプルダウンから選択します。
1つも関数が定義されていない場合は「使用できる関数がありません。」と表示されます |
| 関数編集 |
※
※ |
関数を編集します。関数編集ウィンドウが表示されます。
関数編集ウィンドウに、複数の関数を記述します。それぞれの関数名が@のプルダウンに表示されます。
このボタンをクリックして、関数編集ウィンドウで関数を作成・編集中に、他の買い目リストボックス内の買い目やスキップ条件等が実行時間に達すると、それらは実行されませんので、ご注意ください |
| 記述方法 |
|
簡単なサンプルファイル(ReadmeFunc.txt)を別ウィンドウにメモ帳等のテキストエディタによって表示します。 |
すべての関数は、関数編集ウィンドウに記述します。関数を新規に作成する場合、または、既存の関数を編集する場合には、[関数編集]ボタンをクリックします。
すべての関数は、1つのファイル(KyoteiWinner.src)に収められています。このことから、関数ごとに「関数編集ウィンドウ」が存在するわけではなく、1つの「関数編集ウィンドウ」で複数の関数を記述します。
 |
実行したい関数を選択しますが、すべての関数は[関数編集]ボタンをクリックした関数編集ウィンドウで記述します |
 |
関数編集中に、買い目リストボックス内のリストが実行時間に達してしまうと、そのリストは実行されません |
ここまでの内容を設定後に、[追加]ボタンで、買い目リストボックスに追加します。

[追加]ボタンをクリックして追加しませんと、買い目同様、動作しませんので、ご注意ください。
 |
関数を選択したら[追加]ボタンで買い目リストボックスに追加します |
この[追加]ボタン、[削除]ボタン、[すべて削除]ボタンは、買い目リストボックスの共通のボタンです。誤って[削除]ボタンや[すべて削除]ボタンをクリックしてしまうと、スキップ条件はおろか、買い目まで削除されてしまいますので、ご注意ください。
【ご注意】一度削除された買い目リストボックス内のデータは、二度と復活しません
 |
[削除][すべて削除]ボタンは注意して扱いましょう! |
関数入力の設定画面の[関数編集]ボタンをクリックすると、関数編集ウィンドウが表示されます。

関数を追加したり、編集したり、エラーチェックをします。
| ソースコード |
※ |
関数を実際に記述する部分です。テキストエディタ感覚で入力します。
マウスの右クリックで一般的に使用する機能が表示されます |
| エラー出力 |
※
|
「ソースコード」に記述した関数に文法エラーがある場合に、そのエラーが表示されます。
エラーをクリックして該当するエラーにジャンプする機能等はありません |
| エラー確認 |
※ |
「ソースコード」に記述した関数に文法エラーがあるかどうか確認します。
保存する前には、必ずこのボタンをクリックしてエラーがないかどうか確認してください |
| 保存 |
|
「ソースコード」に記述したすべての内容を保存します。 |
| 閉じる |
※ |
関数編集ウィンドウを閉じます。
保存せずに閉じようとするとメッセージが表示されます |
すべての関数は、「ソースコード」に記述します。それぞれの関数は、「Public Sub 関数名()」と「End Sub」の間に記述します。
この「ソースコード」内に定義された関数が、前述の「関数」プルダウンに記載されます。
 |
関数を新規作成または編集した場合には、必ず[エラー確認]ボタンをクリックして、すべてのエラーを取り除いてください |
ここからは、関数の例題を記述し、説明します。
関数の例はここで挙げる以外にも、関数入力の設定画面の[記述方法]ボタンをクリックした「ReadmeFunc.txt」に記載されていますので、合わせてご覧ください。
【ご注意】VB.NETの文法に関しては説明を省略します
【関数概要】関数入力の設定画面の「オッズ情報取得範囲」で指定した競艇場とレース番
号の単勝人気の上位3番を取得して、その艇番の3連単ボックス買いを行う
関数を新規に作成するため、関数入力の設定画面の「関数編集」ボタンをクリックし、関数編集ウィンドウの「ソースコード」に次の内容を記述します。
【ご注意】作成中に買い目リストボックス内の各リストの実行時間が到来しないようにしてく
ださい。もし、到来してしまうと、そのリストは実行されません。
| Public Sub 単勝人気三連単ボックス買い() |
| |
Dim 単勝1 As String
Dim 単勝2 As String
Dim 単勝3 As String
' 単勝1、2、3番人気の買い目を取得
単勝1 = 選択レース.単勝人気("1").買い目
単勝2 = 選択レース.単勝人気("2").買い目
単勝3 = 選択レース.単勝人気("3").買い目
' グループ「15」、選択開催場、選択レースの3連単ボックス買い目を固定金額100円購入します。
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 単勝1 & "-" & 単勝2 & "-" & 単勝3, "100")
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 単勝1 & "-" & 単勝3 & "-" & 単勝2, "100")
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 単勝2 & "-" & 単勝1 & "-" & 単勝3, "100")
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 単勝2 & "-" & 単勝3 & "-" & 単勝1, "100")
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 単勝3 & "-" & 単勝1 & "-" & 単勝2, "100")
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 単勝3 & "-" & 単勝2 & "-" & 単勝1, "100")
|
| End Sub |
| 関数名 |
|
単勝人気三連単ボックス買い。 |
| 変数 |
|
「単勝1」「単勝2」「単勝3」を文字列型で宣言。 |
| 単勝人気の取得 |
※ |
各変数に、システム変数「選択レース」を利用して、単勝人気1番〜3番の艇番を取得。
「単勝1」には、単勝人気1番の買い目(艇番)が代入されます(文字列型) |
| 買い目の追加 |
※ |
グループ番号「15」、「オッズ情報取得範囲」で指定した競艇場、「オッズ情報取得範囲」で指定したレース番号、3連単ボックス買い、固定金額100円で全6とおりの買い目を追加。
「&」は文字列を連結します。「単勝1の内容」、「-」、「単勝2の内容」、「-」、「単勝3の内容」を連結し、結果として「1-3-4」の文字列値である3連単の買い目が決定されます。 |
エラーがあるかどうか、[エラー確認]ボタンをクリックします(必ずこの操作は実行してください)。
「エラー出力」にエラーがないことを確認します。[保存]ボタンをクリックした後、[閉じる]ボタンをクリックして、関数編集ウィンドウを閉じます。
関数入力の設定画面で、「実行時間」「オッズ情報取得範囲」「関数」を設定します。

関数の実行時間は、住之江の2Rの投票時間に設定しています。「オッズ情報取得範囲」は、住之江の2Rで設定しています(グループ番号「15」)。
[追加]ボタンで、買い目リストボックスに追加し、[投票]ボタンをクリックします。これで、10:51の実行時間に関数「単勝人気三連単ボックス買い」が実行され、単勝人気1番〜3番の艇番による3連単ボックス買いの買い目(6とおり)が追加されて投票されます。

 |
値を取得後の代入時には、型に気をつけましょう! |
【関数概要】関数入力の設定画面の「オッズ情報取得範囲」で指定した競艇場とレース番
号の3連単人気の10〜30番を取得して、5号艇を除いた人気買い目のうち、オ
ッズが40〜70倍の上位5つの3連単を購入する。ただし、5つに満たない買い
目しかない場合は、購入しない。
関数を新規に作成するため、関数入力の設定画面の「関数編集」ボタンをクリックし、関数編集ウィンドウの「ソースコード」に次の内容を記述します。例題1はすでに記述されていますので、その後に、続けて記述します。
| Public Sub 人気艇番抜き三連単オッズ買い目追加() |
| |
' 三連単の10〜30番人気までの買い目から、5号艇を含む買い目を除き、
' オッズが40倍から70倍の買い目を人気上位から5つ取得し、買い目を追加します。
' ただし条件にあった買い目が5つに満たなかった場合、買い目を追加しません
Dim i As Integer
Dim 人気 As String
Dim 買い目配列(5) As String
Dim 買い目数 As Integer
買い目数 = 0
For i = 10 To 30
人気 = i.ToString()
' 買い目に5号艇が含まれていたら買い目を追加しない
If (選択レース.三連単人気(人気).買い目.IndexOf("5") = -1) Then
' オッズが40倍から70倍の買い目を購入
If ((選択レース.三連単人気(人気).オッズ >= 40) And ((選択レース.三連単人
気(人気).オッズ <= 70))) Then
買い目配列(買い目数) = 選択レース.三連単人気(人気).買い目
買い目数 = 買い目数 + 1
If (買い目数 >= 5) Then
Exit For
End If
End If
End If
Next i
If (買い目数 = 5) Then
For i = 0 To 4
買い目リスト.追加("15", 選択開催場.開催場名, 選択レース.レース名, "三連単", 買い目配列(i), "100")
Next i
End If
|
| End Sub |
| 関数名 |
|
人気艇番抜き三連単オッズ買い目追加。 |
| 変数 |
|
「i」はループカウンタなので半角英数1文字で宣言。
「人気」を文字列型で宣言。
「買い目配列」は0から4の5つの文字列型配列で宣言。
「買い目数」は整数型で宣言。 |
| 初期化 |
|
「買い目数」を「0」で初期化。 |
| For文 |
※ |
3連単人気の10〜30番を取得するための繰り返し。ループカウンタは「i」。
「Next i」で次の繰り返しをします。「i」が10になった時点でFor文が終わります。 |
| 型変換 |
|
「i.ToString()」は、「i」を整数型から文字列型に型変換します。
「人気」変数は、システム変数「選択レース」で使用されますので文字列型です。 |
| 艇番抜き |
|
「IndexOf("5")」は、3連単人気の買い目の中に「5」が含まれているかどうかチェックしています。含まれていると「0」以上の値を返します。含まれていない場合は「-1」が返されます。よって、含まれている場合は、次の繰り返しに移ります。 |
| If文 |
|
オッズが40倍〜70倍の範囲に入っているかチェックします。範囲チェックなので「And」とします。 |
| 配列にデータ格納 |
|
オッズが40倍〜70倍の範囲に入っている買い目を「買い目配列」に格納します。 |
| 配列インデックス更新 |
|
次の配列への格納のために配列インデックスである「買い目数」をインクリメントします。 |
| For文を抜ける |
|
上位5つを配列に格納した場合には、その後のFor文は無用なため、強制的にFor文を抜けます(Exit For)。 |
| 買い目の追加 |
|
グループ番号「15」、「オッズ情報取得範囲」で指定した競艇場、「オッズ情報取得範囲」で指定したレース番号、3連単、上位5つ、固定金額100円で全5つの買い目を追加。 |
エラーがあるかどうか、[エラー確認]ボタンをクリックします(必ずこの操作は実行してください)。

例題1が今回追加した関数の上部に存在していることがわかります。
「エラー出力」にエラーがないことを確認します。[保存]ボタンをクリックした後、[閉じる]ボタンをクリックして、関数編集ウィンドウを閉じます。
関数入力の設定画面で、「実行時間」「オッズ情報取得範囲」「関数」を設定します。

関数の実行時間は、住之江の9Rの投票時間に設定しています。「オッズ情報取得範囲」は、住之江の9Rで設定しています(グループ番号「15」)。「関数」のプルダウンには、例1と例2の2つの関数が表示されますので、例2の例題である「人気艇番抜き三連単オッズ買い目追加」を選択します。
[追加]ボタンで、買い目リストボックスに追加し、[投票]ボタンをクリックします。これで、14:23の実行時間に関数「人気艇番抜き三連単オッズ買い目追加」が実行され、3連単人気の10〜30番を取得して、5号艇を除いた人気買い目のうち、オッズが40〜70倍の上位5つの3連単の買い目(5つ)が追加されて投票されます。

 |
何を実現したいのか、整理してからプログラミングしましょう! |
【関数概要】関数入力の設定画面の「オッズ情報取得範囲」で指定した競艇場とレース番
号において、すでに買い目入力タブで指定されている単勝買い目の中から5
倍以下をスキップし、残りの単勝買い目の中で最も低いオッズだけを残し、他
の単勝買い目をスキップする。
蒲郡の5Rの買い目です。
関数を新規に作成するため、関数入力の設定画面の「関数編集」ボタンをクリックし、関数編集ウィンドウの「ソースコード」に次の内容を記述します。例題1と2はすでに記述されていますので、その後に、続けて記述します。
| Public Sub 単勝最低オッズ以外スキップ() |
| |
' すでに買い目入力タブで指定されている単勝買い目の中から、5倍以下をスキップし、
' 残りの単勝買い目の中で最も低いオッズだけを残し、他の単勝買い目をスキップします。
Dim i As Integer
Dim 最低オッズ買い目 As Integer
Dim 最低オッズ As Double
最低オッズ = 99999
最低オッズ買い目 = -1
For i = 0 To 買い目リスト.データ数 - 1
If (買い目リスト.データ(i).勝式 = "単勝") Then
If ((選択レース.単勝買い目(買い目リスト.データ(i).買い目).オッズ >= 5))
Then
If (最低オッズ > 選択レース.単勝買い目(買い目リスト.データ(i).買い目).オ
ッズ) Then
最低オッズ買い目 = i
最低オッズ = 選択レース.単勝買い目(買い目リスト.データ(i).買い目
).オッズ
End If
End If
End If
Next i
For i = 0 To 買い目リスト.データ数 - 1
If (買い目リスト.データ(i).勝式 = "単勝") Then
If (i <> 最低オッズ買い目) Then
買い目リスト.データ(i).スキップ()
End If
End If
Next i |
| End Sub |
| 関数名 |
|
単勝最低オッズ以外スキップ。 |
| 変数 |
|
「i」はループカウンタなので半角英数1文字で宣言。
「最低オッズ買い目」を整数型で宣言。
「最低オッズ」はオッズであるため小数点を扱う倍精度型で宣言。 |
| 初期化 |
|
「最低オッズ」を「99999」、「最低オッズ買い目」を「-1」で初期化。 |
| For文 |
※ |
買い目リストボックスになる全データをチェックして、「単勝」の買い目をチェックし、5倍以上のオッズのうち、最も低いオッズを持つ単勝データを取得するための繰り返し。ループカウンタは「i」。
最初のリストは「0」から始まります |
| 単勝チェック |
|
買い目リストボックスの各リストで「勝式」が単勝であるかをチェックしています。 |
| If文 |
|
勝ち式が単勝のうち、オッズが5倍以上であるかチェックします。 |
| 最低のオッズ比較 |
|
「最低オッズ」が現在のリストのオッズ(単勝)より大きければ、その位置を「最低オッズ買い目」に覚えておき、「最低オッズ」を更新します。For文が終わると、単勝で5倍以上のオッズのうち、最低のオッズを持つ買い目が「最低オッズ買い目」に格納されています。 |
| スキップ |
|
買い目リストボックスの全データを参照し、「最低オッズ買い目」以外の単勝買い目をすべてスキップします。 |
エラーがあるかどうか、[エラー確認]ボタンをクリックします(必ずこの操作は実行してください)。
例題2が今回追加した関数の上部に存在していることがわかります。
「エラー出力」にエラーがないことを確認します。[保存]ボタンをクリックした後、[閉じる]ボタンをクリックして、関数編集ウィンドウを閉じます。
関数入力の設定画面で、「実行時間」「オッズ情報取得範囲」「関数」を設定します。
関数の実行時間は、蒲郡の5Rの投票時間に設定しています。「オッズ情報取得範囲」は、蒲郡の5Rで設定しています。「関数」のプルダウンには、例1〜例3の3つの関数が表示されますので、例3の例題である「単勝最低オッズ以外スキップ」を選択します。
[追加]ボタンで、買い目リストボックスに追加し、[投票]ボタンをクリックします。これで、16:10の実行時間に関数「単勝最低オッズ以外スキップ」が実行され、すでに買い目入力タブで指定されている単勝買い目の中から5倍以下をスキップし、残りの単勝買い目の中で最も低いオッズだけを残し、他の単勝買い目をスキップされて投票されます。
【参考】
| |
この関数は、ある問題があります。おわかりになりましたでしょうか。この関数は、買い目リストボックス内の単勝買い目が、「オッズ情報取得範囲」で指定されている競艇場とレース番号の買い目だけある場合に有効な関数です(4つ前の画像参照)。もし、他の競艇場の単勝買い目や蒲郡競艇場の他のレース番号の単勝買い目があると、正常に動作しません(他の買い目もスキップされてしまいます)。
もし、他の競艇場や他のレース番号の単勝買い目もある場合にも適用させるには、勝ち式を「単勝」だけチェックせずに、競艇場とレース番号も「And」で同時にチェックするようにします。また、単勝買い目がすべて5倍未満であると、すべての買い目がスキップされますので、1つの買い目だけは購入したいという場合には、改良が必要となります。それぞれ、どのようにすればよいのか考えてみてください。 |
 |
フローチャートや図を用いて考えるとプログラミングしやすくなります |
以上、3つの例題を説明しました。
実現させたい機能をプログラミングするために、機能をよく整理して、図やフローチャートなども用いてプログラム化しましょう。
今後、
みなさんからの作成依頼関数や追加関数などは、ソフトウェア更新時に組み込んでいきますので、関数プルダウン内に表示されるようになります。更新されましたら、プルダウン内をのぞいてみてください。みなさんに有用な関数が追加されているかもしれません。
|