• ベストアンサー

こんにちは。WSH(Windows Script Host)のVBスク

SHIMAPEEの回答

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.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 -----

chikin_man
質問者

お礼

SHIMAPEEさん返信ありがとうございます。 通知領域のアイコンを右クリックし、そのメニューの 中からタブを選択するとは意外でした。 TrayClickソフトと組み込むことで(XPにて) 無事動作致しました。 WSHのプログラムの作成ありがとうございます。 感謝致します。

関連するQ&A

  • Windows Script Hostは、スクリプ

    Windows Script Hostは、スクリプト言語なのでしょうか? Sub Sample() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") Debug.Print WSH.SpecialFolders("Favorites") Set WSH = Nothing End Sub このようなコードでVBAでWSHを使っていますが WSHが何なのかわからないまま使っています。

  • [WSH|JS|VB] telnetコマンドの標準出力を受け取りたい

    こんにちは。 Windows Scripting Host(WSH)でtelnetコマンドのオートパイロット(自動操縦)をしたいと思っています。 そこで、ログインプロンプトなどを待つ際、waitで時間で待つのではなく、「login:」という文字を待ってログインするようにしたいのですが、できるでしょうか?教えてください。 WSHをご存知ない場合は、VBの範囲でお答えいただければと思います。適用できる可能性がありますので。 なお、言語は、JScript,VBScriptどちらでも構いません。 よろしくお願い致します。

  • WSHで「ファイルUID」を取得するには?

    エクスプローラの「列の設定」ダイアログに、ファイルUID という項目があります。ファイルを同一ドライブ内で移動してもこの値は変化しません。属性を変更しても変化せず、重複もないみたいなのでファイルのUnique ID なのだろうと思います。これをWSHから取得するにはどうすればいいのでしょうか? 目下、ファイル名を一旦テキストファイルに取り込んで編集してから戻すというやり方で、複数ファイル名を一括してリネームするスクリプトを書いています。ファイル名に依らずにファイルを識別するために、現在はプロパティの概要項目に、識別文字列を入力しています。この方法はNTFSでしか使えず、エクスプローラの動作も重くなります。 このファイル識別に「ファイルUID」が使えたら、と思うのですが。

  • XPのPC上で簡単な動作をするスクリプトをつくりたい

    XPのPC上で簡単な動作をするスクリプトをつくりたいと思っているのですが、 たとえば、 この文字列があったら、このフォルダに移動する。 このフォルダ以下に以下のフォルダを作成する。 ファイルの中身からリストを作成するなど。 プログラミングの知識(VB,JAVA,VBA)はあるので、 そのようなバッチファイル、スクリプトみたいなのを作りたいのですが、どのプログラムがお勧めでしょうか? 自分でしらべたかんじでは、VBスクリプトがよさそうなのですが・・・ おすすめなプログラムあったら教えて下さい。 また、そのプログラムの解説などが掲載されているページが あったら教えて下さい。

  • WSH(Windows Script Host)のデバックはどの様にするのですが。?

    WSH(Windows Script Host)をデバックしたいのでいろいろ調べて Micrsoft Script Debaggerをインストールしました。 そして、コマンドプロンプトでstop行入りのhoge.vbsに対して、 「cscript.exe //X C:\hoge.vbs」及び「wscript.exe //X C:\hoge.vbs」を 実効しましたがデバッガは起動しませんでした。 (Micrsoft Script Debaggerの単独起動は確認済み) 他の方法でも結構ですので、皆さんのWSH(Windows Script Host)のデバックの 仕方を教えて下さい。 では、宜しくお願いします。

  • ExcelにてActiveXのFrame使い方

    Excel2003にて、ワークシートにActiveXのFrameを作成して、複数のオプションボタンを配置したい。 しかし、デザインモードでは配置できるのですが、デザインモードを終了すると途端にこれらのボタンは表示されません。この解決方法をご存じの方は教えて頂けませんか。VBAのUserFormのFrameの理解でいたのですが。MultiPageでも同様な現象です。

  • スクリプトについて、ご回答をお願いいたします。

    スクリプト初心者です。。。 どなたかご教示いただけますと幸いです。 スプレッドシートにて勤怠管理シートを作成しています。 チャットワークからの打刻データ(時間と社員ID)をもとに、それをスプレッドシートに出力するというスクリプトです。 スクリプトを組んでみたのですが、 動作は無事にしているのですが、 ”データ”シートのE列・F列、つまりは打刻時間が表示される部分に 通常では、時間のみ(10:00)という打刻のみ表示されるようスクリプトを組んでいるはずのなのですが、 1899/12/31 10:07:00といったように日付と時間それぞれが打刻されてしまい、 勤怠管理シートの計算がうまくいかないようになってしまいました。 スプレッドシートの表示切替を10:00などにしても、 入力されているデータが上記日付と時間のため、 上手く計算が実行されないのです……。 お忙しいところ、大変恐縮ではございますが、 どなかたご教示お願いできますでしょうか…?

  • VBスクリプトで他条件分岐を作成したいです。

    VBスクリプトで他条件分岐を作成したいです。 大変申し訳ありません。再質問です。 使用している印刷ソフトにて以下の説明があります。 VBスクリプト(Microsoft Visual Basic Scripting Edition) とは、Windows PCで使用できるスクリプト言語です。 Visual BasicやOfficeのVBAとは似ていますが、別の言語となります。 本印刷ソフトはVBスクリプトを利用する事で、あらかじめ用意されている書式以外の 自由な書式で表現したり、データーベースに基づく複雑な条件分岐に従って 内容を変更したりできます。 :省略 データソースに入力されている値に対して後処理をかけることができます。 (データソースはExcelからデータベースフィールドで取得し、  値をその他のオプションのVBスクリプトで後処理します) ようするにValueから値を読み込み、値を編集してValueに返すという 処理をすることになります。 例えばデータソース 3A500100000099 の 3A5と00100000099の間(3文字目のあと)に ハイフンを入れるスクリプトであれば   str = Value   Value = Left(str,3) & "-" & Mid(str,4,14) という内容になります。 この説明から 現在ソフトの設定にて接続されているデーターソース(指定のエクセルファイルのC列) に入力されている値において以下の5種類が存在していて(全て半角英数字) その5種類によって以下の法則で編集(半角ハイフンをかます)をして値を返したいです。 データ元のエクセルファイルに式を入れるのも選択肢ですが、このエクセルファイルは システムの夜間バッチでファイル名は同じで上書更新される為エクセルに式を入れておいても 翌日には式が消えてしまいます。 このソフトはこういう場合に取得したデータを加工して表示されそれが印刷されるので この機能を使用したいのです。 Select Case を使用するべきだと思うのですが未経験者の私の手に負えません。 今回限りの設定なのでなんとか乗り切りたいです。 よろしくお願いします。 1.○○○○○○○○○○○○○○(先頭が3以外で14文字)     ↓   ○○○-○○○○○-○○-○○-○○(3-4、8-9、10-11、12-13桁の間に半角ハイフンを入れる) 2.○○○○○-○○○○○(5ケタ-5ケタ)      ↓   ○○○○○-○○○○○(変換しない)   3○○○○-○○○○○(先頭が3で5ケタ-5ケタ)     ↓   3○○○○-○○○○○(変換しない)   3A○○○-○○○○○(先頭が3Aで5ケタ-5ケタ)     ↓   3A○○○-○○○○○(変換しない) 3.○○○○○○○○-○○○○○(8桁ハイフン5桁)     ↓   ○○○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる)   3○○○○○○○-○○○○○(先頭が3で8桁ハイフン5桁)     ↓   3○○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる)   3A○○○○○○-○○○○○(先頭が3Aで8桁ハイフン5桁)     ↓   3A○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる) 4.3○○○○○○○○○○○○○(先頭が3で14桁)     ↓   3○○○○-○○○○○-○○-○○(5-6、10-11、12-13桁の間に半角ハイフンを入れる) 5.3A○○○○○○○○○○○○(先頭が3Aで14桁)    ↓   3A○-○○○○○○○○○○○(3-4桁の間に半角ハイフンを入れる)

  • VBA 追加したMultiPageでのイベント

    ExcelVBAでどうしても分からないところがあったため、質問させていただきました。 <Usrform上Control> ・UserForm1 ・MultiPage-Page1 ・CommandButton1(押すとPageが追加されます。Page1,Page2,Page3...) ・Combobox1 ・TextBox1 <現在可能な動作> UserForm1上にMultiPageのPage1を設定しています。 CommandButton1を押すとPage2が追加され、Page1上に設定されてあるCombobox1とTextBox1をPage2上に追加します。 <行ないたい動作> 現在は、Page1上でCombobox1の値が変更された時に、Page1上のTextBox1の値が変更されるように設定していますが、 Page2上のCombobox1の値が変更された時に、Page2上のTextBox1の値を変更することは出来ますでしょうか? 使用Versionは、Excel 2003です。 何卒、よろしくお願いします。 <Code> Private Sub CommandButton3_Click() Dim myCmbbx As MSForms.ComboBox Dim myTxtbx As MSForms.TextBox With MultiPage1 .Pages.Add , , .Value + 1 .Value = .Value + 1 End With With MultiPage1.SelectedItem Set myCmbbx = .Controls.Add("Forms.Combobox.1", "ComboBox1", True) With myCmbbx .AddItem "AAA" .AddItem "BBB" .AddItem "CCC" End With Set myTxtbx = .Controls.Add("Forms.TextBox.1", "TextBox1", True) With myTxtbx .MultiLine = True End With End With End Sub Private Sub ComboBox1_change() If ComboBox1.Text = "BBB" Then TextBox1.Value=1234567 End If End Sub

  • VBのWebBrowser詳しい方!!

    VB.NETでの質問です。 WebBrowserでカレンダーのセレクトボックスを操作したいのですが javascriptが使用されていてnameとvalueがなくどの様に値を入れたらよいのかわかりません。 現在、無理矢理その後のコントロールからShift+Tabで戻りDownキーを数回入力させて 何とか動作はしているのですが、、、、。 ご存じの方ご教示下さい。 ソース <script type="text/javascript" language="JavaScript">getDepMonthOptio("ja","jp",document.test1)