テキストボックスに入力するアクションで 1 行目に戻ってしまうときは
税務ソフト等で Excel データを RPA 入力するノウハウとして一般的なのが、レコーダー機能で 1 行だけ自分で手入力してみて、その後、手入力した値のところだけを、 Excel の変数に置き換えるという方法があります。
しかし、それでうまくいく場合と、いかない場合とがあります。
TPS2000 の「所得の内訳」の入力で、この方法で For Each ループさせたときに、毎回 1 行目に戻って入力してしまう失敗が起きます。
レコーダー機能で記録されるアクションだと、 TssEdit テキストボックスが指定されるので、そのボックスのある 1 行目に戻ってしまうのでしょう。
何度やってもうまくいかないときは、その理論を捨てて、別の理論で考えてみましょう。
「キーの送信」アクションのみを使うことで解決
「所得の内訳」の最後の値「月」を入力して、 {Return} のキーストロークを送信すると、次の行に行きますよね。
なら、次の行を入力してくれそうなものですが……。
{Return} さえ送れば次のテキストボックスを自動的に掴んでくれているのですから、改めて Power Automate でボックスを指定する必要はないのではないか。
そのように考えると、もう、 Enter キーを押した時点でカーソルはボックスにいるのだから、あとやるべきことは、テキストを入力するだけだと気づきます。
じゃあ、全部「キーの送信」で必要なデータを自動入力してしまえばいいのではないか。
そのように考えたのが、次のフローです。「キーの送信」で Excel データである CurrentItem [n] を送信してしまうのです。
%CurrentItem[0]%
こう入力すると、フローでは CurrentItem [0] と表示される
意味は、いまいる Excel の行の 1 列目の値を取り出す
これでうまくいきました。
16 行目、切れてますが Return をもう 1 回送ってくださいね。
8 行目で、 {Return} を 6 回送信していますが、自分で手入力すると、 5 回しか Enter を押していない気がします。でも、レコーダーだと 6 回記録され、 6 回でないとエラーを起こしますので、理屈はともあれ、フローが動くのであれば、その方法を採用しましょう。