取り込んだデータのエクセル自動売買システムへの書込み・VBAへコードの記入

投稿者: | 2016年6月7日

2.為替データの読み込み、書込み、4本値。

取り込んだデータのエクセル自動売買システムへの書込み・VBAへコードの記入

 

では、データの読み込みができたところで、これから書き込みの部分に入っていくのですが、その前に、エクセルの体裁を整えておきましょう。

まず、現在は前頁の画像の状態かと思いますが、1行目に行を挿入して、レートが表示されているセルを2行目に移します。同様に、1列目に列を挿入して、売値がセルB2に来るようにされてください。

 

 




そして1行目にそれぞれ売値、買値と見出しをつけておきましょう。また、セルの表示位置をセンターにし、お好みに合わせて文字やセルの大きさ、色、罫線などを調整されてください。(下図)

 

では、次に4本値を書き込む部分を作りますので、5行目の2列目から、始値、高値、安値、終値、日時と見出しをつけておきます。5行目の1列目には「#」といれ、1列目には行番号を入力するようにします。

最後に、時系列で4本値を書き込んでいくために、現在の行数や次の行に移るタイミングを判断させるためにいくつか数値の入力が必要となりますので、そちらを書き込んでおく場所を作りましょう。

 

 

 

どこでもいいのですが、便宜上セルE2に行数、F2に次の行へ移るタイミングを書き込むようにします。

それぞれの1行目に見出しを付け、E2には現在の行数である6(4本値の見出しを5行目につけたため、現在の行は6行目となります)を、F2は0を入力しておきます。

罫線などを調整して、下図のような感じです。

 

ここまで完了すると、いよいよVBAのコードの記入に入ります。

 

データ書き込みのVBAコードの記入

 

まずは、VBAを起動します。エクセルの「ツール」より「マクロ」にカーソルを合わせ、「Visual Basic Editor」を選択します。

 

VBAを表示させたら、まずは標準モジュールを追加します。

 

 

画面左側にあるプロジェクトウィンドウの任意の場所で右クリックをし、「挿入」、「標準モジュール」の順でクリックします。

すると標準モジュールが追加され内容が表示されます。まだコードなどは何も書いていないので、まっさらな状態です。

この右側の真っ白の部分にコードを書いていきます。

 


私もVBAを誰かに教えて貰ったわけではなく、ほとんど独学ですのでプロの方や知識の豊富な方にしてみれば「そこはこうだよ!」とか「こうしたがいいのでは?」「この表現はおかしい!」と言われるかもしれませんが、その辺はご了承ください。

 

コードですが、ここで書きこむコードは5分足の作成の部分です。大きく分けると2つの動作を制御させます。

一つ目は、最初の更新で始値、高値、安値、終値を書き込み、次の更新では現在の値と記入されている高値を比較し、現在の値が高ければ高値を更新、同様に書き込まれている安値と現在の値を比較し、現在の値が低ければ更新、最後に現在の値を現在の終値として書き込むという作業です。

二つ目が5分足の4本値を書き込むため、現在の時間を判断して、分の数字が00分、05分、10分、…50分、55分だった場合に次の行に移るような制御です。

 

では早速まずは4本値の書き込み部分のコードを書いてきましょう。

まずは、右側の真っ白な部分の一番上に、「Sub Kakikomi()」と入力してエンターキーをクリックします。すると「End Sub」が自動で挿入されます。

「Sub Kakikomi()」と「End Sub」の間に行う処理を記述していきます。

 

 

最初に、現在のレート、現在の行数を読み込みます。

現在のレートはセルB2に表示されている売値を使用しますので、変数“r_now”に現在のレートを代入します。ただし、そのままDDEで配信された値を読み込んでも、文字列として読み込んでしまいますので、数値に変換して読み込みます。数値に変換するには、Valを使用します。
r_now = Val(Cells(2, 2))

現在の行数は9ページの状態ですとセルE2に表示されていますので、そちらの値を変数“num_1”という変数に代入します。

Num_1 = Cells(2, 5)

※ VBAでのセルの参照の場合、列はエクセルに表示のA,B,C,…ではなく、それぞれ番号での指定となります。セルの指定は「Cells」の後に行番号、列番号の順で番号を記入します。たとえば、セルB3は3行目のB列=2列目ですので、Cells(3, 2)となります。

現在までのコードの状態は下記の様になるかと思います。

 

 

自動売買システムの作り方トップページへ

次のページ:自動売買システムへの4本値の書込。高値・安値の条件分岐