楽天RSS2を自動化したい
楽天RSS2がエクセルVBAベースの為、別ツールを使うくらいならVBA内で自動ログインを完結させるのが簡単。事前準備としてログイン画面でのログインIDは保存する設定にしておく
コードは思ったより簡単です。平文でパスワードをVBAに載せることになりますので、セキュリティが気になる方は何らかの対策をしてください(変換する関数を通すとか)
2022/2/12追記 動作確認時はマーケットスピード2にアップデートが発生しない前提で10秒ウェイトでいいですが、アップデートが発生する場合はExcelを閉じておく必要があります。Excelを閉じて、いったんマーケットスピード2だけ立ち上げて、アップデートが終わるくらい十分な時間が経過したらマーケットスピード2を閉じて、自動売買用のエクセルを起動する必要があります。
Sub auto_login() 'マーケットスピード2の自動ログイン '事前設定 'マーケットスピード2でログインIDは保存にチェック 'マーケットスピード2の起動 Set WshShell = CreateObject("WScript.Shell") WshShell.CurrentDirectory = "C:\Users\ユーザー名\AppData\Local\MarketSpeed2\Bin" 'ユーザー名には環境に合わせて入力 Set objMS = WshShell.Exec("C:\Users\ユーザー名\AppData\Local\MarketSpeed2\Bin\MarketSpeed2.exe") 'ユーザー名には環境に合わせて入力 'デバッグは10秒でやるとして、あとでアップデートが十分終わるくらい長く修正する Application.Wait (Now() + TimeValue("00:00:10")) 'マーケットスピード2のパスワード入力 WshShell.SendKeys ("パスワード") 'パスワードのところには実際のパスワードを入力 Application.Wait (Now() + TimeValue("00:00:02")) WshShell.SendKeys ("{ENTER}") Application.Wait (Now() + TimeValue("00:00:02")) Set objMS = Nothing Set WshShell = Nothing End Sub
2022/2/13追記 環境に応じて上のpathを変更する手間をなくす
限定的でしょうが、実装と運用のPC環境が違う場合、ユーザアカウント名まで同じなら変更の手間がないのですが、違う場合、変更の手間が出てきます。その場合、MarketSpeed2.exeのある階層に自動取引用のエクセルを置き、コードを少し変えることでどちらの環境でも動作させることができます。いちいち潜るのが面倒なのでショートカットをデスクトップにでも貼りましょう。
Sub auto_login() 'マーケットスピード2の自動ログイン '事前設定 'マーケットスピード2でログインIDは保存にチェック ChDrive (ActiveWorkbook.path) ChDir (ActiveWorkbook.path) 'マーケットスピード2の起動 Set WshShell = CreateObject("WScript.Shell") WshShell.CurrentDirectory = ActiveWorkbook.path 'ユーザー名には環境に合わせて入力 Set objMS = WshShell.Exec("MarketSpeed2.exe") 'ユーザー名には環境に合わせて入力 'デバッグは10秒でやるとして、あとでアップデートが十分終わるくらい長く修正する Application.Wait (Now() + TimeValue("00:00:10")) 'マーケットスピード2のパスワード入力 WshShell.SendKeys ("パスワード") 'パスワードのところには実際のパスワードを入力 Application.Wait (Now() + TimeValue("00:00:02")) WshShell.SendKeys ("{ENTER}") Application.Wait (Now() + TimeValue("00:00:02")) Set objMS = Nothing Set WshShell = Nothing End Sub