WinActor

2021.09.30
サンプルシナリオ Excel関連
Excelの連続するシートのデータを1シートにまとめるサンプルシナリオ

WinActorのExcel操作ライブラリを使用して、Excelの連続するシートのデータを1シートにまとめるサンプルシナリオとなります。

Excel操作(マッチング)ノードの利用方法学習に利用することができます。

本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。

サンプルシナリオ概要

はじめに

WinActorのExcel操作ライブラリを使用して、Excelの連続するシートのデータを1シートにまとめるサンプルシナリオ(以降、本サンプルシナリオ)について説明します。

本サンプルシナリオの概要

本サンプルシナリオでは、複数シートのデータを外部結合でまとめることができます。
本サンプルシナリオは、以下の処理を行います。

  • データまとめ時に使用する一時作業用のExcelファイルを新規作成します。
  • 一時作業用ファイルに、シートを追加します。
  • 1回目のまとめ処理として、1シート目と2シート目のデータを一時作業用ファイルの追加したシートにまとめます。
  • データシート数 - 3 回分、以下を繰り返します。
    • 一時作業用ファイルの直前にまとめられたシート名を保持します。
    • 一時作業用ファイルに、シートを追加します。
    • 一時作業用ファイルの直前にまとめられたシートのデータと 2 + ループ回数 シート目のデータを一時作業用ファイルの追加したシートにまとめます。
  • 最後のまとめ処理として、一時作業用ファイルの直前にまとめられたシートのデータと最後のシートのデータを指定したまとめファイルの指定したまとめシートにまとめます。
  • 一時作業用ファイルを保存せずに閉じます。
  • 一時作業用ファイルを削除します。

使用するWinActorモジュール

本サンプルシナリオでは、以下のWinActorモジュールを使用します。

  • ノード/変数/変数値コピー
  • ノード/変数/四則演算
  • 13_ファイル関連/02_ファイル操作/ファイル削除.ums6
  • 18_Excel関連/01_ファイル操作/Excel操作(新規作成).ums6
  • 18_Excel関連/01_ファイル操作/Excel操作(保存なしで閉じる).ums6
  • 18_Excel関連/02_シート操作/Excel操作(シート名取得).ums6
  • 18_Excel関連/02_シート操作/Excel操作(シート追加).ums6
  • 18_Excel関連/02_シート操作/Excel操作(シート選択).ums6
  • 18_Excel関連/Excel操作(マッチング).ums6

動作確認環境

本サンプルシナリオは以下の環境で動作確認しています。
以下の環境以外で実行した場合、正常に動作しない場合があります。

  • Windows 10、WinActor 6.3.1、Microsoft Excel 365
  • Windows 10、WinActor 7.2.1、Microsoft Excel 365

本サンプルシナリオの使い方

本サンプルシナリオの実施方法は以下の通りです。

Step1.Office(Excel)を確認

本サンプルシナリオは、WinActorが動作するPCとOfficeに含まれるExcelを用いて、Excelの連続するシートのデータを1シートにまとめるシナリオです。
手元のPCで動作が確認できるように、上記のアプリがインストールされているか、確認してください。

Step2.サンプルシナリオの読み込み

ダウンロードしたサンプルシナリオのZIPファイルを展開し、展開したフォルダに含まれている本サンプルシナリオをWinActorで読み込みます。

Step3. 動作に必要な変数を設定

