\ ポイント最大11倍! /

Excelを読み込んだ時に生成されるDatatableを加工する方法!

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

じょじお

この記事ではExcelを読み込んだ時に生成されるDatatableを加工する方法について学習します。

目次

Datatableを加工する方法

STEP
ゴールを確認します。
C:\Users\user\Desktop\電話番号.xlsx

▲上図のようなExcelファイルがあります。Power Automate for desktopを使って表データをすべて読み込みたいのですが、電話番号列のデータからハイフンを除去する必要があります。読み込んだあとにPower Automate for desktopでハイフンを除去したいと思います。

STEP
Power Automate for desktopを起動して新規フローを作成します。
STEP
「Excelの起動」アクションを追加します。

▲「Excel」グループの中の「Excelの起動」アクションのパラメータを入力します。

  • Excelの起動:「次のドキュメントを開く」を選択します。
  • ドキュメントパス:Excelのファイルパスを入力します。C:\Users\user\Desktop\電話番号.xlsx
  • インスタンスを表示する:Excelを開くときにバックグラウンドで表示しないようするか、表示するかを選択します。チェックをオフにするとExcelが画面上に表示されません。
  • 読み取り専用として開く:書き込みを行わない場合は、読み取り専用のチェックをオンにします。図ではオフになっていますが多くの場合安全のために読み取り専用でよいかなと思います。
STEP
「アクティブなExcelワークシートの設定」アクションを追加します。
アクティブなExcelワークシートの設定

▲アクショングループの中の「Excel」の中の「アクティブなExcelワークシートの設定」アクションを追加します。

  • Excelインスタンス:起動したExcelインスタンスを指定します。今回は「Excelの起動」アクションによってExcelを開きましたので「Excelの起動」アクションのフロー変数である「%ExcelInstance%」を指定します。
  • 次とともにワークシートをアクティブ化:ワークシートをどのように指定するかを「名前」か「インデックス」のいずれかから選択します。今回は「シートの名前がわからずExcelの中の一番左側のシートを選択する」という想定のもと「インデックス」を選択します。
  • ワークシートインデックス:シートのインデックス番号を指定します。インデックス番号の数え方はブックのシートは左から数えます。今回は一番左端のシートを指定したいので「1」と入力します。

「アクティブなExcelワークシートの設定」アクションを使わない場合、前回閉じた時にアクティブだったシートがアクティブになります。シートが1枚しかないExcelファイルの場合は必ずシート1がアクティブになりますのでこのアクションは不要ではあるのですが、万が一シートが増えた場合を想定してこのアクションを使っておくと安心です。

STEP
「Excelワークシートから読み取り」アクションを追加します。
Excelワークシートから読み取り

▲アクショングループの中の「Excel」の中の「Excelワークシートから読み取り」アクションを追加します。

  • Excelインスタンス:起動したExcelインスタンスを指定します。今回は「Excelの起動」アクションによってExcelを開きましたので「Excelの起動」アクションのフロー変数である「%ExcelInstance%」を指定します。
  • 取得ワークシートに含まれる使用可能なすべての値
STEP
「Excelを閉じる」アクションを追加します。
Excelを閉じる

▲アクショングループの中の「Excel」の中の「Excelを閉じる」アクションを追加します。

  • Excelインスタンス:起動したExcelインスタンスを指定します。今回は「Excelの起動」アクションによってExcelを開きましたので「Excelの起動」アクションのフロー変数である「%ExcelInstance%」を指定します。
  • Excelを閉じる前:ドキュメントを保存しない
STEP
「変数の設定」アクションを追加します。

▲「変数」グループの中の「変数の設定」アクションを追加します。

  • 宛先:0

これは行番号用に使います。

STEP
「For each」アクションを追加します。
For each

▲「ループ」グループの中の「For each」を使います。

  • 反復処理を行う値:%ExcelData%
  • 保存先:%CurrentItem%
STEP
(ループの中の処理)「テキストを置換する」アクションを追加します。
  • 解析するテキスト:%CurrentItem[‘電話番号’]%
  • 検索するテキスト:-
  • 検索と置換に正規表現を使う:オフ
じょじお

電話番号のハイフンを空文字(何もない文字列)と置換します。結果的にハイフンが削除されます。

STEP
(ループの中の処理)「変数の設定」アクションを追加します。

▲パラメータを入力します。

  • 設定:%ExcelData[NewVar][‘電話番号’]%
  • 宛先:%Replaced%

「設定」を%ExcelData[NewVar][‘電話番号’]%とすることで電話番号列に、%Replaced%(ハイフン置換後の電話番号)を差し替えていきます。

STEP
(ループの中の処理)「変数の設定」アクションを追加します。
  • 設定:%NewVar%
  • 宛先:%1+NewVar%

ループの度にNewVarの数字を1プラスします。これによって次の行次の行というように行を進めていくことができます。

STEP
フローが完成しました。
STEP
フローを実行します。

▲フロー実行してExcelData変数を確認すると、電話番号からハイフンを削除することができています。

Excelに書き込む方法については後述します。

Robinソースコード

Excel.LaunchExcel.LaunchAndOpen Path: $'''C:\\Users\\user\\Desktop\\電話番号.xlsx''' Visible: True ReadOnly: False LoadAddInsAndMacros: False Instance=> ExcelInstance
Excel.SetActiveWorksheet.ActivateWorksheetByIndex Instance: ExcelInstance Index: 1
Excel.ReadFromExcel.ReadAllCells Instance: ExcelInstance ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
Excel.CloseExcel.Close Instance: ExcelInstance
SET NewVar TO 0
LOOP FOREACH CurrentItem IN ExcelData
    Text.Replace Text: CurrentItem['電話番号'] TextToFind: $'''-''' IsRegEx: False IgnoreCase: False ReplaceWith: $'''%''%''' ActivateEscapeSequences: False Result=> Replaced
    SET ExcelData[NewVar]['電話番号'] TO Replaced
    SET NewVar TO 1 + NewVar
END

▲Robinソースコードです。フローデザイナーに張り付けることでここで作成したフローをご自分のPCで再現することができます。

Datatableを書き込みには?

じょじお

加工したDatatableを書き込む方法は下記の記事を参考になさってください。

▲Excelの転記方法・ループの中で1セルずつ書きこむ基本的な書きこみ方法です。

▲Excelの転記方法・Datatableを書きこむことで1アクションで複数セル同時に書き込む方法です。1セルずつ書きこむよりも高速に処理できます。(Datatableを新規作成する方法)

Excelへ書き込むとき、ループ処理の中で何度も「Excelへ書き込み」アクションを実行して1セルずつ書きこむと(セル数にもよりますが)処理時間がかかります。Datatableにして複数セル同時に書き込めばワンアクションで書き込みが完了して処理時間を短縮できるケースがあります。

まとめ

じょじお

この記事ではDatatableを加工する方法について学習しました。

ぽこがみさま

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

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ
¥2,200 (2024/12/15 19:03時点 | Amazon調べ)

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

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

¥2,550 (2024/12/19 07:45時点 | Amazon調べ)

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

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

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

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

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