{"text_format":"1","workbook":"xlsx","n_sheets":5,"sheets":["テスト項目一覧表","改版履歴(テスト項目一覧表)","⇒これ以降ユーザ編集禁止","取扱説明書","改版履歴(ツール)"],"not_rendered":{"charts":0,"images":0,"macros":1,"external_links":0,"defined_names":9,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"テスト項目一覧表","index":0,"n_rows":29,"n_cols":16,"rows_kept":29,"cut":false,"hidden":false,"merged":[[0,1,0,3],[2,1,2,2],[1,1,1,2],[3,1,3,2],[5,1,5,2],[0,4,0,6],[1,4,1,6],[16,1,16,2],[19,1,19,2],[8,1,8,3],[9,1,9,2],[6,1,6,2],[5,4,5,6],[8,4,8,6],[13,1,13,2],[14,1,14,2],[10,1,10,2],[11,1,11,2],[2,4,2,6],[3,4,3,6],[4,1,4,2],[12,1,12,2],[24,1,24,2],[25,1,25,2],[20,1,20,2],[23,1,23,2],[22,1,22,2],[15,1,15,2],[17,1,17,2],[18,1,18,2],[21,1,21,2]]}
[null,"パラメータ",null,null,"  ★使い方は”取扱説明書”シートを参照してください"]
[null,{"$f":"\"IronPythonScriptGenerator \"&ToolVersion&\"\n検索ベースフォルダ\"","v":"IronPythonScriptGenerator version 1.08\n検索ベースフォルダ"},null,null,"　★赤枠で囲まれた部分のみユーザ編集可能です（それ以外は編集禁止）"]
[null,"テストグループ名称（任意）",null,null,"　★このブックを\"テストグループ名称.xlsm\"にリネームして使うと便利です"]
[null,"テストグループの目的・概要・補足事項など（任意）",null,null,"　★検索ベースフォルダおよび、その下のフォルダを再帰的に検索し一覧表に登録します"]
[null,"対象ソフトウェアバージョン（任意）"]
[null,"スクリプト当たりのタイムアウト時間（単位：分、省略時10）",null,null,{"$f":"\"　★ツールバージョン：\"&ToolVersion","v":"　★ツールバージョン：version 1.08"}]
[null,"ソースファイル　検索ベースフォルダ（任意） \n※”スクリプト一括生成”時に全テストケースへコピーされます"]
[]
[null,"テスト自動実行結果",null,null,"  ★一覧表に含まれる全てのスクリプトファイルを一括して作成します"]
[null,"実施者"]
[null,"開始日付"]
[null,"開始時刻"]
[null,"終了日付"]
[null,"終了時刻"]
[null,"合計件数"]
[null,"実施件数",null,null,"  ★一覧表に含まれる全てのスクリプトファイルを一括して実行します"]
[null,"未実施件数（スクリプト未設定）",null,null,"  ★CS+へロードモジュールがダウンロードされ、Pythonコンソールが表示されている状態が必要です"]
[null,"未実施件数（ハードウェア不備）",null,null,"  ★実施有無が\"○\"で、かつ自動実行フラグが空白のテスト項目が対象となります"]
[null,"未実施件数（ソフトウェア不備）"]
[null,"未実施件数（仕様不備）"]
[null,"未実施件数（項目重複）"]
[null,"未実施件数（変更影響なし）"]
[null,"未実施件数（その他）"]
[null,"OK（件数）"]
[null,"NG（件数）"]
[null,"総合評価"]
[]
[null,"番号","ジェネレータExcelファイル\n（クリックでファイルを開く）","検索ベースフォルダからの相対フォルダ\n（ダブルクリックでフォルダを開く）","テストケース名称","テストケースリビジョン","対象ソフトウェアバージョン","テストの目的・概要・補足事項など","実施有無","未実施とする理由","未実施とする補足説明","自動実行フラグ\n(空白以外で自動実行）","スクリプトファイル\n（クリックでファイルを開く）","最終ログファイル\n（クリックでファイルを開く）","最終行データ","判定結果"]
[null,"(END)"]

{"sheet":"改版履歴(テスト項目一覧表)","index":1,"n_rows":2,"n_cols":5,"rows_kept":2,"cut":false,"hidden":false,"merged":[[0,1,0,4]]}
[null,"改版履歴（テスト項目一覧表）"]
[null,"リビジョン","日付","内容","作成者"]

{"sheet":"⇒これ以降ユーザ編集禁止","index":2,"n_rows":0,"n_cols":0,"rows_kept":0,"cut":false,"hidden":false,"merged":[]}

{"sheet":"取扱説明書","index":3,"n_rows":203,"n_cols":4,"rows_kept":203,"cut":false,"hidden":false,"merged":[]}
["IronPythonScriptExecutor"]
["version 1.08"]
["取扱説明書"]
[]
["１．目的"]
[]
[null,"このExcelワークシート及びVBAマクロは、ルネサス社の統合開発環境（IDE）である「CS+」（旧名CubeSuite+）を"]
[null,"自動運転するPythonスクリプトを、一括して作成および実行させるためのものです。"]
[]
["２．できること"]
[]
[null,{"$f":"\"(A)IronPythonScriptGenerator.xls(\" & ToolVersion & \")をベースとしたExcelファイル（以下「テストケース」）を自動検索し\"","v":"(A)IronPythonScriptGenerator.xls(version 1.08)をベースとしたExcelファイル（以下「テストケース」）を自動検索し"}]
[null,null,"一覧表にリストアップします。検索は指定フォルダを起点に、そこを含むサブフォルダを再帰的に検索します。"]
[]
[null,"(B)上記一覧表に示されたIronPythonスクリプトファイル（拡張子.py）を、自動かつ連続的に作成します。"]
[null,null,"この作成はテストケースに含まれるVBAマクロを呼び出しすることで行います。"]
[]
[null,"(C)作成された、または既に作成済みのスクリプトファイルを、自動かつ連続的に実行します。"]
[null,null,"実行結果は一覧表に記録され、集計結果も同時に反映されます。"]
[]
["３．始めてみよう"]
[]
[null,"(1)準備"]
[]
[null,null,{"$f":"\"IronPythonScriptGenerator.xlsm(\" & ToolVersion & \")を原紙としてリネームコピーし、必要項目の記入と自動運転\"","v":"IronPythonScriptGenerator.xlsm(version 1.08)を原紙としてリネームコピーし、必要項目の記入と自動運転"}]
[null,null,"動作の編集を行います。詳しくはIronPythonScriptGeneratorの取扱説明書を参照してください。"]
[]
[null,null,"（注）バージョンが異なるファイルは使用できません。既存の旧バージョンファイルからの移行は以下の"]
[null,null,"手順で行ってください。"]
[]
[null,null,"・旧バージョンファイル”テストシート”シートの赤枠部分をコピーします。"]
[null,null,"・新バージョンファイルを開き、コピー元と同じセルで”形式を選択して貼り付け”→”値”を選択します。"]
[null,null,"・上記手順をすべての赤枠部分について繰り返します。"]
[]
[null,null,"次に、このファイル原紙、すなわち\"IronPythonScriptExecutor(v???.xlsm)\"を、テストグループ名称にコピー"]
[null,null,"します。たとえば\"通信テスト一覧表.xlsm\"としてコピーします。"]
[]
[null,"(2)テスト項目一覧表入力"]
[]
[null,null,"”テスト項目一覧表”シートで、以下の項目を入力します。"]
[]
[null,null,"（必須入力項目）"]
[null,null,"検索ベースフォルダ：”自動設定”ボタンで、Excelブックの存在するフォルダが入力されます。"]
[]
[null,null,"このフォルダ及び、下の階層のフォルダにIronPythonScriptGeneratorを原紙とする各テストケースが配置され"]
[null,null,"ていることを前提としています。(1)準備でファイル原紙をテストグループ名称に変えてあれば、”自動設定”"]
[null,null,"ボタンで事足りるようにしてあります。”設定”ボタンでフォルダのブラウズ設定も可能です。"]
[]
[null,null,"（任意入力項目）"]
[null,null,"テストグループ名称：”自動設定”ボタンで、Excelブックの名称が入力されます。"]
[]
[null,null,"テストグループの目的・概要・補足事項など：このテストグループで何をテストしたいのか、注意事項は何か"]
[null,null,"などを記入してください。見やすくするためにAlt+Enterで改行を入れたり、セルの高さを加減しても構いません。"]
[]
[null,null,"対象ソフトウェアバージョン：ターゲットソフトのバージョンアップに伴い、テスト内容が追加されたり、変化したり"]
[null,null,"といったこともあると思います。任意項目ではありますが、なるべく入力することを推奨します。"]
[null,null,"例えばVer0.52のソフトを念頭に設計したテストであれば、\"Ver0.52\"や\"0052\"としてください。"]
[]
[null,null,"ソースファイル　検索ベースフォルダ：version 1.06より、ソースファイル中のコメント検索結果を元にブレーク"]
[null,null,"行番号を設定できるようになりました。ただし、そのためにはソースファイルが含まれるツリーの位置を指定"]
[null,null,"することが必要です。この項目に記入して”スクリプト一括生成”ボタンをクリックすると、各テストシートの"]
[null,null,"検索パスを一括して本項目の内容に更新します。ただし空文字列の場合は更新されません。"]
[]
[null,"(3)テストケース再収集"]
[]
[null,null,"(2)で設定した検索ベースフォルダ及び、下の階層のフォルダに1つ以上テストケースがあれば、再収集を"]
[null,null,"行い一覧表を更新することができます。"]
[]
[null,null,"”テストケース再収集”ボタンを押すと、自動でフォルダ検索を行い一覧表を更新します。"]
[null,null,"以下の項目は既に存在するデータがあれば引き継がれます。それ以外は収集情報をもとに上書きされます。"]
[]
[null,null,"・実施有無"]
[null,null,"・未実施とする理由"]
[null,null,"・未実施とする補足説明"]
[null,null,"・自動実行フラグ"]
[null,null,"・最終ログファイル"]
[null,null,"・最終行データ"]
[null,null,"・判定結果"]
[]
[null,"(4)スクリプト一括生成"]
[]
[null,null,"一覧表に基づき、スクリプトを一括して作成します。これはテストケースの各Excelファイルを開き、その中に"]
[null,null,"含まれる”スクリプト作成”ボタン相当のマクロをリモート呼び出しすることで行っています。"]
[]
[null,null,"”スクリプト一括作成”ボタンを押すと、連続してスクリプト作成を行います。"]
[]
[null,null,"処理中にパラメータエラー等が発生した場合は”スクリプト作成に失敗しました”というメッセージボックスを"]
[null,null,"表示します。逆に正常終了した場合は”スクリプトファイル n件を作成しました”と表示されます。"]
[]
[null,null,"ただし、リモート呼び出しの制限により、テストケースのExcelファイル名にハイフン(-)が存在する場合は"]
[null,null,"スクリプト生成が行えません。この場合はハイフン(-)の代わりにアンダースコア(_)を使用してください。"]
[null,null,"上記制限はversion 1.04で撤廃されました。テストケースのExcelファイル名に対する制限はありません。"]
[]
[null,null,"version 1.06から、”ソースファイル　検索ベースフォルダ”がテストケースと異なっている場合、一覧表の"]
[null,null,"内容をテストケースにコピーしてスクリプト生成するようにしました。ソースファイルのパスを移動させた"]
[null,null,"場合などに全テストケースを一括で変更できるようにするためです。"]
[]
[null,"(5)スクリプト一括実行"]
[]
[null,null,"個別または一括して作成したスクリプトを、連続して運転させることができます。対象となるテストケースは"]
[null,null,"以下の条件を満たすものです。"]
[]
[null,null,"・”実施有無”項目が”○”になっている"]
[null,null,"・”自動実行フラグ”項目が空白になっている"]
[]
[null,null,"つまり任意のテスト項目に対して、自動実行フラグ項目を\"X\"などの内容にしておけば、それらテスト項目"]
[null,null,"の実行を一時的に抑止させることができます。"]
[]
[null,null,"次に、以下の準備を行います。"]
[]
[null,null,"・CS+を起動"]
[null,null,"・プロジェクトをオープン"]
[null,null,"・必要に応じてビルド"]
[null,null,"・デバッグ・ツールへロードモジュールをダウンロード"]
[null,null,"・表示(V)→Pythonコンソール(N)を選択し、Pythonコンソール ウィンドウを表示させる"]
[]
[null,null,"※Pythonコンソール(N)がメニューにない場合、ツール(T)→プラグインの管理(P)...を選択し、IronPython"]
[null,null,null,"コンソール・プラグインを有効にして、CS+を再起動してください。"]
[]
[null,null,"”スクリプト一括実行”ボタンを押すと、上記Pythonコンソール ウィンドウが存在するかチェックします。"]
[]
[null,null,"このとき、”CS+のPythonコンソール ウィンドウが見つかりません”というメッセージボックスが表示される場合が"]
[null,null,"あります。以下の対処法に従って再トライしてください。"]
[]
[null,null,null,"・Pythonコンソール ウィンドウをクリックしてフォーカスを当て、再度実行する"]
[null,null,null,"・CS+に似たルック＆フィールを持つアプリケーション（Visual Studioなど）が起動されていれば、すべて閉じる"]
[]
[null,null,"また、Pythonコンソール ウィンドウ上に\"Cound not reference ～ System.Threading\"とエラーメッセージが"]
[null,null,"表示される場合は、.NET Framework 4.0以降のランタイムをインストールした後に再度試行ください。"]
[]
[null,null,"Pythonコンソール ウィンドウの検出に成功すると、次のメッセージボックスを表示します。"]
[]
[null,null,"「ロードモジュールがデバッグ・ツールへダウンロードされていますか？」"]
[null,null,"⇒ダウンロードされていれば「はい」、そうでなければ「いいえ」を選択します。「いいえ」であればスクリプト一括"]
[null,null,null,"実行を中断します。"]
[]
[null,null,"「画面レイアウトはスクリーンショット向けに調整されていますか？」"]
[null,null,"⇒コマンドに”スクリーンキャプチャ”を含む場合、含まない場合の両方で表示されます。含まない場合は"]
[null,null,null,"関係ありませんので、「はい」を選んでください。含む場合は以下のポイントを確認して「はい」を選んで"]
[null,null,null,"ください。「いいえ」を選択するとスクリプト一括実行を中断します。"]
[]
[null,null,null,"・ソースファイルエリアが十分な広さを持っている"]
[]
[null,null,null,"・Pythonコンソールエリアが十分な広さを持っている"]
[]
[null,null,null,"・ウォッチウィンドウが表示され、ウォッチ式に対象となる変数名が入力されている(任意）"]
[null,null,null,"たとえば”変数値表示”をコマンドに含む場合、そのパラメータをあらかじめウォッチウィンドウへ記載し、"]
[null,null,null,"”変数値表示”の後に”スクリーンキャプチャ”コマンドを入れると綺麗に画面が撮れます。"]
[]
[null,null,null,"同様に、”CPUレジスタ/SFR表示”コマンドを使う場合は、SFRウィンドウやCPUレジスタウィンドウを"]
[null,null,null,"あらかじめ表示させておき、パラメータで見たいレジスタが見える状態にしておくと良いでしょう。"]
[]
[null,null,"上記2つのメッセージボックス両方とも”はい”を選択すると、自動運転がスタートします。"]
[]
[null,null,"自動運転はIronPythonコンソール ウィンドウへフォーカスをセットし、”Enter”および”Ctrl+V”のキーボード"]
[null,null,"入力をプログラムによって模擬することで行っています。このため実行中に入力フォーカスを切り替えた場合"]
[null,null,"他のウィンドウに対して”Ctrl+V”の入力が行われてしまい、予期せぬ動作を引き起こす恐れがあります。"]
[]
[null,null,"このため少なくとも、Excel上に表示されるダイアログボックスで、残り時間が”（実行準備中）”と表示されて"]
[null,null,"いる区間は、キーボードやマウスの操作は行わないようにしてください。可能であればデュアルディスプレイ"]
[null,null,"環境をつくり、1つのディスプレイでExcelを、もう片方でCS+をそれぞれフルサイズ表示できれば理想的です。"]
[]
[null,null,"⇒version 1.07で、”スクリプト実行に失敗した時点で中断する”チェックボックスがOFFの場合に限り、上記"]
[null,null,"フォーカス設定と入力模擬を最初の1回のみ行うよう改良しました。チェックOFFのときは最初の自動入力が"]
[null,null,"行われた後は、ExcelとCS+を除いた他のアプリケーションを利用できます。ただしスクリーンショット取得の"]
[null,null,"ときにCS+のウィンドウが隠れてしまわないよう注意してください。"]
[]
[]
[null,null,"自動運転中に中断したい場合は、次の操作の両方を行ってください。"]
[]
[null,null,"(A)Excel側：”キャンセル”ボタンをクリックすると、自動運転を中断します。"]
[null,null,"(B)CS+側：”Ctrl+D”キーの入力で、IronPythonスクリプトの実行を中断します。"]
[]
[null,null,"何らかの理由でExcelとCS+の同期がズレてしまった場合も、上記の操作で中断させてください。"]
[]
[null,null,"タイムアウト時間を経過してもスクリプトの実行終了が検出できなかった場合は、プログラムにより自動で"]
[null,null,"運転を中断します。CS+側で原因を調べた後、再度トライしてください。"]
[]
[null,"(6)結果判定"]
[]
[null,null,"スクリプト一括実行が全項目終了すると、”テスト自動実行結果”欄に、実行状況が表示されます。"]
[]
[null,null,"ただし、これは過去の状況を含んでいることに注意してください。すなわち”自動実行フラグ”を空白以外"]
[null,null,"として今回実行させないようにしたテストケースについて、過去の情報が引き継がれ集計されます。"]
[]
[null,null,"⇒過去バージョンと現在バージョンでテストターゲットバイナリの内容が異なる場合は、上記より正しい"]
[null,null,null,"情報を得ることができません。この点はユーザの判断に任されていますので、十分注意してください。"]
[]
[null,"(7)一覧表の活用"]
[]
[null,null,"(3)で収集した一覧表と、(5)で実施した結果から、以下に示す使い方ができます。"]
[]
[null,null,"・”ジェネレータExcelファイル”をクリックすると、Excelファイルを開きます。"]
[]
[null,null,"・”検索ベースフォルダからの相対フォルダ”をダブルクリックすると、エクスプローラでフォルダを開きます。"]
[]
[null,null,"・”スクリプトファイル”をクリックすると、スクリプトファイルを開きます。（予め関連付けが必要です）"]
[]
[null,null,"・”最終ログファイル”をクリックすると、最後に(5)で実行したログファイルを開きます。"]
[]
[null,null,"・”判定結果”がNGのテスト項目は、黄色地のセルとして表示されます。"]
[]
[null,null,"・”実施有無”が－のテスト項目は、灰色地のセルとして表示されます。"]

{"sheet":"改版履歴(ツール)","index":4,"n_rows":15,"n_cols":5,"rows_kept":15,"cut":false,"hidden":false,"merged":[[0,1,0,4]]}
[null,"改版履歴（ツール）"]
[null,"バージョン","日付","内容","作成者"]
[null,"version 1.03","2016-01-02","新規作成(IronPythonScriptGeneratorとあわせるため、version 1.03からスタート)","Yasushi Tanaka"]
[null,"version 1.04","2016-02-02","Excel 2003で動作しない問題を修正","Yasushi Tanaka"]
[null,null,"2016-02-02","取扱説明書に、PythonコンソールでCould not referenceエラーが表示された場合の対策を記載","Yasushi Tanaka"]
[null,null,"2016-02-27","テストケース一括作成する場合に、ハイフン、カッコ、句読点などの区切り文字が含まれたテストケースファイル名称を指定するとエラーになる問題を修正","Yasushi Tanaka"]
[null,"version 1.05","2016-04-11","IronPythonScriptGenerator.xlsとバージョン番号を同期させるため、version 1.05へバージョンアップ","Yasushi Tanaka"]
[null,"version 1.06","2016-05-01","スクリプト実行終了を正常に判断できず、実行途中のログファイルを読み出して結果NGとなる問題を修正(Thanks to Y.Takamatsu)","Yasushi Tanaka"]
[null,null,"2016-05-01","”テストケース再収集”で許可するGeneratorのバージョンが、Executorのバージョンと常に同一となる（異なる場合はエラーとなる）よう改良","Yasushi Tanaka"]
[null,null,"2016-05-09","Sourceコマンドをクリップボードにコピーする際、環境によって正常に動作しない不具合を修正した","Yasushi Tanaka"]
[null,null,"2016-05-09","IronPythonScriptGenerator version1.06の新機能にあわせ、スクリプト一括作成時にソースファイル検索パスを上書きする機能を追加した","Yasushi Tanaka"]
[null,"version 1.07","2016-08-21","”スクリプト実行に失敗した時点で中断する”チェックボックスがOFFの場合、各スクリプトを一括して実行するためのテンポラリファイルを作成し、CS+へこのテンポラリファイルの実行操作を行うようにした(Thanks to Y.Takamatsu)","Yasushi Tanaka"]
[null,null,"2016-08-27","以下の3つの項目を、”折り返して全体を表示する”に変更した\n・ジェネレータExcelファイル\n・検索ベースフォルダからの相対フォルダ\n・スクリプトファイル","Yasushi Tanaka"]
[null,"version 1.08","2016-09-03","CS+とRenesas Flash Programmerの両方を起動していると、スクリプト一括実行で”CS+のPythonコンソール ウィンドウが見つかりません”メッセージが表示される不具合を修正した","Yasushi Tanaka"]
[null,null,"2016-10-24","Excel 2007形式(拡張子xlsm)へ変更した","Yasushi Tanaka"]