前回の記事ですべての問題が解決できたと思ったのですが、なぜか企業Aの集計だけが上手くいっていなかったので、その確認と修正をしていきます!
デバッグで原因を特定
『Excel間の集計・転記⑥ ~デバッグで問題点を見つける~』の記事でもやったように、今回もデバッグで、ブレークポイントやシングルステップ・デバッグの状態を確認する機能などを駆使して、計算ミスの原因を考えてみます!
今回は、企業Aのときだけを確認して問題が分かれば大丈夫なので、下のキャプチャのように「取引先_確認用」を抽出するステップにブレークポイントをおいてデバッグを進めてみます。
デバッグを実行させてブレークポイントまで進めてから、そこからはシングルステップで1つずつ進めていきます。
そこで発見しました!
下のキャプチャは、ループのイテレーション5のとき、企業Aとして2回目の集計の状況です。
今、青枠の中のエンドステップにいる状況なので、直前のステップは「○」を入力するステップなのですが、「○」がついているはずの赤枠の箇所に「○」が入っていません!
「○」をつけるステップの修正
上で突き止めたことから、「○」をつけるステップが上手く機能していないということが分かりましたので、このステップがどうなっているのかを確認します。
デバッグの画面上でも、ステップを右クリック→「ステップの設定を表示」を選択することで、デバッグモードでもステップの設定を確認できます。
確認をしてみると、ファインダーに問題がありました!
上のキャプチャで赤枠で囲いましたが、範囲のところが「Sheet1!E2」になっています!
ということで、「○」は常にE2のセルにしか入力しない状態です(笑)
早速、デザインモードに戻って修正です!
下のキャプチャのように、抽出用のループを基準にして、右に4つずれたセルを指定するように設定しました。
これで大丈夫なはずです!
ということでデバッグしたところ、下のキャプチャのようにまた失敗でした!
正直、完成するつもりだったので、かなりショックです・・・
再びデバッグして確認!
改めてデバッグをして、改めて問題を発見しました!
ちょっと複雑なのですが、できる限り分かりやすくまとめてみます!
下のキャプチャですが、「取引先_確認用」のループでイテレーション3に入るところです。
このときの状況ですが、イテレーション2のときに、すでに企業Cの集計が終わっているので、こちらのキャプチャのように実績集計Excelには企業Cの集計が記載されています。
そしてイテレーション3が始まるのですが、企業Cの集計が終わっているため下のキャプチャのように、すでに企業Cの行には「○」がついています。
そのため、イテレーション3のときには、企業Cの集計はまったく進まないため、取引回数は0回・合計金額は0円の状態なのですが、そのまま書き込みをしてしまいますので、イテレーション4になるときには企業Cには「取引回数0回・合計金額:0円」という情報が上書きされてしまいます。
この現象が積み重なった結果、上のような失敗したExcelデータが出来てしまいました(笑)
この問題への対処
ということで、今回の問題の原因は「すでに集計が終わっているのに書き込もうとしてしまう」ことです。
なので、「集計が終わっている行は書き込みまで進まない」という構成にすることで、問題が解決できるはずです!
下のキャプチャのように、入力チェックの「○」を抽出するステップと確認をするための値判定の2つのステップを、左側の赤枠に移動することで、集計が終わっている行は書き込みまで進まないように出来ます。
このように「取引先_確認用」を抽出するステップの後に、こちらの2つのステップを移動したらOKです!
さぁ、今度こそ大丈夫だと思いますので改めてデバッグをして、Excelを確認します!
正しいデータが入力されていました!
ようやく完成です!!!
今回、このように色々と回り道をしてしまいましたが、そのなかでデバッグの仕方やロボットの構成などをお伝えできていたら嬉しいです!
次回予告
次回からはDAのシリーズを始めていきます!
お楽しみに!!