EasyLanguage研究所

マネックス証券が提供する株式トレード&分析ツール「トレードステーション」専用のプログラミング言語、EasyLanguageについて。特にオブジェクト指向型EasyLanguage(OOEL)の情報を中心に。

「Tab」と書けばTab文字になるよう、関数を自作してみました。(コードはたったの1行)

最近EasyLanguageで出力した結果を
Excelファイルに落としてデータ分析する機会が多いです。

それで、大量データをまとめてExcelファイルに落としたい時は
前回の記事でご紹介したWorkbookクラスを使って処理するのですが・・
eltraders.hatenablog.com

ちょっとしたデータを取りたい時は、
”Tab(タブ)区切りの文字列”をPrint関数で印刷ログに出力しています。
(全選択->コピペでそのままExcelに貼り付けられて便利なので)

ただ、EasyLanguageでタブ文字を扱いたい場合、
改行(NewLine)のような予約語は用意されていないようです。
(僕がまだ探せていないだけかもしれませんが)

代替え案として、
「"」+「Tab入力」+「"」と書くとTab文字として認識してくれるようなので
これまではこれを利用していました。

f:id:eltraders:20171127172431p:plain:w320

(画像だと分かりにくいですが、
 6行目のダブルクオテーションの間は半角スペースでなくタブ入力です)

「Tabをスペースに自動変換」設定をした時に悲劇は起きた

最近、コードをブログなどに貼り付ける事も多いので
「ツール」->「オプション」の「一般タブ」で
「インテンドする際にタブの代わりにスペースを挿入」をチェックしました。

f:id:eltraders:20171127173353p:plain:w320

エディタ上でTabを入力すると、
自動で任意の半角スペース(初期では4つ)に変換してくれます。

・・ただこの設定をすると、
Tab入力で作った上のTab文字も自動で変換されてしまうのです・・orz

f:id:eltraders:20171127172436p:plain:w320

(勝手に半角スペース4つになってしまった)

こういった問題が発生しましたし、
そもそも「"」+「Tab入力」+「"」だと
パッと見てTabなのかスペースなのか分かり辛いよね、という事で
【Tab文字を返してくれる関数】を自作してみる事にしました。

Tab文字関数の作り方

Tab文字関数のコードは、以下の通りです。

Tab = "	";

・・はい。たったこれだけ。1行。

「インテンドする際にタブの代わりにスペースを挿入」をチェック外した状態で
「"」+「Tab入力」+「"」と入力しています。

EasyLanguageの関数は、

引数:分析テクニックやストラテジーと同様にInputs:で定義(今回はありませんが)
戻り値:関数名=XX; で定義

となっております。
例えば他のプログラミング言語で書くならこんなイメージでしょうか?

function Tab() {
  return  "	";
}

一応関数作成の手順も載せておきます。
関数名はお好きな名前でどうぞ。

関数作成の手順

1. 新規作成で「関数」を選択
f:id:eltraders:20171127170431p:plain:w320

2. 関数名とリターンタイプ(今回は文字列)を選択
f:id:eltraders:20171127181007p:plain:w320

3. 以下のコードを貼り付けて検証
(上で紹介したものと同じコードです、再掲)

Tab = "	";

f:id:eltraders:20171127180152p:plain:w320

4. 後は使いたいコード内でTabと入力
f:id:eltraders:20171127180229p:plain:w320
※入力したTabが関数用の色(初期では紫色)になれば正しく認識されています。

おわりに

たった1行のコードですが、
このように関数化しておくと便利なものは
コードを書けば書くほど出てくると思います。

「このコードは何回も書いているから関数化できないかな?」
と考えるクセをつけておくと、より簡潔なコードが書けるようになります。

ぜひ、参考にしてみてください。

ではでは。