連載
» 2020年09月07日 05時00分 公開

Tech TIPS:Excel自動化への第一歩 マクロ(VBA)を使えるようにする

Excelには、マクロ機能があり、上手に使うことで自動処理が行える。しかし、デフォルトではマクロを使うための[開発]タブが表示されておらず、マクロの作成や実行が行えない。そこで、[開発]タブを表示させ、マクロの作成と実行が行えるようにしよう。

[塩田紳二,著]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Office 2013/2016/2019/365


Excelのマクロは便利なのだが…… Excelのマクロは便利なのだが……
Excelでは、マクロを使うことでさまざまな自動化が行える。しかし、デフォルトではマクロの実行などに必要な[開発]タブが非表示となっており使うことができない。

 「Microsoft Excel(エクセル)」では、マクロを使うことで、機能を拡張したり、自動処理が行えたり、新たにワークシートで使える関数などを作ることができるようになったりする。基本的にはプログラミングの素養が必要となるが、マクロを使うことでExcelの世界が広がる。

 ただ、セキュリティ的な問題からExcelは、標準状態で[開発]タブが「オフ(非表示)」になっている。これは、指示を受けて意味も分からずマクロを動かしてしまうような操作を避けるためだ。[開発]タブの表示状態は、マクロ起動の可否を決めているのではなく、単にマクロ関連機能にユーザーがアクセスできるかどうかを決めているにすぎない。

 また、マクロはかつてOfficeの文書ファイルとともにメールで送られ、「悪意のあるプログラム」を実行させる手段としても使われた。しかし、現在では、マクロの入った文書ファイルは別の拡張子を使い、読み込む前に警告が表示されるなど対策が取られている。

 マクロが何であるかを理解して利用するなら、自分でマクロを使うこと自体がExcelのセキュリティを低下させ、「悪意のあるプログラム」を動かしてしまうことにはならない。

 日常的にExcelを使うなら、マクロを利用できるようにして、新しい世界の扉を開くのも悪くない。本稿では、マクロの利用に必要になる[開発]タブを表示させ、マクロの入力/実行/保存を簡単に説明する。ただし、マクロのプログラミングに関しては解説しないので、各自で学習していただきたい。

マクロの扉を開ける

 まずは、Excelのマクロ開発に必要な[開発]タブを表示させる。開発タブには、マクロの入力や編集、実行に必要な全ての機能が入っている。

 Excelで新規のブックを開き、Excelの[ファイル]タブを開き、左ペインの[オプション]をクリックする。

 すると、[Excelのオプション]ダイアログが開くので、左ペインで[リボンのユーザー設定]を選択する。左右に2つのリストが表示されるので、その右側のリストにある[開発]の前にあるチェックを「オン」にして、[OK]ボタンでダイアログを閉じる。

[開発]タブを表示する(1) [開発]タブを表示する(1)
デフォルトでは[開発]タブが表示されておらず、マクロを使うことができない。[開発]タブを表示するには、まず[ファイル]タブを開く。
[開発]タブを表示する(2) [開発]タブを表示する(2)
[ファイル]タブを開き、左ペインで[オプション]を選択する。
[開発]タブを表示する(3) [開発]タブを表示する(3)
[Excelのオプション]ダイアログの[リボンのユーザー設定]で、「開発」にチェックを入れて、[開発]タブを表示させる。これはExcel自体の設定変更なので、以後、[開発]タブは常に表示されるようになる。同じ手順で[開発]のチェックを外せば、[開発]タブは表示されなくなる。
[開発]タブを表示する(3) [開発]タブを表示する(3)
Excelのリボンに[開発]タブが表示される。

 これでExcelのリボンに[開発]タブが表示されているはずだ。なお、これは、Excel自体の設定となるため、今後、他のブックを開いても[開発]タブは表示されたままになる。他人のPCを一時的に操作するような場合、[開発]タブを「オン」にしたら、終了時に元に戻しておこう。標準で「オフ」になっているように、マクロを利用しない人にとっては、[開発]タブは不要だし、マクロを誤って実行してしまったり、間違って操作したりすると、見たこともないウィンドウが表示されるなど混乱が生じる。[開発]タブを非表示に戻す手順は、前記と同じで、チェックを「オフ」にするだけだ。

[開発]タブでまず覚えるべき2つのアイコン

 [開発]タブには、多くのアイコンが並んでいるが、取りあえず使うのは、左側のものだけだ。初めてマクロに触れるような場合なら、必要なのは左側にある「コード」部分の[Visual Basic]と[マクロ]のアイコンに限られる。

[開発]タブでよく使うのは左側の2つのアイコン [開発]タブでよく使うのは左側の2つのアイコン
[開発]タブには、さまざまなボタンが並ぶが、最初の段階で利用するのは左端の2つだけだ。

 [Visual Basic]アイコンは、マクロ(VBAプログラム)を入力したり、編集したりする場合に使う。このボタンを押すと、「Visual Basic Editor(VBE)」ウィンドウが開く。

[A]

「Visual Basic Editor(VBE)」ウィンドウの構成 「Visual Basic Editor(VBE)」ウィンドウの構成
VBEは、マクロを入力/編集/デバッグするときに利用する。ウィンドウは大きく3つに分かれていて、左側がマクロの編集対象を指定するための「プロジェクトエクスプローラー」、その下が「プロパティウィンドウ」、右側がエディタとなる「コードウィンドウ」である。

 [マクロ]アイコンは、マクロを実行したり、デバッグしたりする場合に利用する。クリックすると[マクロ]ダイアログが開く。

