9

シナリオは止めたくないけど、途中で起きたことを画面に出しておきたい。WinActorが終了しても、メッセージは残しておきたい。

このようなことはありませんか?

私が必要になり、簡単ですがVBSでメッセージを出すものを作りましたので、ご提供します。

下記のプログラムは、msgbox.vbsというファイル名で、保存してください。

シナリオから使用するときは、ノードの「コマンド実行」で指定します。

  プロパティは、

    コマンドにmsgbox.vbsのパス

    オプションは表示メッセージ(※1)

    オプションは起動のみ(追加起動しない)を選択します。

※1表示メッセージについて

  ・最初に、1~4を指定すると、マークが表示されます。(1:i、2:!、3:×、4:?)

  ・メッセージはスペースで区切って指定すると、改行されて表示します。(個数に制限はありあせん)

   横に繋げたいときは”で囲んでください。(メッセージは、文字列連結で作成してください)

  ・先頭に@を付けると、メッセージボックスのタイトルになります。

  (コマンドプロンプトで、msgbox.vbs /?を入力すると、この説明を表示します)

例)

コマンド:値=>\\FileServer\共通\msgbox.vbs

オプション:値=>3 処理Aでエラー発生 "コマンド:SORT AA.B" 確認してください "@シナリオA 処理Aエラー"

msgbox.vbsというファイル名で保存してください。また、文字コードは、Shift-JIS(ANSI)で保存してください。

Option Explicit
Dim intArgsCnt , msg , i , title , mark , parm

intArgsCnt = Wscript.Arguments.Count

msg=""
title=""
mark = 0
if intArgsCnt > 0 Then
    i = 0
    Do until i = intArgsCnt
         parm = Wscript.Arguments(i)
         if i = 0 And parm = "/?" then
            Call Help
            Wscript.Quit
         elseif i = 0 And inStr("1 2 3 4 ",parm) > 0 then
             Select Case CInt(parm)
                 Case 1 : mark = vbInformation 'i
                 Case 2 : mark = vbExclamation '!
                 Case 3 : mark = vbCritical '×
                 Case 4 : mark = vbQuestion '?
             End Select
         elseif Left(parm,1) = "@" then
             title = Right(parm,Len(parm)-1)
         else
             if msg <> "" Then
                   msg = msg & vbCrLf
             end if
             msg = msg & Wscript.Arguments(i)
         end if
         i = i + 1
    Loop
end if
msgbox msg,mark,title
'========================================
'説明表示
'========================================
Sub Help()
    Dim hmes

    hmes = "msgbox.vbs [マーク番号] メッセージ1 [メッセージ2[・・]] [@タイトル]" & vbCrLf & vbCrLf
    hmes = hmes & "メッセージボックスを表示する。" & vbCrLf & vbCrLf
    hmes = hmes & "マーク番号:" & vbCrLf
    hmes = hmes & "    1:i (Information)" & vbCrLf
    hmes = hmes & "    2:! (Exclamation)" & vbCrLf
    hmes = hmes & "    3:× (Critical)" & vbCrLf
    hmes = hmes & "    4:? (Question)" & vbCrLf
    hmes = hmes & "メッセージ:" & vbCrLf
    hmes = hmes & "    表示したいメッセージ。スペースで区切ると改行して表示。" & vbCrLf
    hmes = hmes & "    横に繋げて表示したい場合は、" & Chr(34) & "で囲む。" & vbCrLf
    hmes = hmes & "タイトル:" & vbCrLf
    hmes = hmes & "    先頭に@を付け、ウィンドウのタイトルを指定する。" & vbCrLf & vbCrLf
    hmes = hmes & "例)" & vbCrLf
    hmes = hmes & "msgbox.vbs 2 処理Aでエラー発生 " & Chr(34) & "コマンド:SORT AA" & Chr(34) & " 確認してください @処理A"
    msgbox hmes,vbOkOnly,"msgbox.vbs Help"
End Sub

この質問は解決済みのためクローズされています。
Kouichi 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。