見出し画像

「参加者名簿作り」という作業の自動化 #1

 私が所属していた組織では、イベントを企画し、関連のある企業や団体などに声掛けをして参加者を募集するということがわりと頻繁にありました。そのようなときに発生するのが「参加者名簿作り」という仕事作業です。今日はそうした面倒くさい名簿作りをどうやって自動化していったのか?について書いていきます。


なくならない名簿のメール送付

 まず、私の言っているイベントというのは、参加者が何千人もいるような大規模なものではなく、多くても100人程度のものですが、そうしたイベントを企画すると、参加者から送られてくる申し込み用紙の整理と中身の転記作業が発生します。
 今ならGoogleやMicrosoftのFormsのようなツールを使えば転記作業は不要ですが、当時はそのようなツールはないし、下手をするとメールが使えないという人がFAXで申し込んできたりもしていました。また、参加者が全員個人で申し込みをすることが前提であればFormsのようなツールでよいのですが、声掛けをした企業や団体が、自分の会社から誰が参加するのか把握したい、というような場合に「組織でとりまとめをして申込用紙を送りたいのですが…」という要望がかなり多くありました。したがって、Formsのようなツールが使える令和6年の今でも、Excelで作った参加申し込み用紙をメール添付して送るというフローはなくなることがありません。まあ、その後の業務フローなど全く考えず申込用紙をWordで作っている見た目重視のアナログ人間もいたりするので、Excelにできたことだけでもマシなほうだということもできます。

ご丁寧にパスワードつきのZIPファイルで送られてくることも。
PPAP問題が言われ始めたのっていつからでしたっけ?

集まったExcelファイルを一つずつ開いてコピペの刑

 こういった申込書がたくさん届くのですが、これらを名簿にするための次なる作業は一つ一つファイルを開いては内容を転記する作業になります。転記済みのファイルは分かるように別のフォルダに分けて保存しておく、といった管理も必要です。
 私にとってはこれはもうなにかの刑だとしか思えないのですが、勤続年数が短いことは罪なんですかね?なぜ在職期間が短いというだけで、若い人やあとから入社した人に辛いだけの作業を強いるんですかね。やる意味のない辛いだけの作業を他人に強いる勤続年数の長い人のほうがよほど罪深いと私は思います。
 こういう年配従業員は、だまって言われたとおりにやっていれば効率的にできるようになって評価される、と本気で思っているかもしれませんが、それは効率化ではなくて「ただの慣れ」です。もしあなたが本気で「手作業によるコピペが1枚あたり2分から1分でできるようになること」「マウスが猛烈に早く動かせるようになること」がスキルの向上だと思っているのだとしたら、今すぐその熟練スキルを活かせる仕事を探してみることをおすすめします。

「手作業でのコピペ」=「賽の河原での石積み」
と私は認識しています

機械にとって繰り返し作業はお手のもの 

 私のコピペに対する憎悪はさておき、こういうのはVBAで自動化してしまいましょう。機械というのは繰り返し作業が大の得意ですので、同じ作業を100回でも10000回でも100000000回でもいくらでもやってくれます。(ま、熟練コピペスキルを身につけたい人は手でやればいいと思いますが)

 まず「未処理」「転記済み」という2つのフォルダを作り、送られてきたExcelファイルをすべて「未処理」フォルダに格納するようにします。コピペが終わったら「転記済み」のフォルダに移動するというルールです。処理の手順としては

  1. 「未処理」フォルダの中にある申込書ファイルを一つ開く

  2. コピペするシートを名簿ファイルにコピーしてくる

  3. 名前や連絡先といった必要な部分をコピペ

  4. 処理の終わったシートを削除して名簿ファイルを保存

  5. 申込書ファイルを閉じて「転記済み」フォルダに移動(必要に応じてファイル名に日時や「転記済み」のようなテキストを追加)

 これを「未処理」フォルダの中にあるすべてのファイルに対しておこなっていきます。1つしかなければ1回で終了、10個あるなら10回、100個あるなら100回繰り返して終了になります。

フォルダの中のファイルを次々コピペするイメージ

 まず、日銀短観のデータをコピペする際にも使ったDir関数で「未処理」フォルダの中のファイルを取得してきます。

Sub 未処理フォルダの中のファイル名を取得()
Dim i As Long, bookname As String
bookname = Dir(UrlToLocal(ThisWorkbook.Path) & "\" & "未処理\")

    Do While bookname <> ""
        Sheets(1).Cells(i, 1) = bookname
        i = i + 1
        bookname = Dir()
    Loop

End Sub

 別に取得してきたファイル名をセルに書き出す必要はないのですが、動作を確認するときにステップ実行しながらきちんとファイル名を取得できているかを目で見て確認できるのでこのようにしました。
 あとは、シートのA列に書き出したファイルを順番に上の図のように開けて必要な部分をコピーして閉じて「転記済み」フォルダに移動する、を繰り返していけばいい、というわけです。
 事実、申込書が10枚あってもコピペは10秒くらいで終わりました。ファイルを開いてコピペしてリネームして閉じる、手で繰り返していたころは少なく見積もっても30分はかかっていたし、何より大きすぎた精神的なダメージがほぼゼロになりました。

地獄のコピペも一瞬で完成

 あんなに苦痛だったコピペが一瞬で終わるようになったということもありますが、何よりも自分であれこれ考えて書いたコードのとおりに機械が動いて(←当たり前ですが)くれることがすごく新鮮でしたね。職場の年配従業員の言いなりになるのではなく、自分でコントロールをしているという感じといったらよいのでしょうか。
 私はもうVBAの虜になってしまい「ほかにも自動化できるものはないか?」と自分のExcel業務(作業)を片っ端から自動化することに夢中になっていました。

が、職場でのVBA布教活動は不発に終わる

 私は、職場には他にもこうした地獄のExcel作業を延々とやっている人がたくさんいるのを知っていたので、そうした人たちに「VBA最高だよ!その作業一瞬で終わるよ!」と力説して回りましたが反応はイマイチでした。その本当の理由は今もって分かりません。
 「手でコピペをすることがイヤだ、絶対に耐えられない」と思う人は少数派なのでしょうか。「VBAなんか勉強するよりも手作業を我慢したほうがマシ」ということなのかもしれませんが、私にとっては意味のない無駄な作業に時間と労力を使ったあげく、成し遂げたとしても何らスキルの向上もはかれず成長も達成感もないどころか精神的ダメージをくらうというのは耐えがたく、「我慢」は選択肢には入りません。たとえプログラミングを身につけることが難しくて苦労をしたり時間がかかったりしたとしても、努力するほうを選びます。

ExcelVBA布教は困難を極める

この記事が気に入ったらサポートをしてみませんか?