デスクワークを超絶快適にするおすすめギアたち

【初心者向け】PADでExcel操作。DataTable型変数から値を取り出す方法!

【当サイトはプロモーションを含んでいます】

じょじお

前回の記事でExcelの表領域の複数セルを一括で読み込む方法について学習しました。

ぽこがみさま

この記事では読み込んだデータをループ処理で1行ずつ取り出す方法について学習します。

この記事でわかること!

  • Power Automate for desktopで読み込んだExcel表から値を取り出す方法がわかります。
    • 値を一個取り出す方法
    • 行単位で取り出す方法
    • 列単位で取り出す方法
目次

前回のおさらい

Excelワークシートから読み取り」アクションによって、表データを一括で読み込むことができました。読み込んだデータはDataTable型変数に格納されました。

「Excelワークシートから読み取り」アクションは複数セルを読み込んだ場合、Datatable型の変数に格納されます。

DataTable型変数とは?

Power Automate for desktop Excel
DataTable型変数の例

DataTable型変数はExcelの表と同じくで構成される特殊なデータ型の変数です。プログミングがわかる方は2次元配列というとご理解いただけるかと思います。

Datatable型変数のプロパティ

Datatable型変数はいくつかのプロパティを持っています。

プロパティ役割
Columns列名(列見出し・ヘッダー)を列挙します。
Columns.count列数を表示します。
RowsCount行数を表示します。
IsEmptyDatatableの中が空っぽだったらTrue
Datatableの中にデータが格納されていたらFalseを返します。
DataTable型変数のプロパティ一覧

Datatable型変数のプロパティにアクセスする方法

Power Automate for desktop Excel

▲変数を選択できる場所でDatatable型変数をクリックすると、使用できるプロパティが表示されるので選択することで使用することができます。あるいはDatatable型にドットを付けてプロパティ名を直接入力することでアクセスできます。例えばExcelDataというDatatable型変数のColumnsプロパティにアクセスするには%ExcelData.Columns%と入力します。

Power Automate for desktop Excel

%ExcelData.Columns%を使って列の一覧を取得した例。(Columnsプロパティ)

プロパティにアクセスするには「Datatable.プロパティ」のように変数にドットを付けてアクセスする。

Datatable型変数から値を取り出す方法

じょじお

ここからはDatatable型変数から値を取り出す方法について学習していきます。

Datatable型変数から値を取り出すには[](角カッコ)を使って行番号列番号を指定してアクセスします。具体的な方法については実際にいくつかのパターンを想定して取り出しながら解説していきたいと思います。

使用するテスト用ダミーデータ

列1社員番号名前性別生年月日電話番号携帯番号メール郵便番号住所
100001田中 戴三1989/3/903-3388-3419070-6029-5912 taizou89@example.com  132-0023東京都江戸川区西一之江4-8-1-8F
200002松野 勝司1977/7/2 090-0866-3992 ntm6048341@goo.ne.jp  604-8341京都府京都市中京区岩上町4-1-3
300003小倉 幸四郎1994/3/2018-536-4457070-5908-3506 k-ogura@goo.ne.jp018-1617秋田県南秋田郡八郎潟町イカリ8-11-6
400004宮下 秋徳1987/6/13078-408-7352 akinorimiyasita@goo.ne.jp  674-0082兵庫県明石市魚住町中尾8-6-6
ダミーデータ

▲前回と同様の上のダミーデータを使って検証していきます。このままExcelに張り付けると表組みを維持したまま張り付けることができます。テスト用にお使いください。

使用するフロー

前回の記事で作成したフローに「メッセージを表示」アクションを追加して取得ができているかを検証していきます。

Robinソースコード

Excel.LaunchExcel.LaunchAndOpen Path: $'''C:\\Users\\user\\Desktop\\アドレスリスト.xlsx''' Visible: False ReadOnly: True LoadAddInsAndMacros: False Instance=> ExcelInstance
Excel.SetActiveWorksheet.ActivateWorksheetByIndex Instance: ExcelInstance Index: 1
Excel.GetFirstFreeRowOnColumn Instance: ExcelInstance Column: $'''B''' FirstFreeRowOnColumn=> FirstFreeRowOnColumn
Excel.ReadFromExcel.ReadCells Instance: ExcelInstance StartColumn: 1 StartRow: 1 EndColumn: $'''J''' EndRow: FirstFreeRowOnColumn - 1 ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
Excel.CloseExcel.Close Instance: ExcelInstance

Datatableから1個だけ取り出す方法

データを1個だけ取り出すには、Datatable[行番号][列番号]かDatatable[行番号][列ラベル]と記述します。

Datatableから1個の値を取り出す

Datatable[行番号][列番号]

Datatable[行番号][‘列ラベル’]

Power Automate for desktop Excel

例えば上の図のDatatable場合、

  • 1行目の田中さんの名前を取り出すには、
    • %ExcelData[0][3]%あるいは%ExcelData[0][‘名前’]%と記述します。
  • 4行目の宮下秋徳さんのメールアドレスを取り出すには、
    • %ExcelData[3][8]%あるいは%ExcelData[3][‘メール’]%と記述します。

行番号、列番号は「0」から数えます!(4行目の行番号は3です。)

Power Automate for desktop Excel

▲メッセージを表示アクションに%ExcelData[0][‘名前’]%を記入してみます。

Power Automate for desktop Excel

▲名前が取り出せました。

Datatableから行を取り出す方法

データを1行取り出すには、Datatable[行番号]と記述します。

Datatable[行番号]

Power Automate for desktop Excel

例えば上の図のDatatable場合、

  • 1行目の田中さんのデータを取り出すには、
    • %ExcelData[0]%と記述します。
  • 4行目の宮下秋徳さんのデータを取り出すには、
    • %ExcelData[3]%と記述します。

行番号、列番号は「0」から数えます!

Power Automate for desktop Excel

▲メッセージを表示アクションに%ExcelData[0]%と記入してフローを実行してみます。

Power Automate for desktop Excel

▲行データが取り出せました。

1, 00001, 田中 戴三, 男, 1989/03/09 0:00:00, 03-3388-3419, 070-6029-5912 , taizou89@example.com  , 132-0023, 東京都江戸川区西一之江4-8-1-8F

▲行データは上記のように列がカンマで区切られた状態で取得できます

Datatableから列を取り出す方法

列を取り出すには「変数」グループの中の「データテーブル列をリストに取得」アクションを使う方法があります。

Power Automate for desktop Excel
Power Automate for desktop Excel

▲パラメータを下記のように入力します。

  • データテーブル:%ExcelData%
  • 列名またはインデックス:列名か列番号を指定します。今回は「メール」と列名を指定しました。
Power Automate for desktop Excel

▲「データテーブル列をリストに取得」アクションはColumnAsListというリスト型に変数に値を入れて返却してくれます。

Power Automate for desktop Excel

▲リスト型の変数から値を1個取り出すには[](角カッコ)にインデックスを渡します。試しに%ColumnAsList[0]%を1個取り出してみます。

Power Automate for desktop Excel

▲メールアドレスを1個取り出すことができました。

Datatableから1行ずつループ処理で取り出す方法

1行ずつ取り出す方法は別記事で解説します。

まとめ

じょじお

以上、この記事ではPower Automate for desktopのDataTable型変数の取り扱い方について学習しました。

ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。

Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

お役に立てたらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次