第3回では次のことを作成・設定します。
@JV-Linkモジュールを利用できるようにする「参照設定」を行います。
(注:この設定方法はJRA-VAN Data Labのサンプルの設定方法とは異なりますが、結果は同じです)
Aプログラム全体で使用するグローバル変数を定義します。
一部はJRA-VAN Data Labのサンプルプログラムの中に含まれるもの(”JVLink_Stluct”)を利用します。本プログラム独自のものも定義します。 |
(1)「参照設定」を行う。 |
プログラムで使う関数やモジュールをWindowsSystemファイルの中から指定するために「参照設定」を行う必要があります。
VBE画面で「ツール」→「参照設定」を選択します。
Excel2003/2007/2010とも同じです。
|
 |
「参照設定」(VBAProject)ダイアログ画面で次のライブラリにチェックを入れて「OK」をクリックしてください。
見えない場合は下の方を探すとあると思います。
@”JRA-VAN Data Lab XXX ライブラリ”(XXXはバージョン名)
A”Microsoft Scripting Runtime”
B”Microsoft Shell Controls And Automation”
JRA-VAN Data Labのライブラリが見つからない場合は、JV-Linkモジュールがインストールされていない恐れがあります。
その場合はこちらを参考にしてインストールをしてください。
(注意)JV-Linkは必ず必要です。JV-LinkはJRA-VAN Data Labの「競馬ソフトコーナー」からダウンロードできますので、インストールしてください。すでにインストール済みの場合は再インストールは不要です。JV-Linkは無料で入手できますが、実際にJRA-VANからデータを取得するのは有料です(月額制)。
(インストールは必ずすべての競馬ソフトを終了してから行ってください。起動したままですと、ほぼ確実に異常になります) |
 |
(2)標準モジュールを3つ追加(挿入)します。 |
挿入方法は第二回で説明した方法を参考にしてください。
挿入したモジュールの名前をそれぞれ”JVLink_Stluct”、”mDialog”及び”mMod1”と変更してください(すべて半角で)。
それぞれの標準モジュールにコードを記述します(コピー&ペーストも)。
(2.1)標準モジュール(JVLink_Stluct)にJRA-VANのVBAサンプルプログラムのコードをコピー&ペーストします。
入手先:JRA-VANのVBAサンプルプログラム
ページ上部の[VBAサンプルプログラム]をクリックし、リンク先の[Excel2XXX版]をダウンロードしてください。
(入手方法およびインストール方法はこちらを参考にしてください)
(注)このVBAサンプルプログラム自体は実際にはここでは使わず、”JVLink_Stluct”モジュールを利用するだけです。
あるいは下記のコードをコピーして「JVData Explorer」の”JVLink_Stluct”にペーストしてもかまいません。オリジナルの”JVLink_Stluct”は長いので6つに分割しています。すべてを順にコピー&ペーストしてください。
(ここで紹介するコードは以前のものなので、最新のものとは違いますが、本ソフトの開発には影響ありません)
プログラムコードの中身の説明は省略します。実際に使う場面で簡単に説明できるかもしれません。ここではブラックボックスとしてひたすらコピー&ペーストしてください。
(このJVLink_Stluctモジュールを正確にコピーするには、本当はモジュールのエクスポート/インポートというテクニックを使うのですが、面倒なので私はいつもコピー&ペーストです)
”JVLink_Stluct”にはJV-Dataの内容を取り出すデータ構造体の定義や、データセット関数のすべてが定義されています。
JV-Dataを扱うために一番基本となる定義です。 |
JVLink_Stluct パート:1/6 (共通構造体〜10.オッズまでの定義)
|
JVLink_Stluct パート:2/6 (11.競走馬マスタ〜25.開催スケジュール)
|
JVLink_Stluct パート:3/6 (データセット関数:1.特別登録馬〜5.票数(全賭数)
|
JVLink_Stluct パート:4/6 (データセット関数:6.オッズ(単複枠)〜13.調教師マスタ)
|
JVLink_Stluct パート:5/6 (データ関数:14.生産者マスタ〜23.騎手マスタ)
|
JVLink_Stluct パート:6/6 (データ関数:24.データマイニング予想〜バイト配列切り出し関数)
|
(2.2)標準モジュール”mDialog”への記述を下記のように行います。
これは初期設定時にディレクトリ(フォルダ)を選択するためのダイアログ画面を表示するためのコードです。
以前のJVData ExplorerではWindowsAPIを使って行っていた部分ですが、今回はExcelのライブラリを利用し、WindowsAPIを使わない方法にして簡略化しました。
このプログラムは、次回の「初期ディレクトリ設定」で使用します。
これは参考本の「仕事に役立つ ExcelVBA 実用サンプルコレクション(新装版)」に掲載されている部分(618ページ)を参考にしました。
プログラムの説明
これはファンクション形式で定義した「選択したディレクトリ(フォルダ)のフルパスを戻り値として返す」機能のマクロです。
実行すると、ディレクトリ(フォルダ)を選択できるダイアログ画面が表示されます。ユーザーが適当なディレクトリ(フォルダ)を選択して「OK」をクリックするとそのフォルダのフルパス("C:\My
Documents\******"形式)を文字列(String)として返します。
キャンセルされると空白の文字列を返します。
このプログラムのキーポイントは真ん中辺のSet myFolder = mySh.BrowseFolder で、これが選択したフォルダを特定するWinodwsの関数です。
これを使うためには前の「参照設定」で[Microsoft Shell Controls And Automation]を選択しておかなくてはなりません。 |
(2.3)標準モジュール”mMod1”への記述は、まずグローバル変数を定義します。
変数にはプログラム全体で使えるものやあるワークシート内で有効なものや、あるサブルーチン(マクロ)内でしか使えないものなど各種ありますが、変数の使える範囲をスコープといいます。この標準モジュールに記述されたPublicで始まる変数やサブルーチンは”グローバル”なので「New_JVData_Explorer」ソフトのどこからでも呼び出せます。
プログラムの説明
1行目のSleep lib ”Kernel32"は、プログラムの中でタイマー代わりに使う関数用です。
ミリ秒単位でプログラムの動作を休止させることができます。
たとえば、Sleep(1000)とするとこのコードに来たところで1秒間待ちます。
2行目以降の Public Const 部分は、JV-Dataのデータサイズを設定するもので、仕様書で各データのサイズが決められているので、定数として設定しておきます。
構造体定義部分は、また別途実際の使用場面で一部を解説します。 |
(2.4)次のコードも上記に続いて(mMod1)に記述してください。
これらは「New_JVData_Explorer」で使う固有の変数です。
(2.5)次のコードもmMod1に記述してください。これはJVLinkモジュールをユーザーフォーム上に貼り付けずに使う場合に有効な設定です。
たった1行のコードですが、大変重要なコードです。
(JRA-VAN Data LabのExcel版サンプルプログラムではJVLinkモジュールをユーザーフォームに貼り付けています。そちらが標準的な使い方ですが、JVData_Explorerではユーザーフォームを使いませんので、替わりにJVLinkを設定する方法です)
|
以上でモジュール(mMod1)への記述は終了です。
(注意)いったん作業を中止する場合は、ここで[New_JVData_Explorer]を終了することができます。
必ず上書き保存してください。
ページトップへ |
|