私は根っからの文系人間ですが、なぜかマイクロソフト社Windowsのアプリケーション「Excel」の操作を自動化する「マクロ」作成はとても好きです。
パソコンを使った事務仕事は、同じ作業を繰り返し行うルーチンワークが必ず存在します。
それをボタン一つで行えるようにすれば、アナログで同じ作業を行うより作業時間がとても短縮できます。
仕事は正確にかつ最大限に効率化を図りながら成すことが信条なので、一度基本の操作を登録しておけばいつでも使うことができる「マクロ化」は、仕事上必須だと言えるでしょう。
今まで仕事で培ったなかで普遍的に便利だと思うExcelマクロ知識をこれから時々ご紹介していこうと思います。




マクロを効率的に学ぶためのポイント

マクロを作成し使いこなす人は、プログラミング知識やIT知識も豊富なのでは?と思われてるかもしれません。
しかし私は完全な文系ですし、マクロ作成を始めたのも手作業で一つひとつ作業するのと同じことがマクロボタン一つで勝手に処理してくれるなら、そちらの方が絶対に効率的だし正確だと思ったからです。
マクロ作成を始めたのは、2000年問題でやいのやいのと物議が起こっていたWimndows98の時代。

同じ文章を100社以上の企業に送るために宛先の会社名と所在地を変えて1枚1枚プリントアウトする業務があり、マクロを作成してボタンひとつで自動的に宛先と所在地だけを入れ替えて次々にプリントできないものかと思ったのが始まりです。
マクロ作成前は、ファイルをいくつもコピー&ペーストして、1つずつ開き、会社名と所在地を入れて、プリントアウトしていました。

事務作業にはこのようなものがいくつもあるため、早く確実に作業ができるように仕事のやり方を変えていきたいと、マクロの独学を始めました。
最初は、何から学べばいいのかもわからず手さぐりの状態でしたが、自分がマクロにしたいことをノートに書いていき、その動きをするマクロを調べて組み合わせながら少しずつマクロを覚えていきました。

マクロは漠然と知識を詰め込んでいくのではなく、普段の業務をするうえでマクロにやってほしい作業を具体的にイメージしながら「マクロで少しでも仕事を効率化させる」という目的をもって取り組めば、マクロを学ぶモチベーションは飽きることなく比較的維持されると思います。

効率的にマクロを学ぶためには、

1. 専門用語をやみくもに暗記しない
 マクロを学ぼうとすると「コレクション」「オブジェクト」「プロパティ」「メソッド」「プロシージャ」などのマクロ専門用語が数多く出てきます。
これらの意味を理解するに越したことはないですが、普段の仕事上でエクセルを扱うレベルでは、特に必要な知識ではありません。

マイクロソフトのホームページにある説明と私なりの解釈を併記してみると、

MS「sheetsコレクションを取得するのには、Workbookオブジェクトのsheetsプロパティを使用します。」
 ↓
「シートに関する作業をしたいときは「Sheets」という命令を使う」

MS「新しいシートを作成し、コレクションに追加するには、addメソッドを使用します。」
 ↓
「シートを追加したいときは「Sheets(“シート名”).add」と書く」

MS「sheet(インデックス)にシート名__ またはインデックス番号を使用して、1つのChartオブジェクトまたはWorksheetオブジェクトを返します。次の使用例は、Sheet1というシートをアクティブにします。」
 ↓
「シートを「Active」(選ばれた状態)にするには「Sheets(“シート名”).activate」と書く」


難しい言葉の知識ではなく「○○のときは△△と書く」と必要最小限だけ覚えていればOKなのです。

これなら勉強をはじめたばかりの人でも理解できるのではないでしょうか。

2. コードはどんどん再利用する
何度かマクロを作っていると「以前作ったマクロと同じ動作をさせたい」ことが増えてきます。
そのときは、以前に書いたコードを再利用しましょう。

最初から書くと時間がかかり、デバックエラーが出るリスクも高くなるので、うまく動いたコードをそのまま再利用することをお勧めします。
以前に書いたコードを再利用することで、作成時間をぐっと短縮できることも多いので、自分の作ったマクロのコードで、使いまわせそうなものはいつでも取り出せるようにサンプルコードとしてコピーしておきましょう。
必要な部分だけ修正すれば、手間も時間もかからず、エラーも出にくくなります。






変数について

マクロには、変数という概念があります。
変数は、数字や文字をしまっておく箱のようなもので、さまざまなパターンに対応してくれます。

変数には箱の中に入れられるものによって、「整数型」や「通貨型」「文字列型」などいくつかの型がありますが、すべてのデータに対応する「バリアント型」という型があります。
バリアント型であれば、どんな値が入ってもエラーは出ないので、この型さえ覚えておけば問題ありません。

マクロを学ぶ醍醐味は同じ作業を繰り返し処理させることにあります。
手作業を何度も繰り返す必要がなくなるので、業務を格段に効率化させることができます。
この繰り返し処理の命令の書き方も複数存在しますが、「Do 〜 Loop Until」さえ覚えればどんな条件でも繰り返し作業をさせることができるので、まずはこちらを使えるようになりましょう。






マクロ具体例1〜空白行の挿入

「ここに2500行の売上データがあるんだが、見にくいので1行おきに空白行を挿入してほしい」

上司にこのような作業を頼まれたら、あなたならどうしますか?

手作業で1行ずつ「『右クリック→挿入』をするのであれば、1行挿入するのに3秒かかるとして……合計7,500秒。
終わるまでに2時間以上かかることになります。
しかし、この作業も下のサンプルマクロを使えばたった数十秒で完了します!

Sub 新規行挿入()
  Dim i As Long
  For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    Rows(i).Insert
  Next i
End Sub


Cells(Rows.Count, 1).End(xlUp).Row

これで、最終行を取得します。

Rows.Count

は、シートの全行数です。

Step -1

これで、1ずつカウントダウンされます。


2時間以上かかるはずの作業が、ボタン一つでミスなく数十秒で終わります。

このようにマクロを学ぶと、仕事への取り組み方が劇的に変わります。
ひたすら目の前の作業をこなすだけだったのが、まず作業にかかる前に『これはマクロでできないか?』と業務全体を見る思考ができあがります。
普段の業務をいかにマクロで処理をさせられるか、という視点で考え直すことで、仕事の全体の改善策を考えられるようになり、時間に追われて単純な繰り返しの作業をする必要がなくなります。

ぜひ自分の仕事にあったマクロを作りあげ、エクセル仕事が一気に楽になる感覚を味わってください。






まとめ

今回の記事はお役に立ちましたでしょうか。

マクロを知らないために、データを作成するだけであっという間に1日が終わってしまい、限りある業務時間がアナログのエクセル仕事にどんどん奪われていると、嘆いている方もおられるかもしれません。
しかし、少しマクロを知るだけで、仕事の効率は大きく変わります。
そしてエクセル処理をマクロにやってもらっている間に、あなたは別の仕事の作業に時間を使うことができるのです。
ぜひマクロの知識を広げて、仕事がもっと楽になる方が増えることを心から願っています。

4時間のエクセル仕事は20秒で終わる ノンプログラマーのGAFA部長が教えるExcelマクロ入門

筆者プロフィール

こらっと

大阪生まれ。団体職員兼ライターです。
平日は年季の入った社会人としてまじめに勤務してます。
早いもので人生を四季に例えたら秋にかかる頃になり、経験値は高めと自負しています。
このブログがいきいき生きる処方へのきっかけになれば幸いです。

お問合せはこちらで受け付けています。
info.koratwish@gmail.com


海外からの人材受け入れ団体職員として働いてます。
遡ると学生時代のアルバイトでアパレルショップの売り子から始まり、社会人となってから広告プロダクションでコピーライターとして働きました。
結婚・出産を経て、印刷会社のグラフィック作業員として入社。
社内異動により⇒画像・写真加工部⇒営業部(営業事務)⇒社内システム管理者と、いろんな部署を渡り歩きましたが、実母の介護のためフルタイムでは身動きが取れなくなり、パート雇用として人材受け入れ団体に時短勤務転職しました。

2019年実母が亡くなり、パートを続ける理由がなくなったため物足りなさを感じる毎日でしたが、年齢の壁など一顧だにせず(笑)再びフルタイムで働きたい!と就活し続けた結果、別の人材受け入れ団体に転職しました。
責任も増えましたが、やりがいも増えました。

デスクワーク経験が長く、Office関係の小ワザや裏ワザ、社会人としての経験を共有できれば幸いです。

家族構成は夫がひとり、子どもがひとり
キジ猫のオス、サバ猫のメスの5人家族です。

趣味は、読書、語学学習、ホームページ制作などなど
好奇心が芽生えたら、とにかく行動、なんでもやってみます。

猫のフォルムがとにかく大好きで、
神が創造した生物の中で一番の傑作だと思ってます。
ちなみに「こらっと(korat)」は
タイ王国のコラット地方を起源とする
幸福と繁栄をもたらす猫の総称です。




このブログは
bootstrapテンプレート
Maxim Theme.の無料版を使わせていただいてます。

似顔絵は、「似顔絵メーカー」で作成しました。