【BluePrism】Excelの既存データを削除する方法

# はじめに
Blue PrismでExcelの転記作業を自動化する場合、既存データを削除することでより正確性を高めることが出来ます。
しかし、MS Excel VBOのビジネスオブジェクトの”delete”アクションを使用すると、表や書式などのデザインが崩れてしまう恐れがあると思います。
この記事では、既存データの値のみを削除する小技をご紹介します。

# 処理内容
### 前提条件
- Blue Prismのバージョン：6.8.0

### 自動化したい内容
今回は「交通費精算書_1.xlsx」のファイルの赤枠に記載されている既存データを削除します。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/8f62d6d8-9167-9cf9-e293-24e031b8da53.png)


# 事前準備
#### データアイテムの作成

<br>

**・フォルダ名**
初期値として該当ファイルの格納先を設定します。

**・ファイル名**
初期値として該当ファイル名を設定します。

**・空白セル位置**
検索した空白セル位置を格納するデータアイテムです。

**・空白セル位置(数値)**
テキスト型で格納されている空白セル位置を計算ステージで数値化したセル位置を格納するデータアイテムです。

**・コピー用空白セル位置**
空白セルを目視で確認したものを格納します。今回は“A1”セルの値を指定しました。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/5e3240ee-9030-9c80-4b47-2dfdb8a902b6.png)

**・データ起点セル位置**
削除したいデータの始まりのセルを格納します。今回は“B11”セルの値を指定しました。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/dbef39aa-d4a3-fe33-8393-6885ad3c3ea2.png)


# 実装内容
プロセスはこのように実装しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/b7c7eacd-3467-36cf-d063-c586d97875d1.png)

それでは、各ステージの内容を確認していきましょう。
#### ①《アクションステージ》交通費精算書を開く
入力には下記のように設定し、格納先と開きたいファイルを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/49c581b0-86b6-e8c5-310e-5d122b7e14ad.png)

出力にはファイル名のデータアイテムを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/10892119-2b25-c242-9839-928fcc1c1d8d.png)


#### ②《アクションステージ》空白セルを選択する
既存データ全体に空白セルの値を貼り付ける必要があるため、
データアイテム[コピー用空白セル位置]にカーソルを移動させるアクションを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/73caefbf-34de-a2ef-c8dd-b4c8ba7a09e7.png)




#### ③《アクションステージ》空白セルをコピーする
先ほど選択した空白セルをコピーするアクションです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/550f63cb-4e52-17b1-0670-42318564709b.png)


#### ④《アクションステージ》空白検索の起点セルを指定
削除したい既存データの範囲を指定していきます。
ここではデータアイテム[データ起点セル位置]を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/fc4ed9de-c442-68fc-8c5a-cef731b2c545.png)


#### ⑤《アクションステージ》空白セル位置取得
既存データの終了地点を検索します。
取得したものはデータアイテム[空白セル位置]に格納します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/34fa7a54-7df5-5be2-13f8-c9f02f467d72.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/cafa20ed-b270-78ee-aa34-14086d836268.png)



#### ⑥《計算ステージ》空白セル位置の行数を取得
手順⑤で取得したものはアルファベットが含まれているため、列を除いた行数のみを取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/7be9292f-6ca5-e28f-3e5c-6ce66c1bdabb.png)

#### ⑦《アクションステージ》削除したいセル範囲指定
削除したいデータの起点セルと⑥の計算ステージで取得した行数を組み合わせて
削除したいセルの範囲を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/349f0322-4209-35f6-985a-5880508ca245.png)

Cell Referenceはこのように設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/8fba6ce5-cd50-599a-33ca-7068bb7d68a2.png)




#### ⑧《アクションステージ》コピーした空白セルを貼り付け
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/09b5f7f4-7beb-0bd3-e053-f1f12e4109fa.png)
③のアクションステージでコピーした空白セルを貼り付けます。

# 実行結果
以上の処理を実行することで、このように既存データの値のみが削除されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820924/78cfacee-973a-0138-03a6-be092e6da0a3.png)


今回使用したMS Excel VBOのビジネスオブジェクトはBluePrismでExcelを操作するにあたって必要不可欠なものです。上記で使用したアクション以外にも様々な処理をすることが可能です。

ちょっとした小技ですが、値の削除に苦戦した際にはぜひ参考にしてみてください！