本記事では、ExcelのVBAについてお話をしていきます。
Excelには、さまざまな関数や機能がありますが、それらを手作業で大量に入力していませんか?VBAを使えば、今まで手作業で時間をかけていたデータ入力、集計、印刷などの作業が、ボタン一つで完了し、大幅に効率化できます。
VBAとは何か
普段、私たちはスマートフォンやパソコンで「アプリ」を使っています。
そんなアプリを使うだけではなく、作成する人もいます。そして、アプリを作る人たちは「プログラミング言語」を使ってアプリを作ります。世界の言語に英語、中国語、フランス語などがあるように、プログラミング言語にも多くの種類があります。例えば、Java、C、C++、Pythonなどが広く使われています。
VBAもプログラミング言語の一つで、正式には「Visual Basic for Applications」といいます。1990年代にマイクロソフトが開発した「Visual Basic」を基にしたVBAは、Word、Excel、PowerPoint、AccessなどのMicrosoft Officeソフトウェアで使えるプログラミング言語です。VBAの文法は、Word、Excel、Accessで基本的に共通ですが、それぞれのソフトの特徴に応じて異なる部分もあります。
VBAでできること
VBAを使用すると、さまざまなタスクを自動化して効率化することができます。以下に、VBAでできる主なこととその具体例を挙げます。
1. データの一括入力・集計
2. グラフ・レポートの作成
3. ファイルやフォルダ操作
4. ユーザーフォームの作成
5. マクロの記録・再生
6. 定期的な処理の実行
7. メールの自動送信
8. 外部アプリケーションとの連携
VBAを使うための初期設定
VBAを使うには、WordやExcelなどのソフトが必要です。日本で発売されたExcelでVBAが使えるようになったのは1994年のバージョン5.0からで、以降ほとんどのバージョンで使用可能です。ただし、無料のWeb版Excel(Excelオンライン)ではVBAの作成・実行・編集はできません。
次に、VBAでプログラムを作成し、実行する手順を説明します。
1. VBEを起動してコードを作成する。
2. 作成したコードを実行する。
3. 実行結果を確認し、問題があればコードを修正して再実行する。
「VBE」は「Visual Basic Editor」の略で、VBAのプログラミングを行うためのエディターです。VBEはExcelに内蔵されていますが、初期設定では表示されていないかもしれません。
VBEの表示方法など、VBAを使うために最初に行うべき設定を3つ紹介します(Excelバージョンは「Microsoft Excel for Microsoft 365 MSO」を使用)。
初期設定(1)「開発」タブの表示
図1 「開発」タブ
Excelを起動し、メニュー項目(リボン)に「開発」タブがあるか確認。表示されていなければ、以下の通り、ファイル→オプション→リボンのユーザー設定で「開発」にチェックを入れてオンにする。
ファイル→オプション→リボンのユーザー設定(下図)
図2 リボンのユーザー設定
初期設定(2)ファイル形式
ExcelVBAで作成したプログラムを実行するには、Excelのワークブックを「Excelマクロ有効ブック(*.xlsm)」形式で保存する必要があります。通常の形式では実行できませんので、保存時に形式を変更してください。
普通にExcelで作業していて、そのワークブックを初めて保存しようとしたときは、以下のような画面になります。
図3「名前を付けて保存」ダイアログボックス
しかし、このまま保存するのではVBAで作成したプログラムを実行することはできませんので、「ファイルの種類」を、以下のように「Excelマクロ有効ブック(*.xlsm)」に変更して保存してください。
図4 ファイルの種類(Excelマクロ有効ブック形式)
初期設定(3)マクロの有効化
最後は「マクロの有効化」です。ファイル→オプション→トラストセンター→トラストセンターの設定で、マクロの設定を「VBAマクロを有効にする」に変更します。
ファイル→オプション→トラストセンター(下図)→トラストセンターの設定
図5 トラストセンター
マクロの設定→「VBAマクロを有効にする」を選択→OK
図6 マクロの設定
まとめ
今回の記事では、VBAとは何か、VBAを使うための初期設定について説明しました。
初期設定が完了すれば、次はいよいよ具体的な業務の自動化です。例えば、データの入力、集計、グラフの作成、レポートの自動生成など、やりたいことを実現するためのVBAコードを作成またはインターネットで入手して実行するだけです。
VBAコードの例「データの一括入力・集計」
以下のコードは、1から100までの行に「Data 1」から「Data 100」という値を入力します。
(Excel開発タブのVBAエディタで以下のコードを新しいモジュールに貼り付けて実行可能です)
Sub InputData() |
VBAを活用して日々の業務効率を向上させていきましょう!
- カテゴリ:
- テクノロジー
- キーワード:
- excel