• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Market Speed をVBAで制御したいのですが・・・)

Market SpeedをVBAで制御する方法

このQ&Aのポイント
  • 楽天証券のツール Market Speed(MS)をVBAを使用して制御する方法について説明します。
  • 起動したMarket Speedでログインする方法や既に起動しているかをチェックし回避する方法についても触れます。
  • shellではなくwinAPIを使用して上記のことを実現する方法についても考えてみましょう。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >3、色々調べるとshellは古いので、winAPIが良いとの記述が多いのですが、上記のことをwinAPIで記述するにはどうしたらよいか。 うーん、Shell関数は、VBA のコマンドの一つであって、それ自体が新しい古いとは言えません。Shellプログラム(つまりBatchプログラム)なら古いです。また、Win32API は、.Net Framework が対応してしまうので、いずれは使わなくなるような気がします。 以下は、上手く行くかどうかは分かりません。Class の名前があっているのか分からないからです。 'Option Explicit Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _    ByVal lpClassName As String, _    ByVal lpWindowName As String) As Long Private Sub TestPrc()  Dim rtn As Long  Dim strClassName As String  Dim varRetval As Long  Dim Id As Long  Dim mCommand As String  Dim strMsg As String  mCommand = "C:\Program Files\MarketSpeed\MarketSpeed\MarketSpeed.exe"  strMsg = "MSを開きますか?"  strClassName = "MDIFrame" 'クラス  rtn = FindWindow(strClassName, vbNullString)  If rtn <> 0& Then   MsgBox "既に起動しております。", vbInformation   Exit Sub  Else   If vbYes = MsgBox(strMsg, vbYesNo) Then    varRetval = Shell(mCommand, vbNormalFocus)   End If  End If End Sub  

kiku_hime
質問者

お礼

早速ありがとうございます。 shellが古いとは、そういうことだったんですね。 参考になりました。 それに、起動しているときは回避、していないときは起動とういう望んでいたことが出来ました。ありがとうございました。 あと一点、起動したプログラム(MS)のログインさえ出来れば・・・ キーボードマクロやショートカット付与のアプリなどと組み合わせれば出来るのかもしれないようですが、出来ればVBAだけで制御できればと考えております。 重ね重ね感謝いたします。ありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。Wendy02です。 >起動したプログラム(MS)のログインさえ出来れば おっしゃっている意味は、自動ログインで、無人で動かすことだと思います。もしかしたら、すべての自動化させる専用のツールが、Vector から出ているかもしれません。 Market Speed からでは、VBAでコントロールするのは、私には無理ですね。私は、VBAでIEをコントロールすることはしますが、Market Speed は、独自のフレームになっている関係で、一般的なコマンドではアクセスできないはずです。Market Speed 自体を解析しなくてはなりません。出来る人もいるようですが、私は、それはしません。 ただ、以下は一種のキーロガー(コマンド記録)でもあり、プログラムですが、 UWSC 自動化ソフト なら、可能かもしれません。 http://www.h7.dion.ne.jp/~umiumi/

kiku_hime
質問者

お礼

再度、ご回答いただき本当にありがとうございます。 自動ログインする本来の目的は、パソコンに不慣れな父にスクリーニングのマクロを渡したい為に、MSが起動していようがいまいが関係なく、スクリーニングのマクロを実行すると最初にMSの起動を確認し、それからRSSにてデータを取得して、スクリーニングするといった形にしたかったのです。 しかし、丁寧にご説明していただいたおかげで、私のような素人には到底、難しいということがわかりましたので、今回は諦め、その労力をVBAの勉強に費やすことにしました。 この度は、ありがとうございました。