初めまして。
調べてみても同様の事例が見つからず、理解のきっかけも想像出来ませんでしたので質問させてください。


現象としては、「ログオンしている状態であればダブルクリックで動かしても、スケジューラを使って動かしても問題なく動くVBS」を作成しました。(ソースは末尾に記載します。)
しかし、「コンピュータのロックがかかっている状態(時間が経つと勝手にロックがかかる仕様になっています)」でタスクスケジューラを使いスクリプトを動かすとエラーになるというものです。

ソースは↓
要するに特定のWEBページの情報を持ってきて置換処理をしいらない部分を削除し、メールで送信する。というスクリプトです。

-----------------------------------------------------------

Set WSHFso = CreateObject("Scripting.FileSystemObject")
Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = True
IE.Navigate("http://")

Set WshShell = WScript.CreateObject("WScript.Shell")

Do While IE.Busy
Wscript.Sleep 10
Loop

'↓開いたらログイン処理やページ移動処理などをして
目的のページ移動する処理があり、目的のページを開いたら↓の処理に続きます。

Do While IE.Busy
WScript.Sleep 10
Loop

'目的のページをテキストデータで読み込みます。
Do While IE.Document.readyState <> "complete"
WScript.Sleep 100
Loop

Dim Schedule

'読み取ったページ内容を変数に格納します。
Schedule = IE.Document.Body.InnerText

'テキストデータの中からいらない情報を置換して消していきます。
後の処理をみると無駄な作業に見えますが諸事情により必要な処理です。
Schedule = Replace (Schedule,"89101112131415161718192021222324","")
Schedule = Replace (Schedule,"891011121314151617181920212223","")
Schedule = Replace (Schedule,"8910111213141516171819202122","")
Schedule = Replace (Schedule,"89101112131415161718192021","")
Schedule = Replace (Schedule,"891011121314151617181920","")
Schedule = Replace (Schedule,"8910111213141516171819","")
Schedule = Replace (Schedule,"reserved.","")

'テキストデータの中で固有のデータ(データ取得時の西暦)があるので、
それをInStrで探し出し、Midを使って固有のデータ移行のテキストデータを
strScheduleの中に格納しています。

Dim strFind
Dim counterStart
Dim strSchedule

strFind = Year(Now)
counterStart = InStr(Schedule, strFind)
strSchedule = Mid(Schedule,counterStart)

Dim nowdate
  nowdate = Date()

Call SendMail("aaa@aa.com", nowdate & "のスケジュール",strSchedule)

'-------------- ↓サブルーチン↓ -----------------
'メール送信
Sub SendMail(mailto,subj,body)
Set bobj = CreateObject("basp21")

Dim smtp '--SMTPサーバー
smtp = "mail.aaa.com"
mailfrom = "sysadmin@aaa.com"
files = ""

msg = bobj.SendMail(smtp,mailto,mailfrom, subj,body,files)

End sub
'------------- ↑サブルーチン↑ -----------------

IE.Quit
Set objIE = Nothing

-----------------------------------------------------------



上記のソースの中で「strSchedule = Mid(Schedule,counterStart)」の部分でエラーが走ってしまいます。
内容としては、要するにMidの引数がふさわしくないとのことなのですが、
試しに「counterStart」を実際に当てはまる数字(テキストデータ全体の文字数よりも少ない数字)にしてもエラーが走ります。


現状は運用の方法を変え(いつまで経ってもロックされない仕様にしました。)
対応して問題なく動いているところですが、いまいち腑に落ちなく投稿いたしました。
どなたかご教授いただけますと幸いです。

A 回答 (1件)

> IE.Visible = True


の部分をカットするとどうなりますか?
デスクトップがない(ログインしていない)のにウィンドウを表示させようとすると基本的にエラーになると思いますが・・・

この回答への補足

>> IE.Visible = True
>の部分をカットするとどうなりますか?

レスポンスが遅くなりまして、申し訳ありません。。
早速試してみましたところ、同様に

>上記のソースの中で「strSchedule = Mid(Schedule,counterStart)」の部分でエラーが走ってしまいます。
>内容としては、要するにMidの引数がふさわしくないとのことなのですが、
>試しに「counterStart」を実際に当てはまる数字(テキストデータ全体の文字数よりも少ない数字)にしてもエラーが走ります。

のエラーが走ります・・・。

補足日時:2008/09/16 22:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 東京の水はまずい?地方民が悩む「カップ麺は水道水でOK?」

    水には味がある。といって、もしピンと来ない人がいるならば、おそらくは水道水が美味しい地域で育った人かもしれない。ことに都市部では「水道水がまずい」という声はよく聞かれるものだ。 「教えて!goo」で「東...

  • 製氷皿で簡単!コロコロフルーツ寒天

    氷を作る「製氷皿」を使った意外な利用法やレシピが話題になっている。「教えて!goo」でも「氷を作るだけじゃない!?暮らしに役立つ製氷皿の便利な使い方」や「【自宅で簡単】100均製氷皿を使ってお寿司を量産してみ...

  • 【長谷川豊】有吉さんと夏目ちゃんの話。

    驚いた方が多いでしょう私もびっくりです。 有吉さんとは共演は一度だけ。「有吉ジャポン」に呼んでいただきました。あの時は……有吉さん、やりにくかったでしょうね……。前の職場を辞めた直後だったし。出演を私の方...

  • ものしり執事のニールさん:第3話「たのしい買い物」

    とあるお屋敷に住むお嬢様のスズカと、執事のニールさん。とても物知りなニールさんは、世間知らずなスズカ様の様々な疑問にせっせと優しくもつっけんどんに答えてゆくのでした。

  • 教えて! しりもと博士:第96話「風邪」

    なんでも知っているしりもと博士が、ボーイとガールにいろいろな事を教えてくれます。 二人がこの世の全てを学ぶまで博士は教える事をやめません。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