サイトアイコン わんすけに聞いてみる

[WinActor]実行中の変数値をCSV形式で書出し

「繰り返し処理」でデータ数の設定でCSVファイルを取り込んでループさせてたら、その1行分のデータの実行結果のステータス情報を付与した変数値のデータを書出ししたくなった。

都度、文字列結合でCSVっぽく文字成形するのは大変だし、スクリプト書いてみた。

1.繰り返し実行中の変数値をCSV形式で書出し

あくまで、「その時」の変数値を書き出すだけよん。

変数の名前をカンマ区切りで列挙すると、その順番でCSVを作ります。

出力先のファイル名のファイルがあれば、項目名は端折ってテキスト追記します。

出力先ファイルが既存で無い場合は、項目名も出力してテキスト書出しします。

Dim Vars, ColumnHeader, LineVal
Vars = split(Replace(!項目名(カンマ区切り)!, """", ""), ",")

ColumnHeader = ""
If Not CreateObject("Scripting.FileSystemObject").FileExists(!出力ファイル!) Then
  For i=0 To UBound(Vars)
    If Len(ColumnHeader) > 0 Then ColumnHeader = ColumnHeader & ","
    ColumnHeader = ColumnHeader & """" & Vars(i) & """"
  Next
  ColumnHeader = ColumnHeader & vbCrLf
End If

LineVal = ""
For i=0 To UBound(Vars)
  If Len(LineVal) > 0 Then LineVal = LineVal & ","
  Val = GetUMSVariable(Vars(i))
  LineVal = LineVal & """" & Val & """"
Next

Append_TEXT ColumnHeader & LineVal , !出力ファイル!

Function Append_TEXT(ContentStr, FilePath)
  Dim objFS, objTXT
  On Error Resume Next
  Set objFS = CreateObject("Scripting.FileSystemObject")
  Set objTXT = objFS.OpenTextFile(FilePath, 8, True)
  objTXT.WriteLine ContentStr
  objTXT.close
  Set objTXT = Nothing
  Set objFS = Nothing
  If Err.Number > 0 Then
    Append_TEXT = False
    Err.Clear
  Else
    Append_TEXT = True
  End If
End Function

 

2.設定タブはこんな感じ。

特に何のひねりもない。

 

3.全部の変数の値をCSVに出力するとしたら、こうかな。

変数一覧のひな形ファイル作成っていうボタンを押すと、変数一覧の情報をファイルに出力できます。

保存するときに、拡張子を「.csv」で保存して右クリック⇒「編集」でメモ帳で開くと

変数の名前をカンマ区切りで列挙した行が手に入るので、それを「項目名(カンマ区切り)」に値⇒で張り付ければその瞬間の全部の変数の現在値をCSV出力できます。

 

繰り返し処理とか、都度変数の状況が変わってしまう処理のデータ推移状況を確認するのには丁度いいと思いますよ。

モバイルバージョンを終了