Save 37% off PRO during our Black Friday Sale! »

「Excel中心ロボ」~インストール後、先に進めないあなたへ~

27b73d7672b2f75a58184c544df1e721?s=47 HANACCHI
August 31, 2021
300

 「Excel中心ロボ」~インストール後、先に進めないあなたへ~

20210831 RPA勉強会 UiPath Talk「Excel中心ロボ」~インストール後、先に進めないあなたへ~

27b73d7672b2f75a58184c544df1e721?s=128

HANACCHI

August 31, 2021
Tweet

Transcript

  1. ~インストール後、先に進めないあなたへ~ EXCEL中心のロボ

  2. はなっち!とは…  2019年10月 UiPath Japan MVP 2019 認定  2020年10月

    UiPath Japan MVP 2020 認定  2021年10月 UiPath Japan MVP 2021 認定されるか!?  2020年11月 定年退職  同 年 同 月 FUJITSU UT社と契約  お客様先でRPAサポート&開発  Twitter:hjmkzk  Qiita:@HANACCHI  FaceBook:hajime.kozaki
  3. Today’s EXCEL中心のロボ 1. Studio Basic 2. Excel Operation With Studio

    3. Let’s TRY Excel Operation With Studio 4. Next Stage Is DataTable Type
  4. EXCEL中心のロボ Studio Basic

  5. 必須入力 任意入力 参考情報 【スライド上の表記】 禁止情報 (版数)

  6. ① Windowsの[スタート]から、 ② メニューと辿って、 ③ [U(iPath)] > [UiPath Studio]を クリックします

    ① ③ ② Studio Starting!
  7. Studio 初期画面 過去作成した ロボット一覧 (PIN留め可能) 新規作成 (2021.6.0) 触らない

  8. Studio ヘルプ バージョン情 報など (2021.6.0) 素早くダブル クリックして みよう

  9. 命名規約に沿っ たロボット名 ロボットの機能 概要を記入 ロボットが格納 されるフォルダ 新しい空のプロセス (2021.6.0) ターゲットフレームワークとして クラシック(.NET

    Framework 461)を選択 注: プロジェクト名は 128 文字までで、 説明は 500 文字までです。 自動化ワークフローの開発言語に Visual Basic(VB)だけでなく C#もサポート!
  10. Studio 編集画面 デザイン/実行タブ プロジェ クト/ アクティ ビティ パネル デザインパネル プロパ

    ティパネ ル (2021.6.0)
  11. Studio デザイン/実行タブ(1/2) (2021.6.0) ボタン名 機能 備考 新規⇒ 分割したロボ機能を作成する場合に使用 シーケンス シーケンスタイプ

    後述 フローチャート フローチャートタイプ 後述 ステートマシン 使わない 複雑な制御が出来ます グローバルハンドラー 使わない エラーを集約出来ます 保存 編集したロボットを保存します 実行時にも保存される 名前を付けて保存 バックアップを作成する場合などに使用 すべて保存 編集中のファイルをすべて保存します 実行時にも保存される
  12. Studio デザイン/実行タブ(2/2) ボタン名 機能 備考 実行 作成したロボを実行します ファイルを実行 アクティブなxamlを起動します ファイルをデバッグ

    アクティブなxamlをデバッグ起動します (解説しません) 実行 メインに設定されているxamlを起動します デバッグ メインに設定されているxamlをデバッグ起 動します (解説しません) 導入⇒ パブリッシュ 管理サーバに登録します (2021.6.0)
  13. ロボットの部品.xamlファイルを右クリックすると… Main.xaml (追加した)シーケンス.xaml Main.xamlには「メインに設定」がない シーケンス.xamlには「メインに設定」がある 故に、Main.xamlには「メインに設定」がされている! (2021.6.0) シーケンス.xamlがアクティブでも、「実行」ボタンをク リックすると、Main.xamlが実行される! シーケンス.xamlがアクティブで、「ファイルを実行」ボ

    タンをクリックすると、シーケンス.xamlが実行される! 追加 > 「メインに設定」されている.xamlファイ ルは、Explorerから容易に削除できてしま います。 削除した状態で、PUBLISHし、実行しよ うとすると、 「メインに設定」されてい る.xamlがない!エラーで異常終了します
  14. Studio プロジェクト/アクティビティ/スニペットタブ ロボット 内部の情報 ロボット が使える部品 ひな型ロボ部品 (2021.6.0)

  15. Studio デサインパネル/編集タブ 必要なアクティビ ティを、アクティビ ティパネルからド ラッグし、ここに& ドロップします アクティビティとア クティビティを情報 交換するための「変

    数」を定義します (2021.6.0) アクティビティが動 くのに必要な情報 (変数、固定値)を、 アクティビティ上で 設定する
  16. Studio プロパティパネル アクティビティ英語名 アクティビティが動く のに必要な情報(変数、 固定値)をプロパティパ ネル上で設定する アクティビティの名前 です。なるべく重複し ない方がいいです

    アクティビティが動い た結果を格納する変数 を指定する (2021.6.0) アクティビティが動 くのに必要な情報 (変数、固定値)を、 アクティビティ上で 設定する
  17. シーケンスとフローチャート シーケンス:並べたアクティビティを、上から順に 実行していきます。条件分岐は階層化すると見にく くなります。 フローチャート:配置したアクティビティを、接続 線の順に実行していきます。条件分岐は階層化して もそう見にくくなりませんが、接続線が交差したり、 上に戻ったりすると、可読性が悪くなります。 共通

  18. 共通 ① ロボット開始 ② 【入力ダイアログ】アクティビティが起動される ③ 画面から名前を入力し、[OK]ボタンをクリックする ④ 【入力ダイアログ】アクティビティが終了し、【メッセージボックス】アクティビティが起動される ⑤

    画面から入力された内容を、併せて表示する ⑥ ロボット終了 ③ ⑥ ① ② ④ ⑤ ロボットの動き(シーケンスを例に)
  19. 変数 • 変数とは、人が入力した値などを仮に入れておく、コンピュータ上の 容れ物。人以外にも、EXCELのシート上の値も入れる事が出来る。 • また、その容れ物に入れてある値を、使用する事が出来る。 • この容れ物に「名前」を付ける。UiPathでは日本語を推奨! • この容れ物には様々な「変数の型」がある。

    • 変数は、「スコープ」と言う有効範囲で有効である。 Boolean:TrueかFalse Int32:整数 String:文字列 Object:可変 DataTable:データテーブル型 Array Of [T]:Tと言う型の配列 他に DateTime:日付時刻 DataColume:データテーブルの列情報型 DataRow:データテーブルの行情報型 List:Listコレクション型 Dictionary:辞書型 WorkbookApplication:ExcelBook型 共通
  20. 変数の例 … 「入力名前」が、変数。 共通

  21. 変数の定義方法 • 変数タブから「変数の作成」をクリックし、名前、変数の型を設定する 共通 • プロパティパネルの出力系のテキストボックス上で、「Ctrl+k」を押下す ると、「名前の設定:」状態となる。ここに、新しい変数名を入力する ⇒この時の「変数の型」は、そのアクティビティの出力が、自動的に判断、 設定してくれる。スコープは、そのアクティビィティの直上位となる

  22. 配列 • 配列(array)とは,同一の型のデータを(メモリ上に)一列に(隙間をあけず に)並べたものである。 • 違う型のデータを混在して並べて配列とすることはできない。 • 配列中の各データを,配列の要素(element)という。 • 配列には,その配列全体を指すための名前(配列名)がついている。

    • 配列名(=変数名)に対して、(n)で、直接n番目の値を参照する事ができる。 • 配列の要素数は、.Countで取得する事ができる。 • 配列数より大きいn番目、小さいn番目を指定すると、異常終了する。 • 「繰り返し (コレクションの各要素)」アクティビティにより、各要素を シーケンシャルに処理できる。 参考:https://www.cc.kyoto-su.ac.jp/~yamada/programming/array.html 配列名(=変数名):a a(0) a(1) a(2) a(3) a(4) a.Count … 要素の数(=5)が得られる
  23. EXCEL中心のロボ Excel Operation With Studio

  24. UiParhで、 操作できる事 (2021.6.0) • 標準アクティビティは数百あり ます。 • 全てを覚えきれませんので、 「検索」機能を使います。 ⇒図は「EXCEL」で検索した

    結果 • 検索キーワードにムラがありま す。 ⇒フォルダでHITするもの、 ディレクトリでHITするもの。
  25. 今回説明する アクティビティ (EXCELで検索) (2021.6.0) 注意!! “セルを”で検索すると、2つ出てきま す。 アプリの連携 > Excelのアクティビ

    ティは、Excelアプリケーションスコー プの配下で動くタイプです。 ファイル > ワークブックのアクティビ ティは、フルパス名を指定するタイプ です。 基本、アプリの連携系のアクティビ ティをお使いください。
  26. EXCELの基本操作(1/7) • EXCELブックを指定するには、 【Excel アプリケーションスコープ】アクティビティを使用する • 【Excel アプリケーションスコープ】アクティビティを入れ子にすること は出来ない 入れ子

    ダメな例 共通
  27. 共通 • 【Excel アプリケーションスコープ】アクティビティが独立している! 「CValue」 「DValue」 EXCELの基本操作(2/7) 変数 CValue:CellValue DValue:DataTableValue

  28. EXCELの基本操作(3/7) • EXCEL系の様々なアクティビティは、 【Excel アプリケーションスコープ】アクティビティの配下に配置する 【セルを読み込み】は、 指定した[シート名]上の [セル]を読み込み、[結 果]に指定した変数 (GenericValue型)に格納

    する 共通
  29. EXCELの基本操作(4/7) • EXCEL系の様々なアクティビティは、 【Excel アプリケーションスコープ】アクティビティの配下に配置する 【範囲を読み込み】は、 指定した[シート名]上の [範囲]を読み込み、[デー タテーブル]に指定した 変数(DataTable型)に格

    納する。 ※「ヘッダーの追加」の 違いは試してみよう! 共通
  30. EXCELの基本操作(5/7) • EXCEL系の様々なアクティビティは、 【Excel アプリケーションスコープ】アクティビティの配下に配置する 【セルに書き込み】は、 「値」に指定した値を、 指定した[シート名]上の [範囲]に書き込む。 この場合、先に読み込ん

    だ[CValue]であるが、 「値」に[CValue]を指定 してもエラーとなる ↓エラーが存在すると… 共通
  31. スコープ(1/2) • スコープとは、変数の有効範囲である。 • 有効範囲は、シーケンス単位などである。 • 有効範囲は階層を持ち、上位のスコープを指定すれば広い範囲で使用できる。 EXCEL Excel アプリケーションスコープ

    実行 Excel アプリケーションスコープ 実行 最上位スコープ 二階層スコープ 二階層スコープ • CValue,DValueは、最初の[二階層スコープ] で定義したので、その外では参照出来ない CValue 共通
  32. スコープ(2/2) • スコープとは、変数の有効範囲である。 • 有効範囲は、シーケンス単位などである。 • 有効範囲は階層を持ち、上位のスコープを指定すれば広い範囲で使用できる。 EXCEL Excel アプリケーションスコープ

    実行 Excel アプリケーションスコープ 実行 最上位スコープ • 変数タグから、上位スコープを指定する事で、 他のスコープでも使用可能となる CValue CValue 二階層スコープ 二階層スコープ 共通
  33. ① 上位(EXCEL)での定義と、現位 (EXCEL1 実行)での定義とが被っている。 ② 他スコープ(実行)ではエラーは見られな いが、(EXCEL1 実行)ではどちらを使用 するのかが判断つかず、エラーとなっ ている

    共通 スコープ エラーの例
  34. EXCELの基本操作(6/7) • EXCEL系の様々なアクティビティは、 【Excel アプリケーションスコープ】アクティビティの配下に配置する 【セルに書き込み】は、 「値」に指定した値を、 指定した[シート名]上の [範囲]に書き込む。 スコープが上位になって

    いるので、参照できるよ うになった ↓エラーは存在しない 共通
  35. EXCELの基本操作(7/7) • EXCEL系の様々なアクティビティは、 【Excel アプリケーションスコープ】アクティビティの配下に配置する 【範囲に書き込み】は、 「データテーブル」に指 定した値を、指定した [シート名]上の[開始セ ル]に書き込む。

    スコープが上位になって いるので、参照できるよ うになった ↓エラーは存在しない 共通
  36. • Studioで、[Ctrl+l]を押下すると、UiPath実行ロ グファイルが格納されたフォルダが開きます。 • 2021-08-22_Execution.logが実行ログです。 • 他ファイル名の.logがありますが、有事に参照す る位で、普段は中身を見ません • このフォルダ中のファイルはHDDの空き容量確

    保のため、適宜削除しても大丈夫です。 共通 実行ログ
  37. 実行ログに記録されるタイミング • ロボットが開始した時 • 「1 行を書き込み」アクティビティで指定され たメッセージ • 「メッセージをログ」アクティビティで指定さ れたレベル、メッセージ

    • 「ステータスを報告」アクティビティで指定さ れたメッセージはログには記録されませんが、 UiPath ROBOTで実行させる時の表示メッセー ジになります • ロボットが終了した時 共通 実行ログに書き込むアクティビティ
  38. ログ時刻.ミリ秒 レベル 開始、メッセージ、 終了 以降複数情報あり (あまり参照しない) 共通 2021-08-22_Execution.log 実行ログの内容

  39. これ、知ってた? 何気なく使っている右クリック⇒プロパ ティ。 Shift+右クリックで、機能メニューが増え ます! ⇒「パスのコピー(A) 」を選択すると、 二重引用符付フルパス名が取得できます! "C:¥Users¥z102234¥Desktop¥ロボ作成ハ ンズオン¥EXCEL1.xlsx"

  40. EXCEL中心のロボ Let’s TRY Excel Operation With Studio

  41. 【事前準備】 1. Excel1.xlsx、 Excel2.xlsxを作成し、デスクトッ プ上の任意のフォルダに格納する 2. Excel1.xlsxの[Sheet1]の、A1セルから、 G20セルまで、適当な値を設定する。 ⇒例は伝票をイメージしてみた ロボ作成ハンズオン

    【ロボット作成】 1. Excel1.xlsxの[Sheet1]の、[G1セル]を読み込み、 Excel2.xlsxの[転記先C]シート(事前準備不要)のA1セルに書き込んでみる 2. Excel1.xlsxの[Sheet1]の、[G2セル]を読み込み、 Excel2.xlsxの[転記先C]シート(事前準備不要)のB1セルに書き込んでみる 3. Excel1.xlsxの[Sheet1]の、[範囲無指定]で範囲を読み込み(ヘッダー追加□)、 Excel2.xlsxの[転記先D]シート(事前準備不要)のC1セルに書き込んでみる(ヘッダー追加▪) 【ポイント】 • ロボット作成の3.で、書き込みの際にヘッダー追加をチェックOffしたらどうなるだろう? • ロボット作成の3.で、読み込みの際にヘッダー追加をチェックONしたらどうなるだろう? EXCEL1.xlsx
  42. EXCEL中心のロボ Next Stage Is DataTable Type To Be Continue