2017-05-28 12 views
0

Ekkehard.Hornerは、私には以下のコードで助けてくれました。しかし今はMsgBox "message 1"が表示されるたびにカウンタを追加する方法を探しています。各反復後にMsgBoxが異なる

<html> 
<head> 
<title>Sync Tool</title> 
<HTA:APPLICATION 
    APPLICATIONNAME="Sync Tool" 
    ID="SyncTool" 
    VERSION="1.0.0" 
    BORDER="dialog" 
    MAXIMIZEBUTTON="no" 
    MINIMIZEBUTTON="no" 
    SCROLL="no" 
    SINGLEINSTANCE="yes" 
    CONTEXTMENU="no" 
    SELECTION="no"/> 
</head> 

<script language="VBScript"> 
Set objShell = CreateObject("WScript.Shell") 

Sub Window_OnLoad 
    Dim width, height 
    width = 330 
    height = 310 
    self.ResizeTo width, height 
    self.MoveTo (screen.AvailWidth-width)/2, (screen.AvailHeight-height)/2 
End Sub 

Sub OnClickButtonSyncNow() 
    ' Box A 
    If BoxAA.checked Then 
     MsgBox "BoxAA" 
    Else 
     'Do nothing 
    End If 

    If BoxAB.checked Then 
     MsgBox "BoxAB" 
    Else 
     'Do nothing 
    End If 

    If BoxAC.checked Then 
     MsgBox "BoxAC" 
    Else 
     'Do nothing 
    End If 

    If BoxAD.checked Then 
     MsgBox "BoxAD" 
    Else 
     'Do nothing 
    End If 

    If BoxAE.checked Then 
     MsgBox "BoxAE" 
    Else 
     'Do nothing 
    End If 

    ' Box B 
    If BoxBA.checked Then 
     MsgBox "BoxBA" 
    Else 
     'Do nothing 
    End If 

    If BoxBB.checked Then 
     MsgBox "BoxBB" 
    Else 
     'Do nothing 
    End If 

    If BoxBC.checked Then 
     MsgBox "BoxBC" 
    Else 
     'Do nothing 
    End If 

    If BoxBD.checked Then 
     MsgBox "BoxBD" 
    Else 
     'Do nothing 
    End If 

    If BoxBE.checked Then 
     MsgBox "BoxBE" 
    Else 
     'Do nothing 
    End If 

    Dim bF : bF = False 
    Dim c1 
    For Each c1 In Split("A B C D E F G H I J") 
     Dim n : n = c1 
     Dim b : Set b = document.getElementById(n) 
     If b.Checked Then 
      bF = True 
     End If 
    Next 
    If bF Then 
     MsgBox "all done" 
    Else 
     MsgBox "message 1" 
    End If 
End Sub 

Sub ExitTool() 
    window.close() 
End Sub 
</script> 

<body bgcolor="firebrick"> 
<style type="text/css"> 
.tg {border-collapse:collapse;border-spacing:0;} 
.tg th{font-family:Arial, sans-serif; font-size:14px; font-weight:normal; padding-top:0px ;padding-right:20px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;} 
.tg td{font-family:Arial, sans-serif; font-size:14px; padding-top:5px ;padding-right:10px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;} 
.tg .tg-header{color:#FFFB00; font-size:22px; font-weight:bold; font-family:Verdana, Geneva, sans-serif !important;} 
.tg .tg-text{color:white; font-family:Verdana, Geneva, sans-serif !important; vertical-align:top} 
.button {height:50px; width:136px; font-weight:bold; background-color:#555555; border: 2px solid #FFFB00; color:white; text-align:center; text-decoration:none; display:inline-block; font-size:16px;} 
</style> 
<table class="tg"> 
    <tr> 
    <th class="tg-header">Box A</th> 
    <th class="tg-header">Box B</th> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAA" id="A">AA</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBA" id="B">BA</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAB" id="C">AB</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBB" id="D">BB</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAC" id="E">AC</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBC" id="F">BC</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAD" id="G">AD</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBD" id="H">BD</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAE" id="I">AE</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBE" id="J">BE</td> 
    </tr> 
</table> 
<br> 
<input type="button" class="button" name="SyncNow" id="SyncNow" value="Sync Now" onclick="OnClickButtonSyncNow"> 
<input type="button" class="button" name="Exit" id="Exit" value="Exit" onclick="ExitTool"> 
</body> 
</html> 

私が探している結果のようなものです:私はDo..Loopのような別のものを試してみましたが、私のカウンターは本当ににおけるカウントの基本を理解するのに苦労1. を超えたことがない

If bF Then 
    MsgBox "all done" 
    window.close() 
Else 
    MsgBox "message 1" 'counter + 1 
ElseIf counter = 2 Then 
    MsgBox "message 2" 'counter + 1 
ElseIf counter = 3 Then 
    MsgBox "message 3" 'counter + 1 
ElseIf counter = 4 Then 
    MsgBox "message 4" 'counter + 1 
ElseIf counter = 5 Then 
    MsgBox "message 5" 'no more counting needed because of window.close() 
    window.close() 
End If 

VBScript。

+0

:あなたのコードは次のように変更しますすべてのチェックボックスはまだチェックされておらず、5つのメッセージの後に停止する必要があります。私はHTA全体を追加するために、今夜の私の最初の投稿を更新する予定です。 – WatskeBart

+0

最初の投稿に完全なHTAを追加しました – WatskeBart

答えて

1

グローバル変数を使用すると、プロシージャ呼び出しでカウントが保持され、カウンターをインデックスとして使用してアクセスするメッセージを持つ配列が保持されます。ボタンをクリックすると、すべてのチェックボックスがチェックされている場合は、それがメッセージ1を示している。しかし私は何を達成しようとしている、新しいメッセージにボタンがあるたびに表示することです

<script language="VBScript"> 
Dim ctr : ctr = 0 
messages = Array("message 1", _ 
    "message 2", _ 
    "message 3", _ 
    "message 4", _ 
    "aborting" 
) 
... 
Sub OnClickButtonSyncNow 
    ... 
    If bF Then 
     MsgBox "all done" 
     window.Close 
    Else 
     MsgBox messages(ctr) 
     If ctr >= 4 Then window.Close 
     ctr = ctr + 1 
    End If 
End Sub 
... 
</script> 
+0

まず、私の投稿を修正してくれてありがとう、英語は私の母国語ではありません:) 第二に、私は達成しようとしているもの、あなたの答えを見ない/理解しないでください。 ユーザが「SyncNow」ボタンをクリックし、「bF」が「False」の場合、ユーザにチェックボックスを選択するのを忘れたことを伝える「MsgBox」を表示します。私が探しているのは、ユーザが 'SyncNow'ボタンをもう一度クリックすると、チェックボックスをまだ選択していないことをユーザに伝える別のメッセージが表示されなければならないということです。そして5つのメッセージの後に、私はHTAを閉じるつもりです、なぜならユーザは明らかに互換性がないからです:) – WatskeBart

+0

私はカウンタが多分誤解を招き、間違っていると言います。 – WatskeBart

+0

@WatskeBart私は若干の調整を加えましたが、AFAICSのコードでは、今説明したばかりのことが既に行われているはずです。期待した結果と異なる結果が出てくるかどうかをご説明ください。各反復ごとに異なるメッセージが必要でしたか? –

関連する問題