プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。
今回から数回にわたって「Excelマクロ/VBAで始める業務自動化プログラミング入門」を書くことになった。正直言って、ExcelのマクロやVBA(Visual Basic for Applications)は数十年前にちょっと触っただけで、全くの初心者といっても過言ではない(2014年当時)。本連載はプログラミングの初心者を対象にしているので、筆者も勉強しながら「読者の皆さまと一緒にExcelマクロ/VBAについて学んでいければ」と思っている。
なお、本連載を執筆するときに使った筆者のソフトウェア環境は、OSが「Microsoft Windows 10 Professional」(64ビット)で、Excelは「Microsoft Excel 2016」だ。この連載では原則として「Excel」というとMicrosoft Excel 2016の使用を前提としているが、お手元のExcelでもできることに大きな違いはないはずだ。
本連載は、2014年にWindows 8.1とExcel 2013で解説していたものを、Windows 10とExcel 2016用に改訂している。Excel 2013とExcel 2016の主な違いとしては下記が挙げられる。
その他、本連載では取り上げていないが、「ピボットテーブル」での変更点が若干あるようだ。また、「グラフ」の種類も増えているので、「グラフ」を扱う回で解説する。VBAの構文自体に変更はない。
まず、プログラミングとは一体何なのか、そしてプログラムが作れると何がうれしいのかについて、筆者の私見を書いてみたいと思う。
一般的にいわれているように、プログラミングとは、「人間が意図した命令を、何らかのプログラミング言語を用いて、コンピュータ上で動作させる行為である」ということだ。命令の記述(プログラム)は、文字列を使って書く(コーディングという)だけではなく、最近では、「Scratch」などグラフィカルに定義するツールもある。
筆者はExcelのVBAプログラミングはほとんど初心者に近いが(2014年当時)、Microsoft Visual Studio(以下、VS)を使ったプログラム経験は結構長い。使用プログラミング言語は主に「Visual Basic(VB.NET)」である。長年プログラムを書いてきて思うのだが、プログラミングの面白さは、自分の書いたプログラム(命令)が自分の意図通りに動いたときの、あの感動である。
筆者が、生まれて初めて書いたプログラムは大昔のMS-DOS※1時代の「QuickBASIC※2」を使ったものであるが、数行のプログラムが動いたときの感動は今でも忘れられない。そして、結局その感動が忘れられないまま、現在もプログラマーとして生きている。
※1MS-DOSとはMicrosoft Disk Operating Systemの略でマイクロソフトのOSを指す
※2QuickBASICとは、MS-DOS上で動作する、マイクロソフトの開発したプログラミングの開発環境
ちょっと話が脇にそれてしまった。元に戻そう。これから初めてプログラムを経験する読者に言っておきたいのは、初めて書いたプログラムが動いたときの感動は一生忘れられないものだということだ。自分の人生さえも左右してしまうものである。ExcelのVBAにしてもしかりだ。
VSには無償版も用意されている。環境構築のためにインストール作業を行う必要がある。このインストールが結構時間がかかって、筆者には苦痛だ。
その点、ExcelやWord、AccessなどMicrosoft Officeは、現在ほとんどのWindows PCやタブレットにプリインストールされており、インストールの手間もない。PCやタブレットを購入すれば、すぐに「VBE(Visual Basic Editor)」という開発環境が利用できるようになっている。何とも、至れり尽くせりではないか。VSのように自分でインストールして環境を構築する必要もない。
「VBEはプログラミング初心者にうってつけのプログラム開発環境だ」と筆者は思っている。
また、VSで開発するプログラムは、仕事で使うアプリケーションを作成する場合もあるだろうし、趣味でゲームなどを作る場合もあるだろう。しかし、Excel VBAで行うプログラミングは、原則として仕事で使う、作業の効率化を図る目的で作成される場合が多い。Excel自体が仕事で使うものなので、当たり前といえば当たり前だが(例外としてVBAを駆使して「インベーダー」「テトリス」などゲームを作る強者もいる)。
データの追加や、数値の複雑な計算など、これらをVBAで自動化しておけば、手動で行うより、はるかに短時間で処理でき、いつも残業などで処理していた作業が、勤務時間内で処理でき、仕事に余裕ができ、定時で退社して自分の時間を謳歌する、といったことも十分に可能だ。
ぜひ、今回の連載でVBAをマスターして、業務の効率化を図り、ゆとりある人生を送ってみてはいかがだろうか。
前置きが長くなってしまった。本題に入ろう。
最初は、「マクロ作成の基本」からだ。とにかくマクロ作成の基本を知らなければ、何事も始まらない。ここからは、「マクロ」を使用できるようになるまでの手順をメインに解説する。
「マクロ」とは、Excelなどのアプリケーション上で行う動作の手順がまとまったものだ。動作の手順はプログラミングすることもできれば、[マクロの記録]機能で記録することもできる。例えば図1のような社員データがあり、それを別な場所にコピーする場合は、通常は範囲を選択して、コピー&ペーストで別なセルに貼り付ける処理を行う。
この図のように少ないデータなら問題ないが、何万件もあるデータをいちいち選択しては貼り付けを行っていたのでは、作業効率が悪い。そこで登場するのがマクロだ。
Excelで行うプログラミング用の言語はVBA(Visual Basic for Applications)と呼ばれ、「Visual Basic」を含んでいる。この違いは何だろうか。
Visual Basic(VB.NET)と異なる点は、VBAはExcelやWord、Access上で実行できるプログラミング言語で、ExcelやWord、Accessの機能を思う存分使えるようにVisual Basicをベースに改良した点だ。Visual Basic(VB.NET)を使って、VBAと同じことをしようと思うなら、膨大な行数のプログラムを書かねばならないだろう。
またマクロは、あくまでもアプリケーション上で行う動作の手順がまとまったものであり、「マクロの記録」機能だけでも作ることができる。ただ、その記録がVBAというプログラミング言語で記述され、保存できるのだ。[マクロの記録]機能だけで自動化したい動作の手順をプログラムとして記録し、そのプログラムに書かれているVBAの記述を書き換えることで、機能を追加したり、さらなる作業の省略も可能となる。もちろん[マクロの記録]機能に頼らず、一からVBAのプログラミングでマクロを作ることも可能だ。
マクロを記録するには[開発]タブをクリックすることから全てが始まる。しかし、デフォルトではこの[開発]タブはExcelのメニューには表示されていない。では、どうすれば[開発]タブが表示されるかを解説しよう。
マクロの作成や編集の際は、[開発]タブにあるアイコンをクリックする。[開発]タブには、「マクロのセキュリティ」「マクロの一覧」「マクロの編集画面を開く」アイコンが登録されている。しかし、インストールされているExcelをそのまま使っていても[開発]タブは表示されていない。ここからは、[開発]タブの表示方法について解説しよう。
まず、Excelメニューの[ファイル]→[オプション]と選択する(図2)。
次に、表示される[Excelのオプション]から[リボンのユーザー設定]を選択する。[メインタブ]内の[開発]にチェックを付け、[OK]をクリックする(図3)。
すると、Excelのメニューに[開発]タブが追加される(図4)。
Copyright © ITmedia, Inc. All Rights Reserved.