本サンプルシナリオを実行するために必要な値を、変数一覧で設定します。
事前に設定が必要な変数は下記に記載しております。

  • データファイル名
    • まとめ元のデータファイル名を絶対パスか相対パスで指定してください。
      例) データファイル.xlsx

  • データシートインデックス
    • まとめ元シートの先頭のインデックス
      例) 1

  • データ開始セル位置
    • まとめ元データの開始セル位置をA1形式で指定してください。
      例) A1

  • まとめファイル名
    • まとめ結果を出力するExcelファイル名を絶対パスか相対パスで指定してください。
      存在しないファイルを指定した場合、まとめ結果が出力されずにWinActorは終了します。
      例) まとめファイル.xlsx

  • まとめシート名
    • まとめ結果を出力するシート名を指定してください。
      例1) まとめ

  • まとめセル位置
    • まとめ結果を出力するセル位置をA1形式で指定してください。
      例) A1

  • シート数
    • まとめ対象のシート数を指定してください。
      本シナリオは3シート以上のデータを想定しているため、3以上の値を設定してください。
      例) 4

  • 一時作業ファイル名(任意)
    • 一時作業用のファイル名を指定してください。
      例) tmp.xlsx

10926_input1.png
変数一覧画面

Step4.サンプルシナリオの実行

WinActorで本サンプルシナリオを実行します。
ファイル削除の実行まで完了すると、本サンプルシナリオは終了します。

Step5.サンプルシナリオの終了後の確認

実行結果として、指定したまとめ先にデータをまとめた結果が出力されています。

10926_input2.png
まとめ結果

トラブルシューティング

本サンプルシナリオでは、変数指定が不十分であった場合、エラーメッセージが出力されます。
詳細については、エラーメッセージ一覧を参照してください。

サンプルシナリオ解説

本サンプルシナリオで使用している実装テクニックについて説明します。

1.Excel操作(マッチング)ノード解説

本サンプルシナリオのまとめ処理は、「Excel操作(マッチング)」ノードを活用することで実現しています。
「Excel操作(マッチング)」ノードは以下のようにデータをまとめます。

10926_input3.png
ノード解説_データシート1

10926_input4.png
ノード解説_データシート2

10926_input5.png
ノード解説_まとめ結果

上図のように、「指定セル」で指定した列の値(ここでは列1の値)をキーとし、共通するものはマッチング時に同じ行に統合されます。
共通しない値は最終行に追加され、設定されていない列の値(列1:3の列2、列3の値など)は空白となります。
これにより、複数シートに点在する商品情報などを簡単に1シートにまとめることができます。

2.Excel操作(マッチング)ノード補足

Excel操作(マッチング)ライブラリでは複数シートのマッチングができませんが、
一時作業用シートに途中結果を保持することで、3つ以上のシートの連結を可能にしています。

3.連結するシート名の取得

データシート名の設定は、シートインデックスでの使用を活用することで個別のシート名指定を省略しています。

10926_input6.png
次のシートインデックス算出のプロパティ

上記の「データシートインデックス」を使用して一度該当のシートをアクティブにした後、
アクティブなシートのシート名を取得することで複数のシート名を1つのループ内で設定可能にしています。

10926_input7.png
Excel操作(シート選択)のプロパティ

10926_input8.png
Excel操作(シート名取得)のプロパティ


シナリオ上、以下の箇所で次のデータシート名を取得しています。

10926_input9.png
シート名取得サブルーチン

4.一時作業用シートの追加

一時作業用シートの追加は、シート名を数値として、都度前回追加したシート名に +1 した数値を新たなシート名とすることで繰り返し処理での利用を可能にしています。

10926_input10.png
新規一時作業シート名作成のプロパティ


シナリオ上、以下の箇所で一時作業シートを作成しています。

10926_input11.png
一時作業シート作成サブルーチン

変更履歴

版数 日付 修正内容
版数
1.0版
日付
2021/9/30
修正内容
初版
版数
1.1版
日付
2024/1/17
修正内容
・注意事項を削除
・ファイル名を「SS2109_10926_ExcelOperation_CollectDataOnOneSheet_1.0.1.zip」に変更

本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。

"Excel関連"に関連するその他のサンプルシナリオ

サンプルシナリオ一覧へ戻る
当サイトでは、お客さまに最適なユーザー体験をご提供するためにCookieを使用しています。当サイトをご利用いただくことにより、お客さまがCookieの使用に同意されたものとみなします。詳細は、「プライバシーポリシー」をご確認ください。