こんにちは、システムズエンジニアリングセンターの湯田です。
今回は自身の体験をもとに、RPA 初心者にとって壁になった部分を解説していきたいと思います。
DataTable という言葉見て嫌な顔をしたそこのあなた、ぜひ最後まで読んでいってください笑

 

 RPA 主業務の1つに Excel データの処理があります。
よくあるケースとして、Excel ファイルにある大量のデータから特定の情報を抽出し、別の Excel ファイルに出力することが挙げられます。私はRPAツールUiPath を使用した業務自動化案件に携わっておりExcel ファイルの処理は基本的に、DataTable という型のデータを扱います。

 DataTabel についてですが、プログラミング経験者にとっては特に問題なく理解できるそうですが、私をはじめ未経験者は避けては通れない壁です笑 後ほど登場しますが、「For Each Row」の仕組みを理解するにはなかなかに苦戦しました笑

前置きはこの辺にしまして、本題に入りますね。

DataTableとは

 ざっくりいうと、表形式のデータです。Excel シートとほぼ同じと考えて大丈夫です。 違うと点としては、行の数え方が 1 からではなく、0 から始まるところです。プログラムの世界だとよくあることですね笑

DataTableとForEachRow

 簡単なサンプルを 1 つ。内容は先ほどの表の名前をメッセージボックスで出すものです。

※input_DataTable には先ほど例で挙げた表が入っています。
※rowは 今回用いる変数の名前です。
 実行結果としては、下記画像が左から順に出力されます。

 お恥ずかしい話ですが、RPA はじめたての私は「いきなり row が出てきたぞ!何をしているんだ?!」と思ってましたね笑

では、row で何をしているか見ていきます。

 row は上図のとおり、input_DataTable の表を 1 行ずつにしたものになります。ですので、ForEachRow では 1 行ごとに処理していることになります。少し細かい話をすると、表を1行ずつに分けた際、データの型が DataTable から DataRow へ変わります。なので、row は DataRow という型になっています。(表が1行だけになった場合は DataRow になる程度の認識で大丈夫です。)

 また、「row.item(“列名”)」で特定列の要素を取れます。なので、今回のコードで「row.item(“名前”)」で名前が取れるわけです!そして、メッセージボックスで名前が表示されます。
(ToString()についての説明は割愛します)

おわりに

 今回は DataTable について説明しました。冒頭でも言いましたが、私はこれらを理解するのに時間がかかりました……ただ、DataTable は必ず業務で使うので、押さえておかなければいけない部分です。
初心者の方が DataTable で悩んだ際に少しでも助けになる記事になっていれば幸いです。

今回のまとめ

DataTabel……表形式のデータである。
ForEachRow……表形式のデータを 1 行ごとに分けて処理する。

以上になります。最後まで読んでいただきありがとうございました。