目次
1. 変数
-
変数の基本的な使い方を教えてもらえますか?
HeartCoreRobo Desktopでの変数定義は
「Var」「Varf」「Eval」の3種類で定義することができます。
Var :文字型変数の定義
Varf:特殊文字を用いる文字型変数の定義
Eval:数値型変数の定義
定義した変数を参照する際には
"{定義済みの変数名}"で参照することができます。
-
変数の中身を確認したいのですが?
定義した変数の中身を確認したい場合、以下の方法があります。
1. Logコマンドを用いて実行ログに変数値を出力する方法
2. ツールパネルの変数タブの「実行変数」で確認する方
-
システム変数はどのようなものがありますか?
よく使用するシステム変数の一覧はURLを参照してください。
-
変数のスコープには、どのようなものがありますか?
HeartCore Robo Desktopではグローバル変数とローカル変数の二種類の変数が存在します。
グローバル変数はコマンドによって明示的に宣言は行いませんが、変数を宣言する位置によってグローバル変数かローカル変数かが決まります。
グローバル変数:プロシージャやifやforなどのブロック外で変数を宣言することで、スクリプト全体で使える変数
ローカル変数:プロシージャやifやforなどのブロック内で変数を定義することで、そのブロック内のスコープのみで使用可能な変数---HeartCore Roboではグローバル変数とローカル変数の二種類の変数が存在します。グローバル変数はコマンドによって明示的に宣言は行いませんが、変数を宣言する位置によってグローバル変数かローカル変数かが決まります。
グローバル変数:プロシージャやifやforなどのブロック外で変数を宣言することで、スクリプト全体で使える変数ローカル変数:プロシージャやifやforなどのブロック内で変数を定義することで、そのブロック内のスコープのみで使用可能な変数
※v6.3.5以降からVargコマンドを利用して明示的に変数のスコープを設定できるようになりました。詳細はヘルプをご確認ください。 -
エラーハンドリングを行いたいのですが?
直前のコマンドが正常に終了したかどうかを{_EXIT_CODE}で取得することができます。
直前のコマンドが成功していた場合
{_EXIT_CODE} == 0
直前のコマンドが失敗していた場合
{_EXIT_CODE} != 0
の条件式を書くことでエラーハンドリングが行えます。 -
変数が定義されていない場合のエラーハンドリングを行いたいのですが?
if の条件式で 「exisits」を用いることで変数が定義されているかどうかの判定が行えます。
<補足>
HeartCoreRoboで変数値を扱う場合には{変数名}としますが、exisitsは変数値を扱うコマンドではなく変数自体の存在を調べる演算子です。
そのため{ }は不要となります。
使用例(指定したエクセルのセルの中身が空だったらば、等) -
改行等(特殊文字)を変数内で定義したい場合、どうしたらいいですか?
Varf コマンドを用いることで特殊文字を利用することができます。
2. コマンド
-
複数のエクセルファイルを使って処理を行いたい場合、どうすればいいですか?
二つ以上のエクセルファイルを使って処理を行いたい場合処理を行いたいエクセルファイルそれぞれに(識別子)idを付けて処理を行います。
-
エクセル内の関数(SUM等)で計算した結果の値を取得したい場合、どうしたらいいですか?
Excel select で値を取得する際に 「evaluate=true」のオプションを付けることで計算式ではなく、
関数の処理した結果を取得することが可能です。
-
画像認識でComparetoコマンド後のクリックする場所を細かく指定したいのですが?
Comparetoコマンドやclick imageコマンドで使用している画像の設定で変更が可能です。例としての方法は以下になります。
1. 各コマンドのプロパティを開き
2. クリックする場所を変更したい画像を選択
3. 写真のアイコンを選択
4. 赤い十字の場所を変更することでロボット実行時のクリックする場所を右クリックで変更することができます。
-
画像認識で秒数指定で処理終了を待つ方法以外の方法が知りたいのですが?
「指定した画像が表示されるのを待つ」または「指定した画像が消えるのを待つ」
などの設定がComparetoコマンドと同じ要領で使えるWaitforコマンドをお試しください。 -
指定したディレクトリ内にあるファイルの一覧を取得したい場合、どうしたらいいですか?
Execコマンドを用いてコマンドプロンプト(ターミナル)コマンドを使用することで、簡単にファイル一覧を取得することができます。
例 Windows)Exec "cmd.exe /C dir <一覧を取得したいパス> /b"
以上のコマンドを使うことでファイルの一覧が取得できます。 -
処理を途中で終了させたいのですが、どうしたらいいですか?
スクリプトの途中で処理を終了させたい場合「Exit」コマンドを用いることで処理を途中で終了させることが可能です。
ロボットの動作中に動作を終了させる場合はマウスなどを動かして動作を一時中断した後に開発画面の停止ボタンで動作を終了させます。また、バッチファイルで実行している場合はコマンドプロンプト画面を表示する設定にしている場合に限り、WindowsであればCtrl+Cなどで動作を中断することが可能です。 -
処理を別のtprファイルに書き、呼び出したい場合、どうしたらいいですか?
Include コマンドでtprファイルを指定することで 別のtprファイルを呼び出すことができます。<br>詳細はヘルプを参照ください。また、処理を呼び出すためにはprocedure構文をセットで利用します。 -
時間の設定方法を知りたい場合、どうしたらいいですか?
waitコマンドなどに用いられる時間の記述方法は以下になります。
wait 1 :ミリ秒
wait 1s :秒
wait 1m:分
wait 1h:時
wait 1d:日 -
日付の操作を行いたい場合、どうしたらいいですか?
HCRの標準コマンドでは日付の加算をすることはできませんが、別途プラグインをHCRに追加することで日付の加算を簡単に取得することができるようになります。
プラグインの追加方法及びプラグインの導入後日付の加算手法は以下の通りです。
●プラグインの追加方法
①プラグインを以下のURLからダウンロードする。
http://www.t-plan.ltd.uk/releases/robot/plugins/utils_v0.5.zip
②保存されたら、utils_v0.5.zipを解凍する。
③解凍してできるフォルダ内のutils.jarをHCRのインストールフォルダ内pluginsフォルダ配下にコピーする。
(例:C:¥Program Files (x86)¥HeartCore¥Robo¥plugins)
④HCRを起動している場合は再起動する。(プラグインの導入完了)
●翌日の日付を取得するコード(プラグインの導入後)
Run "com.tplan.utils.GetDate" add="1d" var="day"
※このコードではday変数に翌日日付が格納されます。
※同様に、add="1M"とすれば1ヶ月後の日付を取得するといったこともできます。 -
includeコマンドを使うと report コマンド または Includeコマンド でエラーになるのですが、なぜですか?
Report コマンドは「一度のロボット実行内で同一のファイル名を作成してしまう」とコンパイルの際にエラー表記されます。
Include を行ったスクリプトで同一のファイル名の report コマンドが使われている可能性がありますので確認してください。
特に初期設定で新規tprファイルを作成した際にはあらかじめ「Report result.xml」が入力されているので重複してしまうケースがよくあります。
3. 設定
-
HeartCore Robo Desktopが開発時に認識しているデスクトップの解像度を確認することはできますか?
タイトルバーにてご確認いただけます。また変数タブの「_DESKTOP_HEIGHT」「_DESKTOP_WIDTH」などでも縦横の解像度(ディスプレイを2画面にしている場合はその合計)をご確認したりスクリプトへの設定等ができます。
-
HeartCore Robo Desktopの開発中にデスクトップの解像度を変更すると何か影響はありますか?
解像度を変更する前に取得した画像を使ったイメージマッチングで期待した動作が得られません。
HeartCore Roboは起動時のデスクトップ解像度を保持しているため、開発途中でデスクトップの解像度を変更する場合には必ずHeartCore Roboを再起動する必要があります。 -
マウスを動かしてもロボットが止まらないようにしたい場合、どうしたらいいですか?
ツールバーの編集 > プリファレンス設定
スクリプト内のローカルマシン内の「マウス動作によるスクリプト一時停止を有効にする」のチェックボックスを外しますとマウスが動かされたとしてもロボットが停止することはありません。ただし、この設定を行うと強制停止が行えなくなることもございますので設定にはご注意ください。
4. その他
-
ComparetoコマンドやWaitforコマンドなどに使う画像ファイルを新規で作成したい場合、どうしたらいいですか?
1. ツールパネルのプロジェクトのコンポーネントイメージを右クリックして「新規イメージ」を選択
2.使用したい画像の範囲を選択
3.保存場所とファイル名を選択
以上の手順で
ComparetoコマンドやWaitforコマンドで用いる画像が作成できます。
※Compareto やClick image等の画像を使用するコマンドプロパティ内で+を押して画像ファイルの追加ウィンドウを表示し新しいファイル名を入力しても画像ファイルを作成することができます。 -
ブレイクポイントを設定したい場合、どうしたらいいですか?
設定したい行の数字(行数)をクリックし赤い丸をつけることでブレイクポイントを設定できます。
または右クリック > ブレイクポイントを追加
でも同様にブレイクポイントを設定することができます。
ステップ実行(一度に1コマンドずつ実行する)も合わせて利用するとデバッグが容易になると思うので是非ご利用ください -
プロシージャに対して値を渡して処理できないか?
可能です。方法は以下になります。
プロシージャを呼び出す際に、スペース区切りで任意の値を渡すことができます。
例)
<プロシージャ名> <引数1> <引数2> …
プロシージャ内で引数は変数として利用可能で 変数名 1 2 3 … N に格納されます。
※{0}にはプロシージャ名が定義されます。
例)
procedure <プロシージャ名> {
var 引数1={1}
var 引数2={2}
}
-
実行ライセンスでロボットを起動したい場合、どうしたらいいですか?
-
ロボット実行後に作成されるlogファイルが文字化けしている場合、どうしたらいいですか?
ご利用端末のOSがWindowsでHeartCoreRoboのバージョンが4.4.1 の場合文字化けしてしまいます。
こちらはバージョン4.4.3以降対応済みです。