FullM
(・◎・)
1
お世話になっております。
範囲を読み込みでデータテーブルを作り、フィルタリングしたものをメッセージボックスで表示しようとしていました。
しかしデバッグを行うとメッセージボックスの処理をスキップしてしまっているのか、内容が表示されません。
エラーも出ないのでどういうことなのか悩んでいます。
よろしければご教授お願い致します。
こちらの画像のメッセージボックスの処理が長引いているようです。
今回使用しているExcelの行データは多い(4000ほど)ので、時間がかかるのはわかるのですが、デバッグでタイムアウトの表示が出るわけでもなくスルーされてしまいます。
調べても原因がわかりませんでした。
こういったデータテーブルの文字列が多すぎる時はメッセージボックスは使わないほうが良いのでしょうか?
HANACCHI
(はなっち!UiPath Japan MVP 2019-2022)
2
メッセージボックスで、データテーブルの中身をちょっと見てみたい!というのでしたら、ログに出力するとか、DataTable名.Rows(行位置).Item(列位置).ToStringで、コンパクトに出力しますね。
か、いっそCSV,EXCELに出力してから内容を確認し、確認が済んだらコメントアウトしてしまう。。。
因みに、「データテーブルを構築」アクティビティをドラッグ&ドロップした状態のDataTableを「データテーブルを出力」アクティビティで出力し、その文字列を100回繰り返したものを「メッセージボックス」にて表示させると、以下のようになります。
※ボタンが見えません!
HANACCHI
(はなっち!UiPath Japan MVP 2019-2022)
3
その文字列を100回繰り返したものを、10000回にして文字列の長さを増やしてやってみたところ、メッセージボックスは表示されずに、異常終了もせずに終了しました!
やはり、DataTableを文字列にし、そのままメッセージボックスに!ってのは難しいですね。
DT文字.Substring(0, DT文字.IndexOf(controlchars.Lf)-1)
こうすると、最初に現れる改行記号までの文字列を表示してくれます
FullM
(・◎・)
4
ご回答ありがとうございます。
メッセージボックスは文字列が長すぎると何も表示されないまま終了してしまうのですね……これまでデバッグにメッセージボックスを多用していたので衝撃でした。
まだデータテーブルを使い始めたばかりで、自分の思った通りのフィルタリングができているかを確認したかったのですが、メッセージボックスは不向きなようですね。
色々方法を提示してくださりありがとうございます。
見比べてみたいので一度Excelに出力してみます。
1 Like