こんにちは!UiPath メンターです。
前回は、ロボットに「Excelの手術室(プロセススコープ)」と「患者さん(ファイル)」を用意しました。
今回はいよいよ手術……つまり、「データの書き込み」と「読み込み」を行います。
皆さんは、Excelマクロ(VBA)で「Range("A1").Value = ...」のようなコードを見て頭が痛くなったことはありませんか?
UiPathのモダンデザインなら、そんなコードは一切不要。
「ここのセル!」とマウスでクリックするだけで、ロボットに場所を教えることができます。
その魔法のような操作感を体験しましょう。
1. 指定の場所に書き込む:「セルに書き込み」
まずは、特定のセルに文字を入れてみます。
前回作成した [Excel ファイルを使用] の枠の中にアクティビティを入れます。
手順
- [アクティビティ] パネルで「書き込み」と検索します。
- [セルに書き込み (Write Cell)] をドラッグ&ドロップします。
モダン流:書き込み場所の教え方
ここからが本番です。[場所] の入力欄の右側にある + (プラスマーク) をクリックしてください。
- [Excel] > [Excel 内で示す (Indicate in Excel)] を選択します。
すると、実際のExcelファイルが自動的に前面に出てきます!
リボンメニューに「UiPath」というタブが現れているはずです。
- 書き込みたいセル(例:B2)をクリックして選択します。
- Excelのリボンにある [確認 (Confirm)] ボタンをクリックします。
Studioに戻ると、[場所] の欄に自動的にアドレスが入りましたね?
これで設定完了です。[書き込む内容] に "テスト書き込み" などを入れて実行してみましょう。
💡 メンターからのアドバイス:「Excel内で示す」の凄さ
この機能の凄いところは、後でExcelに行や列を追加して場所がずれても、ある程度追従してくれる点(名前付き範囲を使う場合など)や、シート名を打ち間違えるリスクがゼロになる点です。
初心者は迷わずこの「プラスマーク」を活用しましょう。
2. データを吸い上げる:「範囲を読み込み」
次は、Excelに入力されている表データを、ロボットの中に取り込みます。
第6回でWebから取得した時と同じく、ここでも DataTable(データテーブル) が登場します。
手順
- [アクティビティ] パネルで「範囲」と検索します。
- [範囲を読み込み (Read Range)] をドラッグ&ドロップします。
- [範囲] 欄の + を押し、同様に [Excel 内で示す] で表全体(またはシート全体)を選択します。
読み込んだデータの保存
プロパティパネルを見てください。
- [出力] > [データ テーブル] 欄をクリックします。
- Ctrl + K を押し、変数名(例:
dt_SalesData)を作成します。
これで、Excelの表データが、ロボットのメモリ(dt_SalesData)の中にコピーされました。
3. 重要な設定:「ヘッダー」の有無
[範囲を読み込み] のプロパティに、[ヘッダーあり (Has Headers)] というチェックボックスがあります。
- チェックあり(通常はこれ): 1行目を「項目名(列名)」として扱います。データは2行目から読み込まれます。
- チェックなし: 1行目からいきなりデータとして扱います。
ここを間違えると、計算がおかしくなったり、1行目が消えたりするので注意しましょう。
4. 保存は必要?
「書き込んだ後、保存ボタンを押す処理は必要ですか?」とよく聞かれます。
モダンデザインの [Excel ファイルを使用] には、デフォルトで「自動保存」の機能がついています。
プロパティの [変更を保存] がチェックされていれば、処理が終わった瞬間に勝手に保存してくれます。
もちろん、テスト中は「保存したくない」場合もあるでしょう。その時はチェックを外せばOKです。
今回のまとめ
- モダンExcelでは、+ ボタン > [Excel 内で示す] が最強のツール。
- [セルに書き込み] でデータを入力し、[範囲を読み込み] でデータを取得する。
- 読み込むときは「ヘッダー(1行目の項目名)」の扱いに注意する。
⚠️ つまづきポイント:Excelが黄色くなって固まる?
「Excel内で示す」を使っている最中、Excel画面が操作を受け付けなくなることがあります。
これはUiPathがExcelをロックして「選んでください!」と待っている状態です。
選択が終わったら、必ずリボンの [確認] ボタン(またはEnterキー)を押して、制御をStudioに返してあげてください。
さて、データを読み込むことはできましたが、このままでは「データの塊」を持っているだけです。
次回は、このデータテーブルを使って「1行ずつデータを取り出して処理する(繰り返し)」方法を学びます。
これができれば、「リストにある100件のデータを次々とシステムに登録する」ロボットの完成です!