![見出し画像](https://assets.st-note.com/production/uploads/images/158259147/rectangle_large_type_2_f5cd50a1c12c51f9acf85785ad44f27f.jpeg?width=1200)
PADで自動コピペ勉強会(第1弾)②
PADでフローを作ったことで、Excelに一度も触ることなくファイルを開き、セルを選択してコピーして別のセルに貼り付ける、ということができることが分かったチーム・エンジニア系上司メンバー。「こんなことができるツールがあったとは!」とみんなの熱量が高いうちに次のステップに進みます。
2つのExcelファイル間でのコピペ
前回は一つのファイルの中でセルをコピペしてみましたが、実際の業務では、申込用紙に記載されている内容を集計用のファイルにコピペする必要があります。つまり、Excelファイル①(申込用紙)とExcelファイル②(集計用紙)を開いて、①の中の欲しいところをコピーして②のセルにペーストするという操作です。
![](https://assets.st-note.com/img/1729131156-6iWCcdunOeTPry43xbKhUwEF.jpg?width=1200)
ここで、あとで分かりやすいように集計用紙は「syuukei」申込用紙は「moushikomi」と名前というかラベルを付けておきます。デフォルトでは「ExcelInstance」「ExcelInstance2」となり、「ExcelInstance2って集計用紙だっけ?申込用紙だっけ?」となるので、分かりやすい名前に変えておくのです。ただし、メンバーにとってはこれをする意味はあまりピンときていないようでした。
コピー&ペーストの手順は同じです。気をつけるのはコピーするのは申込用紙のセル、ペーストするのは集計用紙のセルだという点です。
![](https://assets.st-note.com/img/1729131284-3gK49qBhMxblJSsEUYfHRd6P.jpg?width=1200)
これまで使ったことのなかった新しいツールを使うということで、「どのアクションがどこにあるのか?」「どこでインスタンスを書き換えるのか?」こういうところがすんなりと入れる人と割と苦労する人に分かれましたが、サポート役員の活躍もあり皆さん、さほどトラブルなくできました。
最終行の取得に苦戦
さて、実際の申込用紙のことをよく考えてみましょう。
ある会社からは6人が申し込み、でも別の会社からは4人、というように全部の会社から同じ人数だけ申し込みがあるということはまずありません。つまり、コピーしたい部分の行数は申込用紙によってバラバラです。
![](https://assets.st-note.com/img/1729131570-FzWCOo5n620J3tMUurXKy7hs.jpg?width=1200)
もちろん、すべての申込用紙から最大の6行分をコピーして、最終的に集計用紙の空白となっている部分を削除してもよいでしょうけれど、ここは申込用紙ごとに何人分(何行分)コピーするかを決めていく方法を採用しました。
ところで、どうやって何行目までコピーすればよいかを決めるのでしょうか?ここからちょっとだけプログラミングっぽい思考方法が必要になります。PADはコードを書かなくてもよいツールではありますが「処理を自動化する」ということはつまり「コンピュータを使って論理的に処理できるようにする」ということですので、手作業の時に無意識にやっていることを分解し、そこにどういうルールがあるのかを考えることが必要になります。
コピーする範囲の決め方は、以下の図の通りです。例えば参加者の部署名が記入されているC行に着目すると、上から順番にセルを見てここよりも下には文字などは入力されていないというセルが見つかります。この場合はC15セルです。ということは、その1行上までをコピーすればよいので、コピーの範囲はC11~G14セルと決めることができます。
(実際に運用する際には、同じ部署の時に記載を省略していることもあるので、氏名が書いてあるD列で探すほうが良いでしょう)
![](https://assets.st-note.com/img/1729132744-4Uo2Wu0DxhIeMKZfjvBzAXt8.jpg?width=1200)
これをPADのアクション「Excelワークシートから列における最初の空の行を取得」で設定します。
![](https://assets.st-note.com/img/1729133709-V1Xf8Jt6m7GRqAgIyu5nilhN.jpg?width=1200)
これでFirstFreeRowOnColmunという変数で15が設定できたので、そこから1を引いたFirstFreeRowOnColmun-1=14行目までをコピー範囲に設定することができます。
![](https://assets.st-note.com/img/1729134081-1EIsnFKxYHlzw62eG3vuJ8a0.jpg?width=1200)
変数の設定は第一関門
これができるようになれば、申込人数が何人であっても必要な部分だけを確実にコピーしてくることができます。
ただし、PADを初めて使ったプログラム未経験のメンバーにとってはここが関門でした。確かに「変数」という概念は手作業をしている限り必要ありません。これまで何十年も手作業オンリーでやってきたメンバーにとって、一枚一枚異なるコピー範囲を決めるために「決まり」や「ロジック」を設定していくという概念?をインストールしていくことはなかなか容易ではありませんでした。
ここはひとまずお手本と同じようにアクションを並べてもらい、フローを作ってもらうということで落ち着きました。