Power Automate Desktopがなんとなく使える講座 #9 キーの送信でExcelを操作する

## キー送信を使う前の注意
　キー送信を行うには、対象のアプリケーションをアクティブにする必要があります。キー送信している途中で、ＰＣの操作を行ってしまうと、送信先が変わってしまって、正しい操作ができなくなってしまうので注意が必要です。ユーザーの操作だけでなく、自動で起動するアプリや、各種通知、マイクロソフトからのお知らせやブラウザ操作中に出てくるポップアップなど、予期しない割り込みはRPAの大敵です。
　Power Automate Desktopを専用のPCで安定して動かすには、不要な通知をオフに設定し、邪魔な割り込みを極力排除しましょう。ただし、通知を全てオフにすると、Power Automate Desktopからの通知も表示されなくなるので、必要ならメール送信で伝えるなどの方法を組み込みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/840239f1-4308-cedd-c2f5-8cefce56e09f.png)
　Power Automate Desktopを毎日同じ時間に実行する場合は、集中モードを設定するという方法もあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/5e713367-4195-1919-224c-59f3abddeb1e.png)
　重要な通知のみにした場合は、重要な通知の一覧も確認しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/afc77b09-cab2-f45f-f336-160020ef1adf.png)

## 途中で止まってしまう
　編集画面では正常に動作するのに、一覧画面から実行すると途中で止まってしまうことがあります。編集画面から動かすときには、各ステップごとに実行遅延がかかって、一覧画面からの実行ではそれが入っていないのが原因の場合があります。キーの送信のキー入力の間隔の遅延の値を大きくしてみてください。また、どうしても時間のかかる処理が入っている場合は、Waitで遅延を入れる方法もあります。キー入力の間隔の遅延の値の単位はミリ秒ですが、Waitの値の単位は秒になっていることに注意してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/885bfe8a-d62b-45b9-f26c-4cc742613ac0.png)
　また、何度も実行、停止を繰り返していると、Excelのプロセスが残ってしまい、これが動作を不安定にする原因になることがあります。タスクマネージャーを開いて、タスクを終了してやる必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/5b307d30-7996-5ef6-fa16-216fc931115a.png)

### 適宜コメントを挟んでおきましょう
　動作がおかしくなってしまった場合、Windowsの環境のせいかもしれませんし、アプリのせいかもしれません。再実行させればうまく動くかもしれませんし、修正しないとだめかもしれません。RPAは、対象アプリを完全にコントロールできませんので、いつかは手を入れなければならない日が来ることを覚悟しておきましょう。特に、キーの送信を使っている場合は、その可能性が高くなります。慌てずにすむよう、適宜、フローの中にコメントを挟んで、後から見てわかるようにしておきましょう。
　
# フィルターをかけてデータをコピーする
　Autoフィルターの設定は、表の中で **[Ctrl] + [Shift] + [L]** を押します。キーの送信では、送信するテキストに以下のように入力します。

```:Autoフィルターの設定
{Control}({Shift}({L}))
```
　キー入力の間隔の遅延は、私の環境では 100 くらいが妥当かなと思いました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/ef598163-e462-12ea-4613-cd64f2d1e70c.png)
　これで、表の項目名の横に▽マークが表示されますので、フィルターをかける項目にカーソルを移動させ、 **[Alt] + [下矢印]** でフィルターの設定を開きます。

```:フィルター項目のドロップダウン
{Alt}({Down})
```
　**F → E** と押して、オートフィルターオプションのダイアログを表示させ、フィルターをかける文字列を入力して **[Enter]** キーで閉じます。

```:フィルターの設定
FE%CurrentItem%{Enter}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/bd5841b3-0e5a-3110-f802-b8d66da0d249.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/7123c515-2785-c92a-9867-a88d94034a2f.png)
　フィルターされた表をコピーするには、「Excelワークシートから読み取り」で表全体を選択すると、全てのデータが読み込まれてしまいます。また、「ワークシート内のセルを選択」を使うと、エラーが発生します。フィルターされた表のデータをコピーするためには、 **[Ctrl] + A** のショートカットで選択することになりますので、キーの送信を使って選択します。

```:フィルターされたデータの選択
{Control}({A})
```
　貼り付けは、 **Excelワークシートにセルを貼り付け** を使って、A1のセルに貼り付けてやれば出来上がります。
　フローの中では、Autoフィルターの設定をループに入る前に行い、ループが完了したら再度 **[Ctrl] + [Shift] + L** でAutoフィルターを解除しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/e3cf6c43-af32-8fda-bbde-85342e9e9188.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/4b658b3b-6217-5409-cd5c-ab3c6ffce12d.png)

# 列幅の自動設定
　列幅を、データの長さに応じて変更するにはアクセスキーを使って **[Alt] → O → C → A** とします。

```:列幅自動設定
{Alt}()OCA
```

#  ヘッダー、フッターの設定
　アクセスキーを使って **[Alt] → P → S → P** としてページ設定のダイアログを表示させます。

```:ページ設定ダイアログ表示
{Alt}()PSP
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/11069606-7452-822c-cf3f-9b29342e3589.png)
　「ヘッダー／フッター」のタブを選択するには、 **[Ctrl] + [Tab]** を２回押して、移動させます。

```:タブ選択
{Control}({Tab}){Control}({Tab})
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/ed7911ed-ca11-fca4-a95e-3e3ff536c7c6.png)
　 **[Alt] + C** を押して、ヘッダーの編集のボタンを選択し、中央部の入力項目まで移動します。

```:ヘッダーの編集
{Alt}({C}){Tab}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/694698ad-513d-8591-e57d-c25766d5b364.png)

　ヘッダーの文字を入力し、TabキーでOKボタンまで移動してEnterを押します。%CurrentItem% は、現在選択している出身地の名称が入ります。

```:ヘッダーの設定
出身地別一覧（%CurrentItem%）{Tab}{Tab}{Enter}
```
　再びページ設定のダイアログに戻りますので、**[Alt] + U** を押して、フッターの編集を行います。

```:フッターの編集
{Alt}({U}){Tab}
```
```:フッターの設定
&[ページ番号]{Tab}{Tab}{Enter}
```
　ページ設定のダイアログを閉じるには、TabキーでOKボタンまで移動してEnterを送信します。

```:ページ設定ダイアログを閉じる
{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Enter}
```

# 余白の設定、用紙の向き
　余白の設定とページ設定は、アクセスキーでリボンのボタンを選択し、ドロップダウンで表示された項目を選択します。

```:余白の設定
{Alt}()PM{Down}{Down}{Down}{Return}
```
```:用紙の向き
{Alt}()PO{Down}{Return}
```
　この操作は、遅延を少し長めに取った方がいいようです。私は 250ミリ秒にしました。

# タイトル行の設定とページ設定
　タイトル行の設定とページ設定は、以下のようにしました。

```:タイトル行の設定
{Alt}()PI{Alt}({R})$1:$1{Return}
```
```:ページ設定
{Alt}()PSP{Alt}({F})1{Tab}0{Enter}
```