マクロを作ってアドイン登録

毎月のルーティン作業で一番嫌いなのが、ある拠点に提出するエクセルファイルの更新作業。複数あるのだけれど、いずれも不必要にセル(列)の結合がされている。エクセル方眼までいかないまでも、非常に迷惑。エクセル方眼はまだ申請用紙のフォーマットに合わせるため、とかなんとか言い訳を受け入れられるけれど(それでもできるだけやめてほしい)、私が毎月格闘するエクセルレポートは明らかに作成者が無計画にフォームを作った結果だろうな、と思われるもの。慌てず、あと5分くらい設計図を考えれば、こんなフォームで私の時間が奪われずに済んだだろうに。

私は後々の面倒臭さを回避したい人間なので、エクセルでフォーマットを作れ、と言われたら、時間がかかるタイプ。私が想像するに、私の大嫌いなフォーマットの作成者は、一つ一つの作業が速くて、一つ一つコピペして、行の高さを変更して、という作業が苦じゃないタイプなんだろうと思う。

セルが結合されたら発生しちゃう面倒くさい作業

行の高さの自動調整が出来ない。

一時期、この行の高さを調整するタスクが大量に舞い込んできたので、調整用マクロを作ったのだけど、そうしたら、更に「調整しておいて」と言われることが増えたので、エクセルのアドインとして登録。この他にも、各シートの表示倍率を統一してA1セル選択した状態にするマクロとか、別ブックからのリンクがある場合にリンクを削除するマクロ、シートインデックスを一番左に作るマクロをアドインとして登録している。

「わざわざアドインとして登録するまでもない」と思えるような作業でも頻繁に発生するのであれば登録しておいた方がいい。コーヒー休憩に行く時間くらいは作ってくれるはずだ。

マイクロソフトが高さの自動調整の改良をしてくれることを切に願います。(変な使い方を考える人は、私を含め、減ることはないと思う。)

Advertisements

少しでもラクをする仕組みを作っておく

繰り返し発生する業務は出来る範囲で自動化するようにしている。

自動化するためには、まずタスクの処理方法を整理。プログラムを書けるかどうかは気にしない。自分の作業順に書き出してから、冷静に見てみると意外にヘンテコな手順を踏んでいることに気づいたり、いらない手順が見えてくる。
次に、自動化出来そうな部分と、手作業で手を打つ部分に区別する。毎月発生するエクセルのタスクは同じ様な作業が多いので、以前に作ったコードを再利用
で、最後に前までは出来なかったことで、今なら出来そうなことを追加しておしまい。この時、再利用のコードの見直しもしておく。

ボタンをポチッと押したら全自動で、というわけではないので、手順メモを作成しておくことが重要。(最初に手順を書き出したメモの再利用。)

同じことを繰り返していると作業自体早く出来る様になってくるけど、急にタスク量が増えて余裕がなくなってくるとミスが発生しやすくなるし、こんなちょっとした仕組みが役に立つ。
ここ数週間、突然のタスクにテンパりつつも何とかやり遂げられたのには、これまでコツコツ作ってきた仕組みがあったからかもしれない。

エラーメッセージで数時間

世の中にはこんなしょうもないことに時間をかけなくちゃいけないのか、とガックリくるようなタスクがいっぱいあるのだと、今の会社に移って嫌というほど思い知った。

例えばどのようなタスクか。

バカバカしいことこの上ないが、エクセルの行の高さを調整する、というもの。

フォーマット作成者、レポート作成者が、もう少し想像力を働かせたらこんな業務は発生しないはずだ!

行を選択してダブルクリックすれば自動調整出来る、と思うかもしれないが、それはセルの結合がない場合のみ有効な方法。敢えてセルを結合させている理由が全く分からないフォーマットというのが私をイラつかせるが、勿論、指摘をするなんて大それたことはしない。せめてレポート作成者が気を利かせて、提出前に体裁を整えてくれるなら。。。

更に面倒なのは、取りまとめ担当が提出順にランダムに報告シートをまとめるとこ。

上司からのリクエストは、「全拠点のレポート最終版ファイルが届いたら、プリントアウトしてちょ」というものだけど、額面どおりに受け取っちゃー、次の瞬間、溜め息を聞くことになる。細かいのだ。

ということで、報告書ファイルが届いたらすべきことは、

1) シートを毎回同じ順に並べかえる

2) 行の高さを調整する

3) ヘッダー・フッターを設定する

4) 印刷範囲を設定する

の4つ。

そもそも私の作業スピードの遅さもあるが、手作業だと1時間以上かかって、軽くめまいをおぼえた。行の高さ調整ってそれほど面倒。

ということで、マクロを作成。

最後に目視で確認はする必要アリのやや中途半端なものだけど、それでも10分程度で仕上がるからこれ以上は作り込まなくていいかなと。

そこそこ満足なマクロだけど、当初想定していなかった問題も出てきたりすることがある。

例えば、報告者が行の高さの上限を無視したとんでもなく大量の文字を打ち込んでいたり。

→そういう場合には、フォントサイズを小さくするようメッセージを表示。

しかし、今日のエラーは原因が全く分からず数時間。もう手作業の方が早い。

原因

シート名の最後にスペースが入っているものがいくつかあったため。

間に取りまとめ担当が入るとやや面倒なんじゃないかと思い始めている。「お忙しそうですから手伝いましょうか」と言えたらどれほどいいだろう。。。