[B]

[マクロ]ダイアログの構成 [マクロ]ダイアログの構成
[マクロ]ダイアログは、マクロの「実行」「デバッグ」の開始が指示できる。また、「編集」や「作成」の指示が行えるが、作業はVBE側で行う。

 なお、Excelは、ユーザーの行った操作をマクロとして記録し、後から再実行したり、編集したりする機能を持つが、ここでは解説しない。

マクロを作成、実行して保存

 マクロを作るには、[Visual Basic]アイコンをクリックしてVBEを開く。ウィンドウの左側は、現在開いているブックなどのオブジェクトを表し、右側にプログラム(マクロ)を入力する。もちろん、マクロはVBAの文法に沿ったものを入力する必要がある。ここでは、マクロを「作成」「実行」「保存」する手順だけを解説する。

 新規にマクロを作る場合、[マクロ]ダイアログから始める方法と、VBEから始める方法の2つがある。手順としては前者の方が簡単で初心者向きだ。ただし、マクロ作成のたびに、その管理単位である「標準モジュール」が増えていって混乱を招きやすい。最初のうちは[マクロ]ダイアログから作成しても構わないが、慣れたら、後者の手順でVBEを直接起動してマクロ作成を開始するようにしよう。

[マクロ]ダイアログからマクロ作成を始める

 [開発]タブで[マクロ]ボタンをクリックすると、[マクロ]ダイアログが現れる。その[マクロ名]に、作成したいマクロの名前を入れ、[作成]ボタンを押すとVBEが起動する。

 例えば、マクロ名として「shioda_test」と入力し、[作成]ボタンを押せば、VBEのコードウィンドウには同名のサブルーチンが作成された状態となる。ただし、作られるのはサブルーチンの枠だけで、中身は何もない。

[マクロ]ダイアログからマクロを作成する(1) [マクロ]ダイアログからマクロを作成する(1)
[マクロ]ダイアログからマクロ(VBAサブルーチン)を作成するには、「マクロ名」欄に作成したいマクロの名前に入力し、作成ボタンを押す。
[マクロ]ダイアログからマクロを作成する(2) [マクロ]ダイアログからマクロを作成する(2)
VBEが起動し、VBE側に自動的に標準モジュールが作られ、入力した名前のマクロ(サブルーチン)の枠だけが入力された状態となる。
[マクロ]ダイアログからマクロを作成する(3) [マクロ]ダイアログからマクロを作成する(3)
サブルーチンの枠内にマクロの本体を入力する。

VBEからマクロ作成を始める

 VBEからマクロ作成を行う場合には、前述の手順でVBEを起動後、[挿入]メニューの[標準モジュール]を選択する。ブックを表すツリーの下に[標準モジュール]が作られ、その下に「Module1」が置かれる。VBEでは、左側のツリー内のオブジェクトをダブルクリックで選択すると、右側の領域は、そのオブジェクトのマクロ編集状態となる。

VBEからマクロを作成する(1) VBEからマクロを作成する(1)
VBE側でマクロを作成する場合、VBEを起動して[挿入]−[標準モジュール]を選択して、標準モジュールをプロジェクト(ブック)に挿入する。
VBEからマクロを作成する(2) VBEからマクロを作成する(2)
プロジェクトに「Module1」が作成される。コードウィンドウには何も入力されていない状態である。
VBEからマクロを作成する(3) VBEからマクロを作成する(3)
コードウィンドウでマクロを入力する。

マクロは標準モジュールに記述するのが基本

 マクロは、特定のブックやシートに関連するものとしても作成できる。一方、標準モジュールに置くことで、ブック全体で共通して利用することも可能だ。まずは、標準モジュールの「Module1」にマクロを置くため、ここを編集状態とする。なお、[挿入]メニューから「標準モジュール」を選択した直後は、作成された「Module1」が自動的に選択状態になっている。

 慣れないうちは、ブックやシートにマクロを書いてしまうことがある。[コード]ウィンドウにマクロを入力する前にプロジェクトエクスプローラーで正しいものを選んでいるか確認する。

マクロを記述する

 この時点では、まだ何も作っていないので、「Module1」は空白のままか、あるいは中身のないサブルーチン(プログラムの中でよく利用する作業などを1つにまとめたもの)が記述されているだけだ。ここにサブルーチンや関数の実体を書き込んでいく。

 記述から保存までを実際に試してみるなら、右側の領域に以下のテキストを入力する。非常に簡単ではあるがこれがマクロ(VBAのプログラム)である。

Sub shioda_test()
    MsgBox ("Hello World")
End Sub

サブルーチンのサンプル

 このマクロには「shioda_test」という名前がついている。それは1行目に記述されている。2行目はメッセージボックスを表示するMsgBox関数だ。3行目はサブルーチンがここで終わることを示すもので、1行目の「Sub」と対になっている。

作成したマクロを実行する

 このマクロを実行するには、Excelの[開発]タブにある[マクロ]ボタンを使う(VBEは閉じてしまっても構わない)。[マクロ]ダイアログが表示され、現在実行可能なマクロの一覧が「マクロ名」に並ぶ。ここでは、もちろん、先ほど入力したマクロ(「shioda_test」)が表示されている。これをリストから選択して「実行」ボタンを押せば、マクロが実行され、「Hello World」と書かれたメッセージボックスが表示される。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。