Excelにはマクロという作業を自動化する機能がついています。この機能を使えば一連の処理を自動化し、業務の効率化を図れます。
作業の自動化とは、コンピューターに特定の処理を実行するように命令することです。
一般に私たちはプログラミング言語を使ってプログラムを書きます。このためマクロと聞くとプログラミングが連想されて「難解なもので素人には使いこなせない」というイメージを多くの人が抱きがちです。マクロを使う場合もプログラミングの専門的な知識が必要と思う人が多いのも、うなずけるところです。
しかし、プログラミングがわからなくてもマクロは使えます。専門知識は必要ないです。マクロはExcelを普段使うのと同じ要領で作成できます。
しかも、マクロを活用すればいろいろな作業を自動化できます。これまで数時間を要していた業務が、マクロを導入した結果、ワンクリックでできるようになるのです。
マクロを使えば手間のかかる作業を自動化して、作業時間を大幅に短縮させることができます。自動化がそのまま時短につながるのです。このように便利なマクロですから仕事でExcelを使う人であれば、是非使いこなしたいものです。
本稿では、そもそもマクロとは何か、VBAとマクロの違い、マクロを使って何ができるのか、そして実際の使い方までを紹介します。本稿を読めば、マクロについて全く知識のない方であっても基礎的な知識を理解でき、簡単なマクロの実装を行えるようになります。
Excel(エクセル)のマクロの基礎知識
マクロとは何か?
マクロとは、Excelによる複数の操作を記録して自動的に実行する機能のことです。毎日繰り返す単純作業を自動化すれば時短につながります。例えば、ブック1のデータをコピーして別のブックに貼り付けて保存するような作業です。毎月行うことが義務付けられている単純作業をExcel自身が行えるように設定するのです。
Excelのマクロを利用すれば、作業者による画面上の操作を覚えさせることでマクロを作成できます。いくつかの工程を自動処理できるようになるのです。結果的にプログラミング不要で誰でも作業の自動化を行えます。
VBAとマクロの違いは何か?
マクロと混同されやすいのがVBAです。VBAとは「Visual Basic for Applications」の略です。
両者は似ていますが別物で、VBAとはOffice製品でマクロを開発するために用いるプログラミング言語です。
マクロはVBAによって動作しています。VBAを使えばワードやパワーポイントなどの他のマイクロソフト社製品上でも動くプログラムを作れます。
マクロは操作を自動化するための機能そのものであるのに対して、VBAはマクロを処理するためのプログラムです。高度な操作を自動化するためにはVBAを使ってプログラミングしなければなりません。
VBAと他のプログラム言語との違いは何か?
VBAはOffice製品による作業を自動化するためのプログラミング言語です。Office製品を使わないことを前提としたアプリケーションは作れません。
つまりVBAを使ってWEBアプリケーションを作りたいと思ってもそれはできないのです。WEBアプリケーションを作りたいのであれば、VisualBasicを使わなければなりません。
マクロを使ってどんな作業を行えるのか?
マクロを活用すれば毎日のルーティン作業を自動化できるのです。以下の3つの作業はマクロを利用して自動化できる事例です。Excelの複雑な操作がボタン一つで完了するのです。
①単純作業の自動化
Excelを使っているとデータをコピーして別のブックに保存するといった作業に出くわします。マクロを利用すれば、この作業を自動で行えます。
イメージとしては自分の分身が作業を行ってくれるという感じでしょう。事前にプログラムを作っておけば同じ操作を簡単に行うことができます。
②メール送受信の自動化
マクロを利用すれば、メールソフトとExcelを連携させることができます。Excelで作った一覧表にメールを送信するプログラムを作れば、メール送信は簡単に自動化されます。
③WEBからのデータ取得の自動化
Googleの検索結果一覧をExcelに一覧データでまとめるという処理を行うことができます。定期的にデータ収集する業務があれば、マクロを利用して数秒で業務が完了するのです。手作業で行うのとは対照的といえます。
マクロを作成するための2つの方法
マクロの作成方法には、「マクロの記録」という機能を利用して自動記録する方法と自分でVBAのコードを書く方法があります。以下では各々の方法を解説します。
マクロの自動記録とは?
これを使えば作業者はExcelの操作をするだけでよく、ExcelがVBAによるプログラムを自動的に作成してくれます。単純な操作であればプログラミング知識は不要といわれる所以です。知識がなくともマクロを作成できるため非エンジニアにとっては大きなメリットといえます。
ただし、自動記録機能にはデメリットもあり「もし~であれば、…する」という条件分岐と「1行目から1000行目まで同じ処理をする」という繰り返しができません。
以下ではマクロの自動記録の使い方を手順別に説明します。
手順①
「開発」タブにある「マクロの記録」をクリックします。
手順②
ダイアログボックスが表示されたら名前と保存先を決めます。保存先は「作業中のブック」「新しいブック」「個人用マクロブック」の3つから選びますが、「個人用マクロブック」を指定しましょう。ここに保存すれば同じコンピューターを利用している限り、わざわざブックを開かなくてもマクロを実行できます。
「OK」をクリックすればマクロの記録が始まります。必要な操作を実行して記録します。
手順③
自動化した操作が終われば、「記録終了」をクリックします。
手順④
確認するためにマクロを実行します。ダイアログボックスを開き、作成したマクロを選択して実行をクリックします。
マクロの手書きとは?
マクロは手書きで書くこともできます。自分でコードを書ければできる作業が格段に広がります。自動記録ではできない条件分岐と繰り返しもできます。これは大きなメリットです。
しかし、デメリットもあり、マクロを手書きするためにはVBAに関する一定の知識やスキルが必要ということです。
次の項目ではVBAコードの書き方を説明します。
VBAコードの書き方
以下では基本的なVBAコードの書き方を説明します。VBAを自作できるようになるとITスキルも高まりますし、次のようなメリットもあります。
VBAを習得するメリット
・手軽にプログラミングスキルが身につく。
VBA以外のプログラミング言語の場合、開発環境の構築が必要です。しかし、VBAはOfficeがあればすぐに始められます。初心者がプログラミングを始めるにはかなり敷居が低いです。
実際エンジニアやプログラマーでない人がVBAを活用しているケースも少なくないです。また、インターネット上にはVBAについて解説するコンテンツが豊富にあります。非エンジニアが独学で習得できる環境が整っているのです。
しかも、プログラミング言語は基本構造が共通しており、VBAを通じて習得したプログラミングの知識は他の言語を学ぶ際にも活きるものです。
・複雑な業務でも自動化できる。
Excelのマクロの場合、複雑な業務を自動化するのは難しいのが現実です。しかし、自分でVBAのコードを書ければ、細かいカスタマイズまで自由自在に自動化できます。
VBAを学んでいくことで、自然と業務の効率化を考える癖が身につきます。どうすれば業務を効率化できるか常に考え、提案できるスキルがあれば仕事で役立つのは確実です。
コードの編集方法
VBAコードの編集を行うためには、VBE(Visual Basic Editor)を使います。
手順①
「開発」タブ中の「Visual Basic」をクリックします。
手順②
VBEが起動します。
手順③
プロジェクトエクスプローラーを右クリックして、「挿入」から「標準モジュール」を選択します。
手順④
標準モジュールのウインドウが開くので、VBAのコードを入力します。
今すぐVBAのコードを試してみたい人へ
マクロとVBAの便利さはわかったけれど、コードの入力は難しそう。そのように感じる人は少なくないと思います。
そこですぐに利用できるVBAのコードを紹介します。以下のリンクからサンプルファイルをダウンロードしていただければ、すぐにVBAを試すことができます。
https://fastclassinfo.com/entry/vba_ie_yahooauction/
最後に
本稿ではマクロの仕組みや設定の手順など基本事項について説明しました。可能であれば、早速自分でマクロを組んでみましょう。本稿でもサンプルコードのリンクを示してあります。
たとえサンプルコードのコピペであっても自作したマクロがうまく動くととても感動します。是非試してみましょう。きっとマクロの奥深さに気づくはずです。
もっとも、ここで紹介したのはマクロを学ぶ際の最初の一歩に過ぎません。中上級者を目指すためには数カ月の学習期間が必要でしょう。
現在は書籍はもちろん、WEBサイトやSNSなど手軽に学べるツールがあふれています。これらを活用して知識を深めればさらに便利にマクロを活用できるでしょう。マクロを使えれば見える世界も変わります。
是非マクロ初心者を脱して社内で頼られる存在を目指して下さい!