- ベストアンサー
こんにちは。WSH(Windows Script Host)のVBスク
こんにちは。WSH(Windows Script Host)のVBスクリプトを使用して あるソフトの複数画面切替のような操作をしたいのですが、 うまく動作しません。 (インターネット エクスプローラでいえば タブブラウザの切替のようなものだと思います。) VBAで検索したところ、 UserForm1.MultiPage1.Value = 1 のような方法がありますが、そのままでは適用できません。 大変恐縮ですが、教えて頂きたいです。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
最終的にchikin_manさんがやりたいことが実現できるかわかりませんが「ToDo×Rocky(トドロキ)」をダウンロードして試してみました。結果として、通知領域をクリックするフリーソフトを導入してタブを選択することに成功しましたので報告します。 最初に思いついたのはタブを選択するメニューをWSHで指定してやればよいのではないかということです。ところがこのソフトはメイン画面にメニューがありません。 しかし、少し触ったところ通知領域にアイコンがあり、右クリックで出てくるメニューの中にタブ選択があることがわかりました。 そこで、WSHで通知領域を右クリックできるフリーソフトTrayClickをダウンロードし、C:\Program Files\TrayClick\TrayClick.exeに置きました。 http://www.vector.co.jp/soft/winnt/util/se481383.html なお、TrayClickの動作には、.NET Framework 3.5が必要です。また、Windows オートメーション API ライブラリが必要です。WindowsXP、Vistaの場合、重要度推奨の更新プログラムKB971513を適用して下さい。なお、Vistaの場合、KB971513はKB971644に含まれています。これらの更新プログラムは2009/10月末から11月初めに公開されています。 TrayClickを組み込めば下のようなVBScriptコードで「ToDo×Rocky(トドロキ)」のタブを選択できます。 Windows XP Pro SP3 + ToDo×Rocky 3.00 + TrayClick 2.0で試しました。 ----- 'TodoTabSubete.vbs タブすべて Set WSHShell = WScript.CreateObject("WScript.Shell") ret = WSHShell.Run("""C:\Program Files\TrayClick\TrayClick.exe """ & _ "ToDo R", 7, true) '通知領域のToDoで始まるアイコンを右クリックする if ret then 'クリックに成功した WScript.Sleep 100 WSHShell.SendKeys "T" 'メニューTを選ぶ WSHShell.SendKeys "{ENTER}" 'Enter else WScript.Echo "失敗しました。" end if ----- 'TodoTabSyuryo.vbs タブ終了済み Set WSHShell = WScript.CreateObject("WScript.Shell") ret = WSHShell.Run("""C:\Program Files\TrayClick\TrayClick.exe """ & _ "ToDo R", 7, true) if ret then WScript.Sleep 100 WSHShell.SendKeys "T" WSHShell.SendKeys "{DOWN}" WSHShell.SendKeys "{ENTER}" else WScript.Echo "失敗しました。" end if ----- 'TodoTabManual.vbs タブ簡易マニュアル Set WSHShell = WScript.CreateObject("WScript.Shell") ret = WSHShell.Run("""C:\Program Files\TrayClick\TrayClick.exe """ & _ "ToDo R", 7, true) if ret then WScript.Sleep 100 WSHShell.SendKeys "T" WSHShell.SendKeys "{DOWN}" WSHShell.SendKeys "{DOWN}" WSHShell.SendKeys "{ENTER}" else WScript.Echo "失敗しました。" end if -----
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
そのソフトの名前を書くと回答が得られるかもしれません。 ソフトによっては不可能かもしれません。 名前が秘密のままでは誰も回答出来ません。
お礼
返信が遅くなり申し訳ありません。 画像ファイル添付がうまくいかないので下記文章で説明します。 使用しているソフトは下記になります。 タブ切り替え式ToDo管理ソフト「ToDo×Rocky(トドロキ)」 http://www.greva.jp/souko/item/index.htm?w=1534 ソフトを実行すると、上部に「すべて」、「終了済み」、「簡易マニュアル」 のタブがあります。そのタブはマウスで動かすことは可能ですが、 WSH(Windows Script Host)のVBScript にて自動で動作させる ようにプログラムを作成中ですが、うまくいきません。 以下参考までWSHによるプログラム作成例です。最後が問題になっています。 'Windows Script Hostにより実施 Option Explicit Dim strScriptPath Dim MyPath Dim sCmd Dim objWShell 'スクリプト名を含まないフルパスを編集する **\まで********************* strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"") MyPath = strScriptPath 'ToDoRockyの実行 sCmd = MyPath & "ToDoRocky.exe" Set objWShell = CreateObject("WScript.Shell") objWShell.Run sCmd, 4, False 'コマンド実行*** Dim WSHShell,SSName Set WSHShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 WSHShell.AppActivate "ToDoRocky" 'ウィンドウを探し前面に表示 WScript.Sleep 100 'タブ切り替え MultiPage1.Value = 1 '<- error part
お礼
SHIMAPEEさん返信ありがとうございます。 通知領域のアイコンを右クリックし、そのメニューの 中からタブを選択するとは意外でした。 TrayClickソフトと組み込むことで(XPにて) 無事動作致しました。 WSHのプログラムの作成ありがとうございます。 感謝致します。