「Excelのセル転記」ロボットでExcelの複数行読み取り+書き込みを体験しよう

2023年6月6日(火)
中村 行宏
第3回目の今回は、前回作成したExcelの転記ロボットで、複数行の読み取りと書き込みを行なってみます。

Excelから複数行を書き込むロボットの作成

最初に、Excelファイルを2つ準備します(図13)。
・ユーザーリスト.xlsx(データ有り)
・Excel出力.xlsx(データなし)
※「Excel出力.xlsx」には何も入力せず「空」にしておきます。

事前準備ファイル(書き込み)

図13:事前準備ファイル(書き込み)

  1. Toolbox内の検索フォームに「assign」と入力し、図14のように「Assign」アクティビティを「Sequence」内にドラッグ&ドロップします。
    Assignアクティビティをドラッグ&ドロップ

    図14:「Assign」アクティビティをドラッグ&ドロップ

  2. 図14で追加した「Assign」の左辺に「int_行番号」と入力します(図15)。
    int_行番号

    図15:「int_行番号」

  3. 図15で入力した「int_行番号」を選択し、[Ctrl]キーを押しながら[k]キーを押下すると、図16のように変数が自動作成されます。自動作成された「int_行番号」の変数の型は「String(文字)」型ですが、この「int_行番号」変数は整数として扱いたいため、「Int32(整数)」型に変更します。
    int_行番号の変数の型を変更

    図16:「int_行番号」の変数の型を変更

  4. 「int_行番号」変数のデフォルト(初期)値を設定します。図17のように「1」を入力します(半角数字)。
    int_行番号変数のデフォルト値

    図17:「int_行番号」変数のデフォルト値

    ここで「int_行番号」について説明します。この例では、Excelファイルから1行ずつデータを読み込んでいきたいので、x行目を読み込んだら、次は(x+1)行目を読み込んでいきます。図示すると、図18のようなイメージになります。
    int_行番号の推移

    図18:行番号の推移

    1行ごと読み込んでいくには、行番号に「1」を足していく必要があるため、「int_行番号」の右辺は図19のように設定(入力)します。
    行番号+1

    図19:行番号+1

  5. 「WriteLine」アクティビティをドラッグ&ドロップします。「Text」には「int_行番号.ToString」と入力します(図20)。
    int_行番号.ToString(デバッグ用)

    図20:int_行番号.ToString(デバッグ用)

  6. 「Sequence」が2つ存在するので、区別できるように下の方の「Sequence」を「Sequence - 各行」と変更します(図21)。
    (変更後の)「Sequence - 各行」

    図21:(変更後の)「Sequence - 各行」

  7. 「int_行番号」のスコープを「Sequence - 各行」から「Sequence」に変更します(図22)。
    int_行番号変数のスコープを変更

    図22:「int_行番号」変数のスコープを変更

    ここで「int_行番号」変数のスコープを変更しなかった場合と変更した場合を見比べてみます。図23(左)はスコープを変更していない場合です。行番号(int_行番号)が「2」から変化していないことが分かります。一方で、右はスコープを変更した場合です。行番号(int_行番号)は、希望通り「2」→「3」→「4」→…と増えていることが分かります。
    int_行番号変数の変更差異

    図23:「int_行番号」変数の変更差異

  8. 「Assign」アクティビティをドラッグ&ドロップします。左辺には「str_名前」と入力します(図24)。
    str_名前変数の作成

    図24:「str_名前」変数の作成

  9. 図24で入力した「str_名前」を選択し、[Ctrl]キーを押しながら[k]キーを押下すると図25のように変数が自動作成されます。自動作成された「str_名前」の変数の型は「String(文字)」型でした。
    str_名前変数の自動作成

    図25:「str_名前」変数の自動作成

  10. Assignアクティビティの右辺に「row(“名前”).ToString」を代入します(図26)。“名前”は読み取るExcelファイル「ユーザーリスト.xlsx」のA列の名前に該当します(図1)。
    str_名前変数に値を代入

    図26:「str_名前」変数に値を代入

  11. Toolbox内の検索フォームに「write」と入力し、図27のように「Write Cell」アクティビティをドラッグ&ドロップします。その後「Select Types」を聞かれるため「String」を選択します。
    Write Cellアクティビティをドラッグ&ドロップ

    図27:「Write Cell」アクティビティをドラッグ&ドロップ

  12. 「…」をクリックし、転記先のExcelファイル(Excel出力.xlsx)を指定します(図28)。前述のように、転記先のExcelファイルは事前に準備しておきます。
    転記先ファイルの指定

    図28:転記先ファイルの指定

  13. 「Cell」と「Value」の値を設定します(図29)。「Cell」には書き込むセルの番号を記します。例えば、行番号が「2」の場合は「A2」です。「Value」にはセルに書き込む値(str_名前.ToString)を記します。
    CellとValueの設定

    図29:「Cell」と「Value」の設定

  14. 転記先のExcelファイルの「“A1”」セルに文字列「“名前”」を記載します。「Write Cell」アクティビティを最下部にドラッグ&ドロップし、各種設定します(図30)。「Cell」には「“A1”」、「Value」には「“名前”」と入力します。【補足】「“」は半角文字、「A」は半角英字、「1」は半角数字になります。
    “A1”セルへの記載

    図30:「“A1”」セルへの記載

以上で、ロボットの作成は完了です。Save(保存)して、Play(実行)してみましょう。

おわりに

今回は「Excelの複数行読み取りと書き込み」を行うRPAロボットを作成しました。実際の業務では、複数行のExcel転記を行うことが多いので、業務改善に役立てば幸いです。

次回は「Yahoo! 路線」サイトを活用して、交通費精算を行うRPAロボットの作成について解説します。

ライター
SIer にて、システム開発/構築や社内インフラを担当。その後、セキュリティベンダーに移り、セキュリティ診断(NW、Web、DB)に従事。また、本の執筆や講師も務める。
著書:図解即戦力 情報セキュリティの技術と対策がこれ1冊でしっかりわかる教科書、【イラスト図解満載】情報セキュリティの基礎知識

連載バックナンバー

システム運用技術解説
第5回

「Excel+Yahoo! 路線情報」で作成した交通費の自動精算ロボットを改良しよう

2023/8/10
最終回の今回は、前回作成した「Excel+Yahoo! 路線情報」の交通費自動精算ロボットを改良して、複数人の申請に対応できるようにしていきます。
システム運用技術解説
第4回

「Excel+Yahoo! 路線情報」で交通費の自動精算ロボットを作ってみよう

2023/7/7
第4回目の今回は、「Yahoo! 路線情報」サイトから交通費を自動取得し、交通費を自動精算するロボットを作成します。。
システム運用技術解説
第3回

「Excelのセル転記」ロボットでExcelの複数行読み取り+書き込みを体験しよう

2023/6/6
第3回目の今回は、前回作成したExcelの転記ロボットで、複数行の読み取りと書き込みを行なってみます。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています