ここから本文です

当方プログラミング初心者です、よろしくお願い致します。 VB Scriptで業務ラウン...

bgr********さん

2018/2/1511:39:54

当方プログラミング初心者です、よろしくお願い致します。
VB Scriptで業務ラウンチャ的なものを作りたいと考えています。

いろんなところから拾ってきたものを組み合わせているのですが、
どうも処理の振り分けがうまくいきません…。
稚拙な内容でお恥ずかしいのですが、ご教示いただけると幸いです。

set w = WScript
Dim i

' IEのオブジェクトを作り、画面の設定をして、表示
set ie = CreateObject("InternetExplorer.Application")
ie.Width = 330
ie.Height = 120
ie.ToolBar = false
ie.StatusBar = false
ie.Resizable = false
ie.Visible = true
ie.Navigate "about:blank"
do while ie.Busy
w.sleep 100
loop

' 業務メニューと終了のボタンを表示
html = "" _
+ "<form>" _
+ " <input type=""hidden"" name=""CLICKED0"" value=""false0""/>" _
+ " <input type=""hidden"" name=""CLICKED1"" value=""false1""/>" _
+ " <input type=""button"" " _
+ " onClick = ""getElementsByName('CLICKED1')(0).value = 'true1';""" _
+ " value=""○○業務"" /> <br /> <br />" _
+ " <input type=""button"" " _
+ " onClick = ""getElementsByName('CLICKED0')(0).value = 'true0';""" _
+ " value=""終了"" />" _
+ "</form>" _

ie.Document.Body.InnerHtml = html
ie.Document.Title = "業務メニュー"

' ボタンがクリックされるまで待つ
on error resume next

function is_clicked0(ie)
is_clicked0 = ie.Document.GetElementsByName("CLICKED0")(0).value <> "false0"
end function

function is_clicked1(ie)
is_clicked1 = ie.Document.GetElementsByName("CLICKED1")(0).value <> "false1"
end function

do while ie.Busy or not is_clicked0(ie) or not is_clicked1(ie)
if Err.Number <> 0 and is_clicked0(ie) then
i = 0
exit do
elseif Err.Number <> 0 and is_clicked1(ie) then
i = 1
exit do
end if
w.sleep 100
loop

' クリックされたボタンを判定
if Err.Number = 0 then
ie.Quit
Select Case i
Case 0
w.echo "終了します。"
Case 1
w.echo "○○業務を開始します。"
Set Ps1 = WScript.CreateObject("WScript.Shell")
Ps1.Run "C:\○○", 1, 1
End Select
end if

閲覧数:
20
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

Prometheusさん

2018/2/1512:13:13

詳しくは分かっていないのですが、質問者のプログラムを実行しながら、いろいろ試してみたところ、

Do While ie.Busy or not is_clicked0(ie) or not is_clicked1(ie)
If is_clicked0(ie) Then
i = 0
Exit Do
ElseIf is_clicked1(ie) Then
i = 1
Exit Do
End If
WScript.sleep 100
Loop

のように、「Err.Number <> 0」を削除すると、思っておられるように動いたのですが・・・

試してみてください。

質問した人からのコメント

2018/2/16 15:03:27

ありがとうございます、動きました!
原因が自分で分かるよう引き続き勉強します。
ありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる