SSブログ

当日データ取得マクロ取扱説明書 [エクセル]

当日データ取得マクロは、ヤフーファイナンスサイトに登録されている、種々の株価や指数のデータを、取得・更新するためのエクセルシートです。
本マクロでは、それらの銘柄や、始値、高値、安値、終値、出来高、前日終値、前日比、そして単元株数を取得・更新することができます。

本マクロは、「当日データ更新」、「データ取得関数」、「証券コード取得」の3つのマクロシートから構成されており、用途に応じて使い分けます。
「当日データ更新」シートでは登録済み銘柄のデータ更新、「データ取得関数」シートでは同関数の使用例、「証券コード取得」シートでは上場証券コードと銘柄名の取得を行ないます。

[使用方法]

A.「当日データ更新」マクロシート

1.A列7行目以降に証券コード、B列7行目以降にその市場、C列7行目以降にその銘柄名を記述し、右上の「データ更新」ボタンを押すと、D~L列7行目以降にその銘柄の始値~単元株数が取得されます。また、既に取得済みのデータがある場合は、それらに上書きされます。

2.指数や海外指数の証券コードと市場、銘柄は、予め本マクロシートに記載してあります。国内株式については、「証券コード取得」マクロシートで取得した後、本マクロシートに貼り付けてご使用ください。

3.証券コードや市場が記述されていても銘柄名が空白の場合、処理はその行で停止します。当日データを取得する場合は、必ず銘柄名を記述しておいてください。なお、その性質を利用すれば、途中行に空白行を挿入することで、それ以降の行のデータ更新を行なわないようにすることができます。

4.例えば、指数の出来高や単元株数など、サイト上にデータが存在しない場合、当該セルに「---」と表示されます。また、前日比は、終値と前日終値とから、マクロ内で計算した結果をそのまま(まるめ処理なしに)表示しています。そのため、セルの書式によっては値を表示しきれない場合がありますので、その際はセルの書式設定を行なってください。

B.「データ取得関数」マクロシート

1.データ取得関数本体は、N列7行目以降にあります。関数の書式は「=dataupdate(証券コード,市場)」で、それらが入力されたセルを指定します。例えば、A7セルに証券コード、B7セルに市場を入力した場合、データ取得関数は「=dataupdate(A7,B7)」となります。

2.データ取得関数で取得できるデータは、始値、高値、安値、終値、出来高、前日終値、前日比(差分、率)、単元株数の9種類であり、それらをa~jのアルファベットで区切って、まとめて取得しています(※)。各データ構造は、「当日データ更新」マクロシートとほぼ同様です。各データに切り分けるには、D~L列7行目以降にあるような数式を用います。

3.データ切り分け用の数式は、基本的に、連続するアルファベット間の数値を抜き取るだけのものです。ただし、その数値が「---」の場合、そのままではエラーとなりますので、IF文でエラー回避処理を行なっています。

4.データ取得関数を記述したエクセルシートで自動計算を有効にしていると、何か作業をする度にデータ取得を行なってしまい、作業効率を著しく低下させます。そのため、本エクセルシートでは、オプションの計算方法を「手動」に設定しています。関数を記述した後、F9キーを押すことで、データ取得を行なうことができます。

※.9個のデータをまとめて取得するのは、処理速度短縮のためです。各データ毎に関数を記述することも可能ですが、そうするとその都度データ取得を行なうことになり、非常に処理時間が掛かってしまいます。各データの抜き出しに手間は掛かりますが、本関数の方法を用いた方が、結果的に効率的なデータ取得が可能になります。

C.「証券コード取得」マクロシート

1.証券コードを新規に取得する場合は、A2セルの値を「新規取得」に、「当日データ更新」マクロシートに設定されていない証券コードのみを取得する場合は、A2セルの値を「追加取得」に設定します。

2.A3~A4セルに証券コードの走査範囲を設定します。A3セルは開始位置、A4セルは終了位置で、証券コードは1300~9999の値とし、その末尾に「.」で区切って市場記号を付加します。市場記号は、東証が「t」、大証が「o」、ジャスダックが「q」、名証が「n」、福証が「f」、札証が「s」で、走査はこの順番になります。

3.B2セルには、走査方法を設定します。「市場順」にすると、開始位置で設定された市場を固定して証券コードの小さい順に走査した後、次の市場に移って同様に証券コードの小さい順に走査します。「コード順」に設定すると、開始位置に設定された証券コードを固定して市場を走査し、次のコードに移って同様に市場を走査します。

4.例えば、開始位置に1300.t、終了位置に1400.sと設定し、走査方法を「市場順」にした場合、1300.t~1400.t⇒1300.o~1400.o⇒・・・⇒1300.s~1400.sの順に走査します。同様に、走査方法を「コード順」にした場合は、1300.t~1300.s⇒1301.t⇒1301.s⇒・・・⇒1400.t~1400.sとなります。

5.以上を設定後、右上の「コード取得」ボタンを押すと、走査範囲でヤフーファイナンスサイトに登録されている銘柄の、証券コード、市場、銘柄名が、A~C列の7行目以降に取得されていきます。なお、取得を途中で中断する場合は、ESCキーを押してマクロを中断してください。

6.取得した証券コード、市場、銘柄名を、「当日データ更新」マクロシートにコピーし、同シートのマクロを実行することで、それらの銘柄のその時点における株価等の値を、取得することができます。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。