• ベストアンサー

WSHで自動化ソフトを作りたいけど、エクセルとの連携、エラー防止はどうすれば?

SHIMAPEEの回答

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.7

回答番号 No.6のお礼へのアドバイスです。 テキスト化はSendKeysで行うしか手が無さそうですね。回答番号5のスクリプトを参考に、テキスト化の自動化までを作って試してはどうでしょうか。 「// ここにexportの処理を書く」を展開して、SendKeysでメールを開く、ASCII textでexportする、メールを閉じる、ようにすればよいですね。「// {DOWN}」はおわかりかと思いますがSendKeysで一覧画面の下のメールを選択する処理です。 テキスト化ができましたら、実際にテキスト化された注目の箇所の行(2行になりますか)の一例を補足に書き込んで頂けませんか。例えば下のような感じで。 --------------- 発表日 09092818 --------------- 差し支えない範囲でできるだけ生のデータがよいです。見せて頂ければ、WSHを使って検索し、Excelに書き込む具体的なスクリプトをアドバイスできると思います。

choco0213
質問者

お礼

ありがとうございます。 var WShell = WScript.CreateObject("WScript.Shell"); WShell.AppActivate("業務に使うメールソフト(別のウィンドウに開いてある必要があります)"); WScript.sleep(10000); WShell.Sendkeys("{DOWN}") WShell.Sendkeys("{ENter}"); WScript.sleep(100); WShell.sendkeys("%"); WScript.sleep(100); WShell.sendkeys("f"); WScript.sleep(100); WShell.sendkeys("e");exportを選択 WScript.sleep(100); WShell.Sendkeys("{ENter}"); WScript.sleep(3000); WShell.sendkeys("letter"&"i");//unicode8を選択 WScript.sleep(100); WShell.sendkeys("{Enter}"); WScript.sleep(20000); WShell.sendkeys("%"); WScript.sleep(100); WShell.sendkeys("f"); WScript.sleep(1000); WShell.sendkeys("{DOWN}{DOWN}{DOWN}");closeを選択 WShell.Sendkeys("{ENter}"); WScript.Echo "作業が完了しました。" Do while i=10のようなコマンドで、繰り返し処理したいのですが、何かいいアイディアはございませんか? ("letter"&"i")はなぜか0と入力されました。

choco0213
質問者

補足

DATES:Material ID Ann. Dt. FCS Date (GA. Date) Early Order Dt Lim. Avail. Dt. WDFM Date ALL 09/03/31 09/04/10 です。 09/04/10が、Ann.dtで、抽出したいデータです。 ついでといっては何ですが、 RFA SPB (Special Bid) Industry Def. Cat.(+Subgroup) = BA Code Document Number: Function Class Code: Japan Marketing Brand Ind.: Division (Segment Acronym): RFA 10A 47284A から、47284Aを抽出することも可能でしょうか?

関連するQ&A

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • デフラグのスケジュールによる自動化

    デフラグをタスクから自動化する為にJSで下記の様に設定したのですが最適化のボタンをクリックしてくれないので困っています。誰か教えて下さい。 var WShell = WScript.CreateObject("WScript.Shell"); WShell.Run("%SystemRoot%\\system32\\dfrg.msc"); WShell.AppActivate("ディスク デフラグ ツール"); WScript.Sleep(2000); WShell.Sendkeys("{TAB}{TAB}{TAB} ");   上記のまま設定すると分析のボタンをクリック後 終了するだけです。

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • Windows 7 でのWSH の挙動

    お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================

  • マザーボードを換えたらVBSからの休止が出来なくなりました。

    こんにちは。 表題の件ですが、以前容易に”休止”に移行する為にVBSを使用しての 休止をアドバイスしていただいたのですが、今回表題に記したように マザーボードを換えたら以下のスクリプトで休止できなくなりました。 Set wShell=CreateObject("WScript.Shell") wShell.SendKeys "^+{esc}" Do While Not wShell.AppActivate("Windows タスク マネージャ") WScript.Sleep 100 Loop wShell.SendKeys "%uh%fx" '休止状態 なぜなのでしょう?アドバイスをお願いします。 ちなみに以前のマザーボード(ASUS P5-VMDO)で効果のあったScript.Sleep 100と記されてる行の数値を弄って見ましたが待機時間が変わるだけで”休止”になりませんでした。 現在のマザーボードはASUS P5Q Deluxeです。

  • WSHスクリプトでブラウザ更新

    教えてください。 WSHスクリプトでブラウザの更新をF5ではなくてControl + Rしたいのです。 Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 2000 WshShell.AppActivate "テスト" WScript.Sleep 2000 WshShell.SendKeys "^R" WScript.Sleep 2000 WScript.Echo "終了" 最初の一回目の実行時はできるのですが、それ以降更新してくれません。 よろしくお願いいたします。

  • 実行中のSendkeysのVBSを途中で停止したい

    下記のような実行中のSendkeysのVBSを途中で 停止するにはどうすればよいのでしょうか? Set s = WScript.CreateObject("WScript.Shell") for i=1 to 100 s.SendKeys i WScript.Sleep 500 next ご存知の方がおられましたらご回答をよろしくお願いします。

  • WSHを使いTELNETで%USEPROFILE%\デスクトップにファイルを複写したい

    WSHをはじめたばかりです。TELNETで接続した現在の相手のデスクトップにファイルを複写させたいと考えています。 DOSのように指定したのですがカナ文字や%がうまく渡されていないようなのですがどのように設定すればよいか教えてください。 下記のように作成しています。 よろしくお願いします。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "確認" WScript.Sleep 1000 adr = InputBox("端末IPアドレスを入力してください。", 1) adr = "telnet " & adr & "~" rem telnet ホスト名 WshShell.SendKeys adr WScript.Sleep 2000 rem ユーザー名 WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem パスワード WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem コマンド WshShell.SendKeys "cd %USEPROFILE%\デスクトップ~" WScript.Sleep 3000 rem あとCOPYによる複写コマンドの記述

  • 特定のフォルダを階層下まで表示を変えたい

    ほかのカテゴリで質問したのですが回答がありませんでした。 すべてのフォルダではなく、ある特定のフォルダの表示だけを階層下まで「詳細」に変更したいのです。 すべてのフォルダですとWindowsの処理で可能ですし、階層下までをしなくてもいいのなら、WSHで下のように書いて、その中へフォルダをドラッグしたらできました。 '----------------------------------------------------- Set objShell = WScript.CreateObject("WScript.Shell") objShell.SendKeys "{ENTER}" WScript.Sleep 200 objShell.SendKeys "%V" WScript.Sleep 200 objShell.SendKeys "^D" WScript.Sleep 200 objShell.SendKeys "%{f4}" '---------------------------------------- どなたか、階層下まで同じ処理をする方法か、それともそのような処理ができるフリーソフトをご存知ないでしょうか?