エクセルをより効率的に使いこなしたいのであれば、VBAについて学習するのがおすすめです。
しかし、毎日のようにエクセルを使っていてもVBAについては「よくわからない」といった感想を抱く方が多いかもしれません。
そこで、今回の記事では、初心者でも理解しやすいように、VBAについて概要や基本コードなどを解説します。
プログラム言語の一種「VBA」とは?
VBA(Visual Basic for Applications)とは、エクセルをはじめとしたMicrosoft Officeに含まれるアプリケーションを操作するために使われるプログラム言語のうちの一種です。
例えば、エクセル(Excel)・ワード(Word)・パワーポイント(PowerPoint)といったアプリケーションにはVBAが組み込まれているのです。
このVBAを使うことで、アプリケーションにおける機能を拡張させることも可能になるでしょう。
エクセルでVBAを使うメリット
エクセルでVBAを使うメリットは、例えば以下のようなものがあります。
エクセルでVBAを使うメリット1.業務の自動化や効率化
1つ目のメリットは、業務の自動化や効率化が可能になることです。
また、自動化や効率化は作業時間の短縮だけでなく、人的ミスの防止にもつながります。
エクセルでVBAを使うメリット2.初心者も使いやすい
2つ目のメリットは、プログラミングの初心者であっても使いやすいという点です。
「マクロ記録」を利用することによって、VBAは実行結果と照らし合わせながらコードを作成することができます。この機能があることによって、初心者であっても直感的な操作によるコード作成ができるでしょう。
さらにコードの作成時と同様に、直感的に既存のVBAのコードを改変して利用することも可能です。
エクセルでVBAを使うメリット3.特別な環境設定が不要
3つ目は、特別な環境設定を必要としない点です。
Microsoft Office製品であれば、VBAに関する機能は最初から備わっています。
VBAを使用するにあたって、別途アプリケーションのインストール作業をしたり、端末や周辺機器を新しくすることは必要ありません。
現在エクセルを使っている環境のままでVBAを使えます。
エクセルにおける「マクロ」と「VBA」の違い
マクロ | アプリケーション上で行った操作を自動でVBAコードとして記録する機能 |
VBA | Microsoft Office製品に備わったマクロを実行させるために使われるプログラム言語 |
エクセルには「マクロ」と呼ばれる機能が付いています。
VBAと同義のように用いられることがあるため、VBAとの違いがよくわかっていない人は多いのではないでしょうか。
「マクロ」とは、アプリケーション上で行った操作を、自動でVBAコードとして記録する機能のことを指します。対してVBAは、このマクロを実行させるために使われる、Microsoft Office製品に備わったプログラム言語を意味します。
記録されたマクロの中身をのぞくと、そこにはVBAコードが記されており、それらを書き換えることでマクロの動作を自由に変更させることが可能でしょう。
そのため、マクロとVBAはまるで同義かのように呼ばれることがあるわけです。
なお、マクロで記録された操作手順は、必要なときに呼び出していつでも実行できます。
エクセルのVBAでできること4選
VBAを使えるようになれば、さまざまな業務を簡単にこなすことが可能です。
以下において、エクセルにおいてVBAでできることの例を4点紹介します。
自動でデータを処理する
エクセルは、売上データや顧客管理に使われることが多いアプリケーションです。
入力されたデータから、顧客別・商品別・日にち別などに分けて、必要なデータを抽出して処理するのは非常に面倒な作業でしょう。
しかし、VBAを使うことができれば、この面倒な作業をクリック1つでできるようになります。
手入力する手間が省けるので、作業時間の短縮が期待できるでしょう。
データを自動収集できる
さらに、VBAを使うことによって、インターネット上にある情報を自動的に収集し、エクセル上にまとめることが可能になります。
なお、収集したデータは、さらにVBAを用いることで集計したり分析したりすることもできるでしょう。
レポートやグラフの自動作成
収集や集計したデータは、一目で理解できるように、レポートやグラフにすることが多いかもしれません。
そこでVBAを使えば、レポートやグラフを自動作成することが可能です。
例えば、株価情報などを収集したのちに、自動でグラフ化させれば、自分専用の株式チャートを作成できるでしょう。
Office関連アプリケーションとの連携
VBAは、エクセルとほかのOfficeアプリケーションとの連携に使用することもできます。
エクセルで作成したグラフを自動的にパワーポイントやワードに移したり、エクセルから抽出したデータをアウトルックから一括送信するといったことも、VBAを使うことで可能になります。
エクセルのVBAの使い方!起動から実行まで
エクセルにおいてVBAを使うための方法を、以下に紹介します。
VBEの起動
VBAを使うには、最初にエディター(VBE, Visual Basic Editor)を立ち上げなければなりません。
- エクセルの画面上部のリボンにある「開発」をクリック
- 「Visual Basic」を選択
これでVBEは起動します。なお、「Alt+F11」を押すことでも、同様にVBEは起動します。
「開発」がリボンにない場合
「開発」がリボンにない場合は、
- 「ファイル→その他→オプション」と順に選択
- オプションより「リボンのユーザー設定」を選択
- 「開発」のチェックボックスをクリック
このような操作をすることで、リボンに「開発」が表示されるようになるでしょう。
標準モジュールの作成
VBEは画面左側にある「プロジェクトウインドウ」と、画面右側のコードを記入する「コードウインドウ」から成っています。しかし、初期状態ではVBAを記入するモジュールは作成されていないため、コードウインドウにはなにも表示されていません。
- VBE画面上部のタブの「挿入→標準モジュール」を選択しモジュールを作成
- プロジェクトウインドウの中に「標準モジュール」フォルダーが作成される
- その中に「モジュール(初期状態ではModule1)」が作成される
そして画面右のコードウィンドウが白くなり、VBAが書き込める状態になります。
- プロジェクトウインドウを右クリック
- 「挿入→標準モジュール」を選択、あるいは「Alt + I + M」というショートカットキーを使う
これで標準モジュールは作成可能です。
不要なモジュールがある場合
なお、不要なモジュールがある場合には以下の方法で削除できます。
- 右クリック
- 「(モジュールの名前)の解放」を選択
VBAを保存しておきたい場合は、削除の際に「エクスポート」を選択するとよいでしょう。
VBAの書き方の基本
VBAは、マクロを動かすためのプログラム言語です。
そのため、VBAを記入する場合は、マクロを作るための構造をあらかじめ用意しなければなりません。
VBAを書く際には、まず以下のように入力してください。
Sub マクロ名()
End Sub
「Sub マクロ名()」は、文字通りマクロの名前のことです。
「マクロ名」の部分を変更することで、マクロに好きな名前が付けられます。
名前を付けたなら、次は「Sub マクロ名()」と「End Sub」の間に、マクロを動作させるためのVBAコードを記入してください。
入力が終わったなら、画面右上の閉じるボタンを押してVBEを閉じてください。
VBAを実行するには
VBAを実行するには、
- エクセル画面上部のリボンから「マクロ」を選択
- 記録したマクロ名を選ぶ
- 「Sub マクロ名()」のままなら「マクロ名」と書かれたマクロを選択
- 実行ボタンを押す
するとエクセルシートに実行結果が表示されます。
エクセルのVBAの基本コード4選
VBAを使うにあたっては、基本コードを覚えてしまうのがおすすめです。
ここでは、エクセルでVBAを使う際に用いる基本コードを4つ紹介します。
なお、以下のコードではマクロの名称をすべて「example」としています。
実際に使う場合には、自分で好きな名前に変更してください。
メッセージボックスを表示する
実行することでエクセル上のメッセージボックスにおいて「Hello, World!」という言葉が表示されるコードです。
Sub example1() MsgBox "Hello, World!" End Sub
セルにメッセージを入力する
セル(A1)に「Hello」というメッセージを入力するVBAコードです。
Sub example2() Range("A1").Value = "Hello" End Sub
セルの値を読み取る
セル(A1)の値を読み取ってメッセージボックスに表示するコードです。
Sub example3() Dim myValue As String myValue = Range("A1").Value MsgBox "セルA1の値は " & myValue & " です。" End Sub
入力の繰り返し処理
A1からA10までのセルに、繰り返し同じ言葉「Hello」を入力する際のコードです。
Sub example4() Dim i As Integer For i = 1 To 10 Range("A" & i).Value = "Hello" Next i End Sub
エクセルの機能拡張が実現できる!VBAで業務効率化を目指そう
「VBA」とは、エクセルをはじめとしたMicrosoft Office製品のアプリケーションに付随するプログラムの一種です。このVBAを用いれば、エクセルにおいてさまざまな機能拡張が実現できるでしょう。
エクセルを自由自在に扱うのにVBAの知識は欠かせません。
これを機会に、VBAを学習してさらなる業務効率化を目指しましょう。
