(岡三RSS)UWSCを使って岡三RSSへの自動ログインを行う

UWSCを使った岡三証券へのログインのやり方を紹介します。
岡三RSSは便利な機能ではありますが、岡三RSSのみで証券会社の機能がすべて使えるわけではありません。
そのため、WINDOWSの自動操作ソフトであるUWSCを使って、機能を補完していくのが良いと私は信じています。
そこですべての基本である、UWSCの自動操作で岡三証券へログインしてみましょう。

【目次】

岡三オンライン証券ログインまでの操作方法

①ログイン画面にアクセス
②IDとPASSWORDをインプット
③ログインボタンをクリック
④OKボタンをクリック

岡三オンライン証券ログインのUWSCプログラム

上記の操作方法に従い、UWSCを動かしてみます。HPの構成が変更されたら動かなくなりますので各自の責任で動かしてみてください。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("https://j-trading.okasan-online.co.jp/web/")
BusyWait(IE)

IESetData(IE,"ID","loginTuskLoginId") // TEXT
IESetData(IE,"PASSWORD","gnziLoginPswd") // TEXT

logintags=IE.document.getElementsByTagName("input")

FOR I = 0 TO logintags.length - 1
    IFB logintags.Item(I).Alt = "ログイン" THEN
        logintags.Item(I).Click()
    ENDIF
NEXT

BusyWait(IE)

OKtags=IE.document.getElementsByTagName("input")

FOR J = 0 TO OKtags.length - 1
    IFB OKtags.Item(J).Alt = "OK" THEN
        OKtags.Item(J).Click()
    ENDIF
NEXT

BusyWait(IE)

Procedure BusyWait(ie)
  Sleep(0.5)  // Wait
  Const TIME_OUT = 90
  tm = Gettime()
  repeat
    Sleep(0.2)
    ifb Gettime() - tm > TIME_OUT
      MsgBox("Time Out:BusyWait")
      ExitExit
    endif
  until (! ie.busy) and (ie.readyState=4)
  Sleep(0.5)
Fend
IE.Navigate("about:blank") // INPUT

(スクレイピング)UWSCで自動的にWEBページをクリックする方法

さまざまなWEBページがありますが、ウェブページの中の一部分をクリックする動作を作るニーズは結構あるものと思います。
そんなウェブページのクリックに関して、実行方法をまとめておきたいと思います。

【目次】

タグから絞り込んでいく

次は証券会社のログインボタンを押すという一連の動作をUWSCの命令構文に落とし込んでみようと思います。
例にするのは岡三証券のログイン画面でログインボタンを押すというものですね。

IEを立ち上げてWebページに移動する構文は下記になります。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("https://j-trading.okasan-online.co.jp/web/")

以上が岡三証券のログイン画面に移動するためのプログラミング分です。IEにオブジェクトを設定し、URLまで移動するという命令文になっています。

次にログインと書いてあるボタンを押す作業に入りましょう。
ボタンをGOOGLE CHROMEでログインボタンを指定し、要素を見てみましょう。
(右クリックの中に項目があります。)

f:id:kazooloop:20170410103504j:plain

<input type="image" name="buttonLogin" src="https//member.okasan-online.co.jp/stastic contents/web/images/form/btn/btn login.gif" value="ログイン" alt="ログイン">

<||

このように記載されています。ここからinputタグの中身であるという事が分かり、その中に"name"、"src"、"value"、"alt"がそれぞれ名づけられて存在していることが分かります。

inputを取得しその中で要素の中で指定していくとうまくいきそうです。
今回はaltがログインという特徴を使ってプログラムを書いていきます。

>|vb|
logintags=IE.document.getElementsByTagName("input")

FOR I = 0 TO logintags.length - 1
    IFB logintags.Item(I).Alt = "ログイン" THEN
        logintags.Item(I).Click()
    ENDIF
NEXT

inputタグをすべて取得し、その中からalt属性が"ログイン"であるかどうか一つづつ確認し、該当するものがあればクリックするという仕組みになっています。

最後は座標指定

上記でエラーが出る場合には、座標を左クリックするようにすれば目的は達せられます。

【VBA】リストに重複しているデータを両方(3つ以上はすべて)削除する方法

エクセルの2000、2003のバージョンでは重複しているデータを無視するということができたらしいですが、それ以降のバージョンで重複しているデータをすべて削除する方法を工夫してみました。

方向としてはExcelでできる処理をVBAに乗せていくというわかりやすい方法で進めたいと思います。

【目次】

Excelで重複しているデータを判別する方法

A列のデータで重複するものがあるかどうかのチェック方法

=COUNTIF(A:A,A1)

A1セルの内容がA列に何個あるか数えるという処理方法です。これが式の答えが2以上であれば、重複しているという事になります。

2つの列データで確認したい場合

2つにデータがまたがっている場合には1列にしましょう。その時にどちらの列のデータなのかが分かるように隣に数字や記号を打っておくと良いと思います。

f:id:kazooloop:20170406110038j:plain

これで重複している2以上のデータを削除すればOKです。

VBAにしてみる

A列にデータがあるとしてVBAを書いてみます。

sub 重複両方削除()

'A列データの最終行を定義
Dim MaxrowA As Long
MaxrowA = Cells(Rows.Count, "A").End(xlUp).Row

'B列に判別式を記入
Range("B1").Formula = "=COUNTIF(A:A,A1)"

'B列の対応するセルに式をコピペ
Range("F4").Copy
Range(Cells(2, "B"), Cells(MaxrowA, "B")).Select
Selection.PasteSpecial Paste:=xlPasteAll

