スプレッドシートからデータを読み込む例
- 最終更新日2023/09/22
スプレッドシートからデータを読み込む例
1 つの Exce l ワークシートからデータを読み込んで、別のワークシートに書き込む Bot を構築します。
前提条件
注文処理チームが、注文処理プロセスの一環として、スプレッドシートで注文データを受け取ったとします。チームは、スプレッドシートから優先出荷リストを作成し、ピッキング部門と共有するプロセスを自動化しています。このチュートリアルのサンプル Bot は以下のタスクを実行します。
- Excel の高度な操作 パッケージを使用して、注文のリストを含むスプレッドシートデータを読み込みます。
- 優先的に出荷する必要のある注文のリストを含む新しいスプレッドシートを作成します。
このチュートリアルでは、こちらからサンプルの Excel ファイルをダウンロードして使用することができます。
手順
-
新しい Bot を作成します。
- 左側のペインで [オートメーション] をクリックします。
- をクリックします。
- [TaskBot を作成] ウィンドウで、[名前] に「Priority List」と入力します。
- [作成と編集] をクリックします。
-
注文リストを含むスプレッドシートからデータを読み込むために、Exce l シートを開きます。
- [アクション] パネルから、 アクションを見つけて Bot エディターに追加します。
- [ファイル] をクリックし、ダウンロードしたサンプル Excel ファイルを選択します。
- [シートにヘッダーを含む] を選択します。
- [シート名を指定] を選択し、「order_list」と入力します。
- [Excel セッションの作成] で、[ローカル セッション] をクリックし、セッション名として「orderlist」と入力します。
-
優先順位のリストのために、新しいスプレッドシートを作成します。
- [アクション] パネルから、 アクションを見つけて Bot エディターに追加します。
- [ファイル パス] で、新しいファイルのファイル パスを指定します。たとえば、C:\\bots\priority-orders.xlsx のように指定します。
- [シート名] に、「priority orders」と入力します。
- [Excel セッションの作成] で、[ローカル セッション] を選択し、セッション名として「prioritylist」と入力します。
- 変更を保存します。
-
コピー元のスプレッドシートから新しいスプレッドシートにヘッダーをコピーします。
- [アクション] パネルから、 アクションを見つけて Bot エディターに追加します。
- [対象とするセルの範囲を選択] で、[特定の行] を選択し、[開始行] と [修了行] の両方のフィールドに「1」と入力します。
- [セッション名] に、「orderlist」と入力します。
- コピーした値を変数に格納するために、[値を変数に代入] で HeaderData という名前の変数を作って代入します。値はデータテーブル変数に格納されます。
- 変更を保存します。
-
コピーしたヘッダーを新しいシートに書き込みます。
- アクションを見つけて Bot エディターに追加します。
- [データテーブル変数を入力] で、[HeaderData] を選択します。
- [特定のワークシート] をクリックし、「priority orders」と入力します。
- [最初のセルを指定] に「A1」と入力します。
- [セッション名] に、「prioritylist」と入力します。
- 変更を保存します。
-
新しいスプレッドシートにデータを書き込む前に、新しいワークシートで A2 セルが選択されていることを確認します。そのために次の操作を実行します。
- [アクション] パネルから、 アクションを見つけて Bot エディターに追加します。
- [特定のセル] に「A2」と入力します。
- [セッション名] に、「prioritylist」と入力します。
- 変更を保存します。
-
ソース スプレッドシートでの順序のリストをループします。
- [アクション] パネルから、[ループ] アクションを見つけて Bot エディターに追加します。
- [反復子] から、Excel の高度な操作 の [ワークシート内の各行] を選択します。
- [ループ範囲] で [すべての行] を選択します。
- [セッション名] に、「orderlist」と入力します。
- [現在の値をこの変数に割り当てる] で、[レコード] を選択し、order-record という名前の変数を作成します。
- 変更を保存します。
-
ShippingType が Priority に等しいレコードを選択します。
- a. [アクション] パネルから、[ループ] アクション内の [If] アクションを見つけて追加します。
- [条件] で、文字列の条件を選択します。
- [元の値] に「$order_record[4]$」と入力し、現在のレコードの 5 番目の列を選択します。
- [演算子] で [等しい (=)] を選択します。
- [ターゲット値] に、「Priority」と入力します。
- 変更を保存します。
-
一致するレコードが見つかった場合は、そのレコードを新しいスプレッドシートに書き込みます。これを実現するには、ソース データの列数と同じ数だけ [セルを設定] アクションを使用します。しかし、この例では [ループ] アクションを使って同じ結果を達成しています。
-
recordValueCounter 変数をゼロにリセットします。
- アクションを見つけて内部ループの後の [If] アクション内に追加します。
- [数字を入力] フィールドと [出力値を変数に代入] フィールドの両方で、recordValueCounter を選択します。
- [インクリメント値を入力] に「7」と入力します。
- 変更を保存します。
-
次の反復の前に次の行にカーソルを移動します。
- アクションを見つけて、最初のループアクション内 ([デクリメント] アクションの後) に追加します。
- [アクティブなセル] をクリックし、[行の先頭] を選択します。
- [セッション名] に、「prioritylist」と入力します。
- アクションを見つけて追加します。
- [アクティブなセル] をクリックし、[1 つ下のセル] を選択します。
- [セッション名] に、「prioritylist」と入力します。
- 変更を保存します。
- Bot を実行します。