'A列とB列をソートし、B列を昇順にソート
    Columns("A:B").Select
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("B:B"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A:B")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

’式を検索対象に含めないようにするため、B列を値に変換
Range("B:B").Copy
Range("B:B").PasteSpecial Paste:=xlPasteValues

'B列で2が最初に出てくる場所を特定・取得
Columns("B:B").Select
Selection.Find(What:="2", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, MatchByte:=False, SearchFormat:=False).Activate

Dim nowrow As Long
nowrow = ActiveCell.Row

'全て重複していた場合にセルが2番に指定されるので、カバーする

If nowrow = 2 Then
   nowrow = 1
End If

'2以上のデータを消す
Range(Cells(nowrow, "A"), Cells(MaxrowA, "B")).Clear

'B列を消す
Range("B:B")).Clear

End sub

(2017)ふるさと納税をすぐに済ませないと損!?もらえる返礼品を最大にするための方法

今回は税金の話です。税金の中でも一番手軽なのはふるさと納税だと思っています。
制度改正の流れが活発化しているので、取り上げておきたいと思っています。ふるさと納税はさまざまなメディアに取り上げられていることでかなり有名になってきています。
今回は制度概要から制度改正の流れ、そしてもらえる返礼品を最大にする方法の順に解説していきたいと思います。

【目次】

ふるさと納税

ふるさと納税とは個人が寄付金を地方の自治体に対して払うことで、その金額から2,000円を引いた額が翌年の住民税や所得税から控除されます。その寄付金に対して地方の自治体は返礼品ということで特産品を個人に贈るという仕組みになっています。
つまり個人にとってみれば、2,000円の負担で地方の特産品を手に入れることができるというお得な制度になっています。税金は国や住んでいる自治体に払うか、地方自治体に払うかの違いだけで額そのものはほぼ変わらないという制度になっています。

ふるさと納税の制度変更の流れ

地方自治体が競争して返礼品の豪華さを競ったために、一時はふるさと納税の返礼品として一般的なポイント付与や商品券など換金性の高いものが出されたため、そういった換金性の高い返礼品を出す地方自治体にふるさと納税の人気が集まりました。
そのため首都圏の地域からは住民税が地方に流れて地方は地方で返礼品で収支が悪化するという問題が起きてしまいました。
そのため、強制力はないものの総務省から高額返礼品を控えるように通達がなされています。

今回の制度改正(総務省通達)のポイント

・商品券や家電といった換金性の高い返礼品を控える
・返礼品の目安は寄付金の3割程度とする
・住んでいる自治体にふるさと納税した場合には返礼品の送付を控える

この3点です。はじめて返礼品に具体的な金額目安ができたことが非常に大きなことです。総務省の通達は罰則や強制力はないですが、長期的には通達通りの内容になっていくと思われます。
現在は返礼品の金額が3,000円を超えている自治体は500団体以上あるので、今後は返礼品の内容が悪化していくことが予測されます。

改正に向けてやるべきこと

すぐにふるさと納税を頼んでしまうということが2017年で返礼品を最大にするポイントです。返礼品の内容が悪化することは明白ですから、今のうちに頼んでしまうというのが2017年において最大の防衛策です。
ふるさと納税するにはさとふる
がおすすめです。
納税自治体の管理が楽、税金の申告を簡単にするツールがあるということでさとふる
を使っています。

人気ランキング上位の返礼品は返礼金額も高いので、すぐにランキングの高い返礼品を頼むと少なくとも損にはならないと思いますよ。



私は佐賀の牛肉を頼みました!切り落とし1kg!

(岡三RSS)株式自動売買化に向けた岡三RSS/UWSCの設定について

株式の自動売買を進めるうえで切っても切れない関係にあるのが、証券会社の投資ツールです。
特にエクセルシート上で条件を設定して売買できる、「岡三RSS」や「楽天RSS」は非常に大きな力になってくれると思います。
今回は自動売買における岡三RSSの設定について説明していきたいと思います。

岡三RSSのバージョンについて

岡三RSSで自動売買を行いたいと思った場合には、「岡三RSS(完全自動発注版)」を使用してください。
通常とは異なり、1回あたりの売買金額の上限を設定し、注意画面を省略すれば自動的に株式を売買することができます。

1回あたりの売買金額の上限設定

1回あたりの売買金額の上限の変更方法を下記に記載しておきます。
①Windowsのタスクトレイに格納されている岡三RSSのアイコン上を右クリックし、「設定」をクリックしてください。
②次に、「1回の発注金額」欄に金額が入力されているかと存じますので、金額変更後、「OK」ボタンをクリックしてください。

注意画面の省略

注文関数に注文確認省略フラグが追加ていますので"1"を指定すると注文確認画面が表示されず、"0"を指定すると注文ごとに注文確認画面が表示されます。
完全自動売買を目指すなら、"1"で設定すると良いと思っており、私は実施しています。

岡三RSSの売買制御

岡三RSSでは自動的に注文を出すかどうかを「アドイン」で設定することができます。売買矢印のアイコンですね。
これもエクセルを開いたときに常にONにできる設定があります。「設定画面」で設定しておきましょう。
但し、これをやるとエクセルを開いたときに条件合致していたらすぐに注文が出されてしまうため、この設定を行った場合には、売買時間外に岡三RSSで設定したファイルを開く必要があります。

岡三RSSを仕込んだファイルをUWSCで制御

UWSCを使用してExcelファイルを制御する方法は2通りあります。

1種類目:CREATEOLEOBJを使う場合

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.open("C:\Users\root\Desktop\sample.xls")
<||

2種類目:単純なファイルのダブルクリック
x,yで座標指定をしてください。マクロの記録を使うと便利です。

>|vb|
MMV( x, y, [ms] )
btn(LEFT)
btn(LEFT)
<||